From bcf15264b2499d278b5fd61cbae0f61dc051fb65 Mon Sep 17 00:00:00 2001 From: "xiongdian.me" Date: Thu, 10 Nov 2022 15:33:35 +0800 Subject: [PATCH] install.sh: support combined short options --- install.sh | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/install.sh b/install.sh index 087d7d1..088b802 100755 --- a/install.sh +++ b/install.sh @@ -253,16 +253,22 @@ uninstall(){ } BIN=install -while [[ $# > 0 ]]; do +ARG="" +while [[ $# > 0 || -n "$ARG" ]]; do + if [[ -z "$ARG" ]]; then ARG=$1 ORIGIN_ARG=$1; shift; fi case $1 in - -i ) BIN=install ;; - -r ) BIN=uninstall ;; - -q|--quite ) export DFS_QUIET=1 ;; - -d|--dev ) export DFS_DEV=1 ;; - -l|--lite ) export DFS_LITE=1 ;; - -a|--auto ) install_dependencies ;; - * ) fmt_warning "unknown command \"$1\". available: -i, -r, -q, -d, -l, -a"; exit 1 ;; + -i* ) BIN=install ;; + -r* ) BIN=uninstall ;; + -q*|--quite ) export DFS_QUIET=1 ;; + -d*|--dev ) export DFS_DEV=1 ;; + -l*|--lite ) export DFS_LITE=1 ;; + -a*|--auto ) install_dependencies ;; + * ) fmt_warning "unknown command \"$ORIGIN_ARG\". available: -i, -r, -q, -d, -l, -a"; exit 1 ;; esac - shift + if [[ "$ARG" == "--"* || ${#ARG} == 2 ]]; then + ARG="" + else + ARG=-${ARG:2} + fi done $BIN