From a77e638c773d8a492f8c48e8c15474030a7e3d71 Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Mon, 12 Dec 2011 22:36:57 +0100 Subject: contrib/*: Support the "--help" and "--version" options Add "--help"/"-h" and "--version"/"-V" support to all contrib scripts. Also, update scripts that used "-v" as a short option for "--version" and use "-V" for the sake of consistency. Additionally: * Move version and usage messages to separate convenience functions in all scripts. * Add a workaround to paccache to support "--help" and "--version". This should be replaced by a proper POSIX-compliant command line parser that supports long options in a future patch. * Add a "$myver" variable to all scripts and use it whenever we refer to the program version (e.g. in version messages). Also, use the pacman version number everywhere instead of using a different versioning scheme for each contrib script. This is achieved by adding a "PACKAGE_VERSION" placeholder that is replaced by sed(1) when the script is built. * Ensure we always return with exit status 0 if "--help" is used and return with exit status 1 if we display the usage message due to invalid arguments. * Add "AUTOMAKE_OPTIONS = std-options" and add all scripts to "bin_SCRIPTS" to make `make installcheck` check that installed scripts actually support the "--help" and "--version" options. Signed-off-by: Lukas Fleischer Signed-off-by: Dan McGee --- contrib/paccache.in | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'contrib/paccache.in') diff --git a/contrib/paccache.in b/contrib/paccache.in index b95b9646..da65f476 100755 --- a/contrib/paccache.in +++ b/contrib/paccache.in @@ -21,6 +21,7 @@ shopt -s extglob declare -r myname='paccache' +declare -r myver='@PACKAGE_VERSION@' declare -a candidates=() cmdopts=() whitelist=() blacklist=() declare -i delete=0 dryrun=0 filecount=0 move=0 needsroot=0 totalsaved=0 verbose=0 @@ -202,19 +203,32 @@ containing pacman package tarballs. EOF } +version() { + printf "%s %s\n" "$myname" "$myver" + echo 'Copyright (C) 2011 Dave Reisner ' +} + if (( ! UID )); then error "Do not run this script as root. You will be prompted for privilege escalation." exit 42 fi -while getopts ':a:c:dfhi:k:m:rsuvz' opt; do +# TODO: remove this workaround and use a sane command line parser (like the +# parse_options library from scripts/) here +if [[ $1 = -@(h|-help) ]]; then + usage + exit 0 +elif [[ $1 = -@(V|-version) ]]; then + version + exit 0 +fi + +while getopts ':a:c:dfi:k:m:rsuvz' opt; do case $opt in a) scanarch=$OPTARG ;; c) cachedir=$OPTARG ;; d) dryrun=1 ;; f) cmdopts=(-f) ;; - h) usage - exit 0 ;; i) if [[ $OPTARG = '-' ]]; then [[ ! -t 0 ]] && IFS=$'\n' read -r -d '' -a ign else -- cgit v1.2.3-70-g09d2