From 19dcf6a96ec96a3a66a91007af290e2c0c8ca7b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gardais=20J=C3=A9r=C3=A9my?= Date: Fri, 12 Jun 2020 15:13:53 +0200 Subject: [PATCH] Manage options outside of a function --- cluster/maco.check.update.sh | 69 ++++++++++++++++++++++++++---------- 1 file changed, 51 insertions(+), 18 deletions(-) diff --git a/cluster/maco.check.update.sh b/cluster/maco.check.update.sh index dbfd3b5..ceedb03 100755 --- a/cluster/maco.check.update.sh +++ b/cluster/maco.check.update.sh @@ -12,7 +12,7 @@ readonly PROGNAME=$(basename "${0}") readonly PROGDIR=$(readlink -m $(dirname "${0}")) readonly ARGS="${*}" readonly NBARGS="${#}" -[ -z "${DEBUG}" ] && readonly DEBUG=0 +[ -z "${DEBUG}" ] && DEBUG=1 ## Export DEBUG for sub-script export DEBUG @@ -27,21 +27,6 @@ readonly MACO_LOCAL_DIR="/opt/maco" readonly MACO_INSTALL_DIR="/mnt/store.ipr/InstallProgs/ipr/maco" # }}} -manage_args() { # {{{ - - case "${NBARGS}" in - 0 ) ## Nothing to do - ;; - * ) - printf '%b\n' "${RED}Don't expect any arguments.${RESET}" - printf '%b\n' "---" - usage - exit 1 - ;; - esac - -} -# }}} usage() { # {{{ cat <<- EOF @@ -123,8 +108,6 @@ Local Maco version (${CURRENT_MACO_VERSION}) is different from latest version ($ # }}} main() { # {{{ - manage_args "${ARGS}" - ## Get all Maco's versions (date) readonly CURRENT_MACO_VERSION=$(< "${MACO_LOCAL_DIR}/maco-version.txt" awk -v FS=. '{ print $1 "-" $2 "-" $3 "T" $4 ":" $5 ":" $6 }' \ || exit 1) @@ -149,6 +132,56 @@ main() { # {{{ } # }}} +# Manage arguments {{{ +# This code can't be in a function due to arguments + +if [ ! "${NBARGS}" -eq "0" ]; then + + manage_arg="0" + # Parse all options (start with a "-") one by one + while printf -- '%s' "${1}" | grep -q -E -- "^-*"; do + + case "${1}" in + -h|--help ) ## help + usage + ## Exit after help informations + exit 0 + ;; + -d|--debug ) ## debug + DEBUG=0 + ## Re-export new DEBUG value + export DEBUG + ;; + -- ) ## End of options list + ## End the while loop + break + ;; + * ) + printf '%b\n' "${RED}Invalid option: ${1}${RESET}" + printf '%b\n' "---" + usage + exit 1 + ;; + esac + + debug_message "Arguments management − \ +${1} option managed." + + ## Next arg + shift + manage_arg=$((manage_arg+1)) + + done + + debug_message "Arguments management − \ +${manage_arg} argument(s) successfully managed." +else + debug_message "Arguments management − \ +No arguments/options to manage." +fi + +# }}} + main exit 255