tomb

the crypto undertaker
git clone git://parazyd.org/tomb.git
Log | Files | Refs | README | LICENSE

commit 4d4d69cd4d7ca4e0b915c935f5cfc452f97644af
parent 21be9e204e7eead1f67ce6cf454e71591b311954
Author: BoySka <boyska@gmail.com>
Date:   Thu, 18 Aug 2011 04:30:40 -0700

Merge pull request #22 from boyska/fix_nosubcmd


tomb -h and tomb -v work as expected, without altering any other command
(it uses a __default subcommand if none is given)

Diffstat:
Msrc/tomb | 18+++++++++++++++---
1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/src/tomb b/src/tomb @@ -1108,7 +1108,8 @@ main() { # I. usability; user expect that "-s" is "size # II. Option parsing WILL EXPLODE if you do this kind of bad things # (it will say "option defined more than once, and he's right) - main_opts=(q -quiet=q D -debug=D h -help=h v -verbose=v) + main_opts=(q -quiet=q D -debug=D h -help=h v -version=v) + subcommands_opts[__default]="" subcommands_opts[open]="n -nohook=n k: -key=k o: -mount-options=o" subcommands_opts[mount]=${subcommands_opts[open]} subcommands_opts[create]="s: -size=s" @@ -1136,6 +1137,9 @@ main() { zparseopts -M -E -D -Adiscardme ${every_opts} unset discardme subcommand=$1 + if [[ -z $subcommand ]]; then + subcommand="__default" + fi if [[ -z ${(k)subcommands_opts[$subcommand]} ]]; then #there's no such subcommand error "Subcommand '$subcommand' doesn't exist" exit 127 @@ -1169,8 +1173,10 @@ main() { PARAM+=$arg done #first parameter actually is the subcommand: delete it and shift - PARAM[1]=() - shift + if [[ $subcommand != '__default' ]]; then + PARAM[1]=() + shift + fi ### End parsing command-specific options ### Set global options (useless, but for code retro-compatibility) @@ -1213,6 +1219,12 @@ main() { askpass) ask_password $CMD2 ;; mktemp) safe_dir ${CMD2} ;; translate) generate_translatable_strings ;; + __default) + if option_is_set -v; then + echo Tomb - $VERSION + else + usage + fi;; *) error "command \"$CMD\" not recognized" act "try -h for help" return 1