summaryrefslogtreecommitdiffstats
path: root/noise
diff options
context:
space:
mode:
Diffstat (limited to 'noise')
-rwxr-xr-xnoise26
1 files changed, 19 insertions, 7 deletions
diff --git a/noise b/noise
index 11976f68..0e60bbf2 100755
--- a/noise
+++ b/noise
@@ -29,6 +29,12 @@ noise_set() { # set a variable
eval "export noise_$1='$2' ; $echo \
\"$1 changed from $old to $2\""
fi
+ ## write variable to $env
+ if grep -q "^$1=" "$env" ; then
+ sed -ri "s'^($1)=(.*)\$'\1=\'$2\''" $env
+ else
+ echo "$1='$2'" >>$env
+ fi
;;
esac
}
@@ -44,26 +50,30 @@ fail() {
}
cleanup() {
- rm -f $linefeed
+ rm -f $linefeed $env
kill $jobs
}
qname="`readlink -f "$0"`"
dirname="`dirname "$qname"`"
+export HOME='/home/shack'
if test -d "$dirname/modules" ; then
export NOISE_PATH="${NOISE_PATH+$NOISE_PATH:}$dirname/modules"
export NOISE_PATH="${NOISE_PATH+$NOISE_PATH:}$HOME/noise/modules"
fi
linefeed="/tmp/noise-client-$$"
+env="/tmp/noise-client-$$-env"
trap cleanup EXIT
mkfifo $linefeed
+touch $env
##
##
##
readline() {
{ read && echo "$REPLY" ; } | sed -rn "
s/[']//g
+ s/~%/\n/g
s:^/([a-z]+)([[:space:]]+(.*))?$:command=\1; args='\3';:p;t
s@^([[:alnum:]_/+-]+):[[:space:]]*(.*)@command=lang; args='\1 \2';@p;t
s@^\![[:space:]]*(.*)@command=play; args='\1';@p;t
@@ -73,12 +83,6 @@ readline() {
##
##
##
-export noise_prompt="READY.
-"
-export noise_default_command=espeak
-##
-##
-##
while echo -n "$noise_prompt" && eval "`readline`" ; do
## modcall
for dir in `echo "$NOISE_PATH" | tr : \ ` ; do
@@ -110,6 +114,14 @@ EOF
##
##
exec >>$linefeed
+##
+##
+##
+echo '/set prompt "READY.~%"'
+echo '/set default_command espeak'
+##
+##
+##
while read ; do
case $REPLY in
(/quit) echo /quit ; exit ;;