diff options
-rw-r--r-- | mkarchroot.in | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/mkarchroot.in b/mkarchroot.in index ebedcba..96f4399 100644 --- a/mkarchroot.in +++ b/mkarchroot.in @@ -14,7 +14,6 @@ CHROOT_VERSION='v2' FORCE='n' RUN='' -PKGS='' NOCOPY='n' NONETWORK='n' @@ -44,7 +43,7 @@ usage() { ################################################################################ -while getopts 'fC:M:nc:N' arg; do +while getopts 'fC:M:nc:Nh' arg; do case "${arg}" in f) FORCE='y' ;; C) pac_conf="$OPTARG" ;; @@ -52,8 +51,10 @@ while getopts 'fC:M:nc:N' arg; do n) NOCOPY='y' ;; c) cache_dir="$OPTARG" ;; N) NONETWORK='y' ;; - h) usage 0 ;; - *) error "invalid argument '${arg}'"; usage 1;; + + h) action="-$arg" ;; + + *) error "invalid argument '${arg}'"; usage ;; esac done @@ -73,10 +74,13 @@ shift 1 case "$action" in -i) PKGS=("$@") ;; -r) RUN="$*" ;; - -u) RUN='/bin/sh -c "pacman -Syu --noconfirm && (pacman -Qqu >/dev/null && pacman -Su --noconfirm || exit 0)"' ;; + -u) + (( $# > 0 )) && { error 'Extra arguments.'; usage; } + RUN='/bin/sh -c "pacman -Syu --noconfirm && (pacman -Qqu >/dev/null && pacman -Su --noconfirm || exit 0)"' + ;; -h) usage 0 ;; - -*) usage 1 ;; - *) PKGS=("$action" "$@") ;; # for compatability with mkarchroot + -*) error "invalid argument '${action#-}'"; usage ;; + *) error "invalid action '${action}'"; usage ;; esac unset action |