diff --git a/demo.sh b/demo.sh index 3f85b04..4ed3215 100644 --- a/demo.sh +++ b/demo.sh @@ -4,12 +4,12 @@ # type(): simulates typing its arguments # execute(): simuates typing then executing its arguments in a shell # wait(): waits for user input with optional timeout -# cmd(): gives control to user until she enters 'end' (or for a single command if you pass an argument). +# cmd(): gives control to user until she enters 'end' (or for a single command if you pass an argument) # color(): allows you to color (second argument, defaults to $clr) some text (first argument) # # Helpers (internal stuff): # simtyping(): let's data piped to it through at rates similar to typing -# prompt(): prints a nice colored prompt +# prompt(): prints the bash PS1 prompt on your system with a nasty hack TYPE_SPEED="${TYPE_SPEED:-15}" PROMPT_TIMEOUT="${PROMPT_TIMEOUT:--1}" @@ -42,12 +42,15 @@ function wait() read -rst "$PROMPT_TIMEOUT" } -function prompt() +function prompt() { - def="\033[0;00m" - blu="\033[0;34m" - cyn="\033[0;36m" - printf "[$cyn$(whoami)$def@$blu$(hostname)$def $(basename `pwd`)]\$ "; + invalidcmd="somethingthatshouldbetotallynotacommandinanygivenenvironment" + expPS1=$(echo $invalidcmd | + bash -i 2>&1 | + grep $invalidcmd | + head -n 1 | + sed "s/$invalidcmd//g") + printf "$expPS1" } function execute()