#!/bin/sh # usage: jsh [arg1] [arg2] ... # # 'jsh prompt question answer' executes: js prompt('question','answer') ) source /mnt/profile.sh to_js(){ printf "%s(" "$1" shift for arg in "$@"; do case "$arg" in (*[\.0-9]*) printf '%s,' "$arg" ;; (*) printf '"%s",' "$arg" ;; esac done printf ")\n" } # run argument as js test -z "$1" || { func=$(to_js "$@") func=${func/,)/)} js "$func" hook "$@" exit 0 } # otherwise start repl echo "jsh> type 'exit' or CTRL-C to quit" echo "jsh> HINT: to run alert('foo') outside this REPL, run 'jsh alert foo'" echo "jsh>" while true; do echo -n -e "\r$(printf "\033[0m")jsh> $(printf "\033[0m")" read line test "$line" = exit && exit js "$line" done