diff options
Diffstat (limited to 'noise')
| -rwxr-xr-x | noise | 182 |
1 files changed, 0 insertions, 182 deletions
@@ -1,182 +0,0 @@ -#! /bin/sh - -noise_set() { # set a variable - case "$1" in - (-q|--quiet) echo=: ; shift ;; - (*) echo=echo ;; - esac - case $# in - (0) ## print all noise variables - env | sed -rn ' - s/^noise_([[:alnum:]_]+)=(.*)$/[35;4m\1[;35m = [32m\2[m/p - ' | sort - ;; - (1) ## print value the specified variable - eval "echo \"[35;4m$1[0;35m = [0;32m\$noise_$1[m\"" - ;; - (*) ## set the specified variable - if echo "$1" | grep -q '[^[:alnum:]_]' ; then - fail invalid variable name "[4m$1" - return 23 - fi - eval "old=\"\$noise_$1\"" - if test "x$old" = "x$2" ; then - eval "$echo \"[35;4m$1[0;35m is already [0;32m$2[m\"" - elif test -z "$old" ; then - eval "export noise_$1='$2' ; $echo \ -\"[35;4m$1[0;35m set to [0;32m$2[m\"" - else - eval "export noise_$1='$2' ; $echo \ -\"[35;4m$1[0;35m changed from $old to [0;32m$2[m\"" - 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 -} - -noise_unset() { # unset a variable - case "$1" in - (-q|--quiet) echo=: ; shift ;; - (*) echo=echo ;; - esac - case $# in - (1) ## - unset "noise_$1" - sed -ni "/^$1=/!p" $env - ;; - (*) - fail "broken commandline: $@" - ;; - esac -} - -noise_quit() { # exit - echo "[35mGood bye![m" - exit -} - -fail() { - echo "[31mFAIL: $*[m" - return 23 -} - -cleanup() { - kill $jobs - rm -f $linefeed $env - rmdir /tmp/noise/$$ 2>/dev/null - rmdir /tmp/noise 2>/dev/null -} - -exec 2>&1 -qname="`readlink -f "$0"`" -dirname="`dirname "$qname"`" -export HOME='/home/noise' -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 -mkdir -p /tmp/noise/$$ -linefeed="/tmp/noise/$$/linefeed" -env="/tmp/noise/$$/environment" -trap cleanup EXIT -mkfifo $linefeed -touch $env -## -## -## -readline() { - { read REPLY && echo "$REPLY" ; } | sed -rn " - s/[']//g - s/~%/\n/g - s/([^\\])([#<>])/\1\\\\\2/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 - s:.*:command='$noise_default_command'; args='&';:p;t - " -} -## -## -## -while echo -n "$noise_prompt" && eval "`readline`" ; do - ## modcall - for dir in `echo "$NOISE_PATH" | tr : \ ` ; do - module="$dir/$command" - if test -x "$module" ; then -#echo foo $module:$@: - #shift - eval 'NOISE="$0" NOISE_pid="$$" NOISE_linefeed="$linefeed" "$module"' "$args" - continue 2 - fi - done - ## funcall - if type noise_$command | grep -q function ; then - eval 'noise_$command' "$args" - continue - fi - ## - fail unknown command "[4m$command[m" -done <$linefeed & -jobs="${jobs+$jobs }`jobs -p`" -## -## -## -cat<<EOF -[35mWelcome to [1;4m23.shack[;35m version 0.9 beta 4 \ -commit ` - cd $dirname && - git log -n 1 | head -n 1 | cut -d\ -f 2 | dd count=23 bs=1 2>/dev/null -`... -[;33m -## Motto Of The Day\ -[m -[33;1mJoin the 23.shack-dev-team, we've got ` - sloccount $dirname/* | - sed -rn ' - s/.*\(SLOC\)[[:space:]]*=[[:space:]]*([0-9]+)$/\1/p - '` SLOC, ` - { - ls $dirname/modules/ - test -d ~noise/modules && ls ~noise/modules/ - } | sort | uniq | wc -l - ` mods, -`grep ^- $dirname/TODO | wc -l`+ TODOs and drive the irregular Hackathon @shackspace. -Follow [34;4mhttp://twitter.com/shackspam[;1;33m [5mFTW[;1;33m! -[;33m -## Hints\ -[m -Start your telnet session with [4mrlwrap[;m for MAXIMUM profit. -Get online-help with [32m/help[m. -[m -EOF -# TODO: MOTD-candidates: -#twitter: #shackspam -#mail: shockspasm@googlemail.com -#irc: freenode/#shackspace -#afk: @shackspace -## -## -## -exec >>$linefeed -## -## -## -echo '/set -q default_command espeak' -echo '/set -q prompt "[30mREADY.[m~%"' -## -## -## -while read REPLY; do - case $REPLY in - (/quit) echo /quit ; exit ;; - (*) tr \; \\n | grep . ;; - esac<<EOF -$REPLY -EOF -done -#### end of file. |
