From 3ce72e16b204ccbc57c1fdc8122e1f2edbd1d236 Mon Sep 17 00:00:00 2001 From: Andreas Gerler Date: Fri, 19 Aug 2016 16:43:35 +0200 Subject: [PATCH] updating templates/default-sh.sh - better parsing of parameters with getopt for bash scripts. Signed-off-by: Andreas Gerler --- templates/default-sh.sh | 47 ++++++++++++++++++----------------------- 1 file changed, 21 insertions(+), 26 deletions(-) diff --git a/templates/default-sh.sh b/templates/default-sh.sh index df931570..4dbbb2f1 100755 --- a/templates/default-sh.sh +++ b/templates/default-sh.sh @@ -17,41 +17,36 @@ --man, -m to get this man page. --verbose, -v be more verbose. +=head1 EXAMPLES + + `(upcase (file-name-nondirectory (file-name-sans-extension (buffer-file-name))))` -p password + + =cut # parse parameters - -for param in "$@" -do - case $param in - -k|--keep) - KEEP=1 - shift # past argument=value - ;; - -v|--verbose) - VERBOSE=1 - shift # past argument=value - ;; - -h|--help) - pod2usage \$0 - exit - ;; - -m|--man) - perldoc \$0 - exit - ;; - *) - echo "unknown option $param" - echo - pod2usage \$0 - exit - ;; +TEMP=\`getopt -o mhvp --long man,help,verbose,password -n '`(downcase (file-name-nondirectory (file-name-sans-extension (buffer-file-name))))`' -- "$@"\` + +while true; do + case "\$1" in + -p | --password ) PASSWORD="$2"; shift 2 ;; + -h | --help ) pod2usage \$0; exit ;; + -m | --man ) perldoc \$0; exit ;; + -v | --verbose ) VERBOSE=1; shift ;; + * ) break ;; esac done EXITCODE=0 +if [ -z "${PASSWORD}" ]; then + read -s -p "Password: " PASSWORD + echo +fi + +if [ -z "${PASSWORD}" ]; then pod2usage $0; exit; fi + $0 :<<=cut -- 2.47.3