diff --git a/spells/cantrips/ask_yn b/spells/cantrips/ask_yn index 4f8d26e..488af7b 100755 --- a/spells/cantrips/ask_yn +++ b/spells/cantrips/ask_yn @@ -1,21 +1,24 @@ -#!/bin/bash +#!/bin/sh question=$1 -default_answer=$2 +default_answer=$(echo $2 | tr a-z A-Z) # Capitalize the default answer and construct the prompt -if [[ $default_answer == "Y" ]]; then +if [ "$default_answer" = "Y" ]; then prompt="${question} (Y/n)? " else prompt="${question} (y/N)? " fi +# Handle Ctrl-C +trap "printf '\n'; exit 2" 2 + # Use stty to make read command work for single character input old_stty_cfg=$(stty -g) stty raw -echo printf "%s" "$prompt" answer=$( while ! head -c 1 | grep -i '[yn]'; do true; done ) -stty $old_stty_cfg +stty "$old_stty_cfg" # If no answer is given, use the default answer if [ -z "$answer" ]; then @@ -24,8 +27,8 @@ fi # Print the answer and return appropriate exit code printf "%s\n" "$answer" -if [[ $answer == "Y" || $answer == "y" ]]; then +if [ "$answer" = "Y" -o "$answer" = "y" ]; then exit 0 else exit 1 -fi +fi \ No newline at end of file