diff --git a/scripts/s/sh b/scripts/s/sh index 6c65012..48daf38 100755 --- a/scripts/s/sh +++ b/scripts/s/sh @@ -25,8 +25,12 @@ fn die { echo $* >[1=2] exit 1 } +fn spec_get { + awk -F= -v k=$1 '$1==k{gsub(/^[ \t]+|[ \t]+$/,"",$2); print $2; exit}' $S/spec >[2]/dev/null +} + fn is_idle { - state=`{cat $S/state >[2]/dev/null | tr -d '[:space:]'} + state=`{spec_get state} test $state = idle } @@ -208,26 +212,26 @@ while(true) { case /clear echo clear > $S/ctl case /cwd - cat $S/cwd >[2]/dev/null + spec_get cwd echo case '/cwd *' newcwd=`{printf '%s\n' $"input | sed 's,^/cwd ,,'} - printf 'cwd %s\n' $newcwd > $S/ctl + printf 'cwd=%s\n' $newcwd > $S/spec case /agent - cat $S/agent >[2]/dev/null + spec_get agent echo case '/agent *' - printf '%s\n' `{printf '%s\n' $"input | sed 's,^/agent ,,'} > $S/agent + printf 'agent=%s\n' `{printf '%s\n' $"input | sed 's,^/agent ,,'} > $S/spec case /model - cat $S/model >[2]/dev/null + spec_get model echo case '/model *' - printf '%s\n' `{printf '%s\n' $"input | sed 's,^/model ,,'} > $S/model + printf 'model=%s\n' `{printf '%s\n' $"input | sed 's,^/model ,,'} > $S/spec case /backend - cat $S/backend >[2]/dev/null + spec_get backend echo case '/backend *' - printf '%s\n' `{printf '%s\n' $"input | sed 's,^/backend ,,'} > $S/backend + printf 'backend=%s\n' `{printf '%s\n' $"input | sed 's,^/backend ,,'} > $S/spec case /models cat $S/models >[2]/dev/null case /backends diff --git a/scripts/s/sh.rc b/scripts/s/sh.rc index 6c65012..48daf38 100755 --- a/scripts/s/sh.rc +++ b/scripts/s/sh.rc @@ -25,8 +25,12 @@ fn die { echo $* >[1=2] exit 1 } +fn spec_get { + awk -F= -v k=$1 '$1==k{gsub(/^[ \t]+|[ \t]+$/,"",$2); print $2; exit}' $S/spec >[2]/dev/null +} + fn is_idle { - state=`{cat $S/state >[2]/dev/null | tr -d '[:space:]'} + state=`{spec_get state} test $state = idle } @@ -208,26 +212,26 @@ while(true) { case /clear echo clear > $S/ctl case /cwd - cat $S/cwd >[2]/dev/null + spec_get cwd echo case '/cwd *' newcwd=`{printf '%s\n' $"input | sed 's,^/cwd ,,'} - printf 'cwd %s\n' $newcwd > $S/ctl + printf 'cwd=%s\n' $newcwd > $S/spec case /agent - cat $S/agent >[2]/dev/null + spec_get agent echo case '/agent *' - printf '%s\n' `{printf '%s\n' $"input | sed 's,^/agent ,,'} > $S/agent + printf 'agent=%s\n' `{printf '%s\n' $"input | sed 's,^/agent ,,'} > $S/spec case /model - cat $S/model >[2]/dev/null + spec_get model echo case '/model *' - printf '%s\n' `{printf '%s\n' $"input | sed 's,^/model ,,'} > $S/model + printf 'model=%s\n' `{printf '%s\n' $"input | sed 's,^/model ,,'} > $S/spec case /backend - cat $S/backend >[2]/dev/null + spec_get backend echo case '/backend *' - printf '%s\n' `{printf '%s\n' $"input | sed 's,^/backend ,,'} > $S/backend + printf 'backend=%s\n' `{printf '%s\n' $"input | sed 's,^/backend ,,'} > $S/spec case /models cat $S/models >[2]/dev/null case /backends