diff --git a/day2_exitcodeprompt.sh b/day2_exitcodeprompt.sh new file mode 100644 index 0000000..d1cd9d4 --- /dev/null +++ b/day2_exitcodeprompt.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +# +# Day 2 - Exit Code PS1 prompt +# "Pimp my prompt" with the return value of the last command. +# source this from ~/.bashrc or similar to modify PS1 to show the return value of previous command. +# Use the "demojify" command to restore your previous prompt after sourcing. + +PS1OLD=$PS1 + +exitprompt () +{ + ERROR="$?" + if [ "$ERROR" -eq 0 ] + then + COLORCODE=32 # foreground green + EMOJI="🙂" + else + COLORCODE=31 # foreground red + EMOJI="🙁" + fi + echo -e "\e[${COLORCODE}m${ERROR} ${EMOJI} \e[0m" +} + +demojify () +{ + PS1=$PS1OLD +} + +PS1="\$(exitprompt)\n$PS1" + diff --git a/test_error.sh b/test_error.sh new file mode 100755 index 0000000..effbc7a --- /dev/null +++ b/test_error.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +# Returns a non-zero exit code on purpose to test the day 2 error prompt. + +exit 42 +