From 566ad5deba9d9b1e75ce4800133eef0fbbd88b30 Mon Sep 17 00:00:00 2001 From: Taylor Blau Date: Thu, 2 Jun 2016 16:04:09 -0600 Subject: [PATCH] script/changelog: teach '?' operator and handle unknown input gracefully --- script/changelog | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/script/changelog b/script/changelog index 5c60744a..5d5ef709 100755 --- a/script/changelog +++ b/script/changelog @@ -34,17 +34,33 @@ misc="" for rev in $(git rev-list --merges $range); do git show $rev - echo "" - echo "Categorize this change: [f,b,m,s] ?" + processed=0 + while [ $processed -eq 0 ]; do + echo "Categorize this change: [f,b,m,s,?] ?" + read -n 1 opt + echo "" - read -n 1 opt + case $opt in + [fbms]) + processed=1 + ;; + ?) + echo "f - mark this merge as a feature" + echo "b - mark this merge as a bugfix" + echo "m - make this merge as a misc. change" + echo "s - skip this merge, excluding it from the changelog" + echo "? - display this help message" + ;; + *) + echo "Unknown option: $opt, try again." + ;; + esac + done - if [ "$opt" = "s" ]; then - continue + if [ $opt != "s" ]; then + summary="$(commit_summary $rev)" fi - summary="$(commit_summary $rev)" - case $opt in f) features="$(printf "%s\n%s\n" "$features" "$summary")" @@ -55,9 +71,6 @@ for rev in $(git rev-list --merges $range); do m) misc="$(printf "%s\n%s\n" "$misc" "$summary")" ;; - *) - echo "Usage: [f,b,m,s]" - exit 1 esac done