#!/bin/sh test -d /dev/browser || { setup_links(){ ln -fs /etc/motd ~/.motd ln -fs /mnt/profile.browser ~/.profile.browser chmod +x ~/.profile.js } setup_browser_dev(){ mkdir -p /dev/browser echo 1 > /mnt/console.tty ln -s /mnt/console.tty /dev/browser/tty ln -fs /mnt/js /dev/browser/js ln -fs /mnt/index.html /dev/browser/html ln -fs /mnt/console /dev/browser/console touch /mnt/console touch /mnt/index.html } setup_network(){ test -n "$BROWSER" || return 0 #mount -a udhcpc 1>>/var/log/network.log 2>>/var/log/network.log & echo 0 > /proc/sys/kernel/printk } setup_overlayfs(){ test -f /mnt/overlayfs.zip && unzip /mnt/overlayfs.zip -d / } setup_incoming_cmds(){ # listen for shell cmds passed to v86 from browser # (via isoterminal.exec(...)) stty raw < /dev/ttyS1 cat /dev/ttyS1 | xargs -I{} /bin/sh -c 'source /etc/profile; logger "isoterminal.exec({})"; {}' } setup_reflect_index_html(){ # listen for writes to index.html and send them to DOM inotifyd echo /root/index.html | awk '/^w / { system("cat "$2" | grep -vE \"^#!\" > /dev/browser/html") }' } setup_reflect_index_js(){ # listen for writes to index.js and send them to DOM inotifyd echo /root/index.js | awk '/^w / { system("cat "$2" | grep -vE \"^#!\" > /dev/browser/js") }' } setup_browser_dev setup_links setup_network setup_overlayfs setup_incoming_cmds & setup_reflect_index_html & setup_reflect_index_js & }