diff --git a/create_release.sh b/create_release.sh index f25fe8e..447f8bd 100755 --- a/create_release.sh +++ b/create_release.sh @@ -1,7 +1,8 @@ #!/bin/bash # rust create_release -# v0.3.0 +# v0.6.0 +# 2024-10-19 STAR_LINE='****************************************' CWD=$(pwd) @@ -19,14 +20,26 @@ error_close() { } # $1 string - question to ask -ask_yn () { - printf "%b%s? [y/N]:%b " "${GREEN}" "$1" "${RESET}" +# Ask a yes no question, only accepts `y` or `n` as a valid answer, returns 0 for yes, 1 for no +ask_yn() { + while true; do + printf "\n%b%s? [y/N]:%b " "${GREEN}" "$1" "${RESET}" + read -r answer + if [[ "$answer" == "y" ]]; then + return 0 + elif [[ "$answer" == "n" ]]; then + return 1 + else + echo -e "${RED}\nPlease enter 'y' or 'n'${RESET}" + fi + done } -# return user input -user_input() { - read -r data - echo "$data" +# ask continue, or quit +ask_continue () { + if ! ask_yn "continue"; then + exit + fi } update_major () { @@ -77,9 +90,7 @@ ask_changelog_update() { RELEASE_BODY_TEXT=$(sed '/#