#!/bin/sh test -d /dev/browser || { setup_binaries(){ for bin in /mnt/js* /mnt/v86pipe /mnt/xrsh; do chmod +x $bin ln -s $bin /bin/. done } setup_links(){ ln -s /mnt/profile ~/.profile ln -s /mnt/profile.js ~/.profile.js ln -s /mnt/profile.browser ~/.profile.browser ln -s /mnt/profile.sh ~/.profile.sh ln -s /mnt/motd ~/.motd } setup_browser_dev(){ mkdir -p /mnt/dev/browser touch /mnt/dev/browser/js touch /mnt/dev/browser/html touch /mnt/console.tty ln -s /mnt/dev/browser /dev/browser # setup console goodies ln -s /mnt/console.tty /dev/browser/console.tty # emulator.write_file() only writes to /mnt/. :( echo 1 > /dev/browser/console.tty # should be in /proc, but v86 gives 'no such file or dir' when creating it there v86pipe /mnt/console /dev/browser/console & test -f /etc/profile && rm /etc/profile ln -s /mnt/profile /etc/profile } setup_hook_dirs(){ # see /mnt/hook for usage mkdir -p ~/hook.d/alert mkdir -p ~/hook.d/confirm mkdir -p ~/hook.d/prompt echo -e "#!/bin/sh\necho hook.d/alert/yo: yo \$*" > ~/hook.d/alert/yo echo -e "#!/bin/js\nalert(\"hook.d/alert/yo.js \"+args.slice(1).join(' '))" > ~/hook.d/alert/yo.js echo -e "#!/usr/bin/lua\nprint(\"hook.d/alert/yo.lua: yo \" .. arg[1])" > ~/hook.d/alert/yo.lua } 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_binaries setup_browser_dev setup_hook_dirs setup_links }