Skip to content

Show basename of script in usage text #203

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

yeldiRium
Copy link

@yeldiRium yeldiRium commented Jun 13, 2025

This is an implementation of my suggestion in #202.
The formatting follows the suggestions from shellcheck to always quote variables and expansions results with unforeseeable contents.

I gotta admit, my m4 is a bit rusty.
I found out how to add the basename, but I can't wrap my head around the tests, so I didn't touch them.
Sorry for that.

But I ran the tests locally and they all passed.
The scripts argbash, argbash-init and arbash-1to2 were regenerated with the new usage text.

Output of `make -B ../tests/regressiontests/Makefile && make check ARGBASH_EXEC=argbash ARGBASH_INIT_EXEC=argbash-init`

autom4te -l m4sugar -I ../tests/regressiontests/make ../tests/regressiontests/make/Makefile.m4 -o ../tests/regressiontests/Makefile
make: '../tests/regressiontests/Makefile' is up to date.
ARGBASH_INTENDED_DESTINATION="../bin/argbash" bash ../bin/argbash ../src/argbash.m4 -o argbash.temp && mv argbash.temp ../bin/argbash
../bin/argbash ../src/argbash-init.m4 -o ../bin/argbash-init
argbash ../src/argbash-1to2.m4 -o ../bin/argbash-1to2
make unittests
make[1]: Entering directory '/home/yeldir/querbeet/workspace/private/projects/argbash/resources'
autom4te -l m4sugar -I ../src/ -I ../tests/unittests ../tests/unittests/check-arguments.m4 && autom4te -l m4sugar -I ../src/ -I ../tests/unittests ../tests/unittests/check-env.m4 && autom4te -l m4sugar -I ../src/ -I ../tests/unittests ../tests/unittests/check-indentation.m4 && autom4te -l m4sugar -I ../src/ -I ../tests/unittests ../tests/unittests/check-list.m4 && autom4te -l m4sugar -I ../src/ -I ../tests/unittests ../tests/unittests/check-types.m4 && autom4te -l m4sugar -I ../src/ -I ../tests/unittests ../tests/unittests/check-utils.m4 && true
../src/argbash-lib.m4:8: warning: file 'utilities.m4' included several times
../src/utilities.m4:12: warning: file 'list.m4' included several times
../src/argbash-lib.m4:8: warning: file 'utilities.m4' included several times
../src/utilities.m4:12: warning: file 'list.m4' included several times
make[1]: Leaving directory '/home/yeldir/querbeet/workspace/private/projects/argbash/resources'
make regressiontests
make[1]: Entering directory '/home/yeldir/querbeet/workspace/private/projects/argbash/resources'
argbash ../tests/regressiontests/basic.m4 -o ../tests/regressiontests/basic.sh
argbash ../tests/regressiontests/basic.sh -o ../tests/regressiontests/basic2.sh
diff -q ../tests/regressiontests/basic.sh ../tests/regressiontests/basic2.sh
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/basic.sh"
../tests/regressiontests/basic.sh LOO | grep -q 'POS_S=LOO',
../tests/regressiontests/basic.sh "LOO BAR" | grep -q 'POS_S=LOO BAR,'
../tests/regressiontests/basic.sh -b LOO | grep -q BOOL=on,
../tests/regressiontests/basic.sh LOO | grep -q BOOL=off,
../tests/regressiontests/basic.sh LOO | grep -q 'OPT_S=opt_arg_default lolo',
../tests/regressiontests/basic.sh LOO UFTA | grep -q 'POS_OPT=UFTA,'
../tests/regressiontests/basic.sh LOO | grep -q 'OPT_INCR=2,'
../tests/regressiontests/basic.sh -ii LOO | grep -q 'OPT_INCR=4,'
../tests/regressiontests/basic.sh -h | grep -- pos_arg | grep -q pos_arg_help
../tests/regressiontests/basic.sh -h | grep -- pos-opt | grep -q @pos-opt-arg@
../tests/regressiontests/basic.sh -h | grep -q ' \[<pos-opt>\]'
../tests/regressiontests/basic.sh LOO --opt_arg "PoS sob" | grep -q 'OPT_S=PoS sob,'
../tests/regressiontests/basic.sh --opt_arg PoS LOO | grep -q OPT_S=PoS,
../tests/regressiontests/basic.sh --opt_arg="PoS sob" LOO | grep -q 'OPT_S=PoS sob,'
../tests/regressiontests/basic.sh LOO -b | grep -q BOOL=on,
../tests/regressiontests/basic.sh LOO --boo_l | grep -q BOOL=on,
../tests/regressiontests/basic.sh LOO --boo_l --boo_l | grep -q 'POS_OPT=pos_opt_default lala,'
../tests/regressiontests/basic.sh --no-boo_l LOO | grep -q BOOL=off,
../tests/regressiontests/basic.sh --opt-incr -i LOO | grep -q 'OPT_INCR=4,'
../tests/regressiontests/basic.sh LOO --opt-incr | grep -q 'OPT_INCR=3,'
../tests/regressiontests/reverse ../tests/regressiontests/basic.sh LOO --opt_arg 2> /dev/null
grep -q "local _key$" ../tests/regressiontests/basic.sh
../tests/regressiontests/basic.sh -h | grep -q 'P percent: %'
../tests/regressiontests/basic.sh -h | grep -q 'O percent: %'
! ../tests/regressiontests/basic.sh -h | grep -qe '\[--\]'
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/basic.sh"
argbash ../tests/regressiontests/test-void.m4 -o ../tests/regressiontests/test-void.sh
! grep -q 'die' ../tests/regressiontests/test-void.sh
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-void.sh"
argbash ../tests/regressiontests/call-salone.m4 -o ../tests/regressiontests/call-salone.sh
../tests/regressiontests/call-salone.sh LOO | grep -q 'POS_S=LOO',
../tests/regressiontests/call-salone.sh "LOO BAR" | grep -q 'POS_S=LOO BAR,'
../tests/regressiontests/call-salone.sh -b LOO | grep -q BOOL=on,
../tests/regressiontests/call-salone.sh LOO | grep -q BOOL=off,
../tests/regressiontests/call-salone.sh LOO | grep -q 'OPT_S=opt_arg_default lolo',
../tests/regressiontests/call-salone.sh LOO UFTA | grep -q 'POS_OPT=UFTA,'
../tests/regressiontests/call-salone.sh LOO | grep -q 'OPT_INCR=2,'
../tests/regressiontests/call-salone.sh -ii LOO | grep -q 'OPT_INCR=4,'
../tests/regressiontests/call-salone.sh -h | grep -- pos_arg | grep -q pos_arg_help
../tests/regressiontests/call-salone.sh -h | grep -- pos-opt | grep -q @pos-opt-arg@
../tests/regressiontests/call-salone.sh -h | grep -q ' \[<pos-opt>\]'
../tests/regressiontests/call-salone.sh LOO --opt_arg "PoS sob" | grep -q 'OPT_S=PoS sob,'
../tests/regressiontests/call-salone.sh --opt_arg PoS LOO | grep -q OPT_S=PoS,
../tests/regressiontests/call-salone.sh --opt_arg="PoS sob" LOO | grep -q 'OPT_S=PoS sob,'
../tests/regressiontests/call-salone.sh LOO -b | grep -q BOOL=on,
../tests/regressiontests/call-salone.sh LOO --boo_l | grep -q BOOL=on,
../tests/regressiontests/call-salone.sh LOO --boo_l --boo_l | grep -q 'POS_OPT=pos_opt_default lala,'
../tests/regressiontests/call-salone.sh --no-boo_l LOO | grep -q BOOL=off,
../tests/regressiontests/call-salone.sh --opt-incr -i LOO | grep -q 'OPT_INCR=4,'
../tests/regressiontests/call-salone.sh LOO --opt-incr | grep -q 'OPT_INCR=3,'
../tests/regressiontests/reverse ../tests/regressiontests/call-salone.sh LOO --opt_arg 2> /dev/null
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/call-salone.sh"
argbash ../tests/regressiontests/test-most.m4 -o ../tests/regressiontests/test-most.sh
../tests/regressiontests/test-most.sh -h | grep -q '<pos-more1-1> <pos-more1-2> \[<pos-more2-1>\] \[<pos-more2-2>\]'
../tests/regressiontests/test-most.sh xx yy | grep -q "POS_MORE1=xx yy,POS_MORE2=hu lu,"
../tests/regressiontests/test-most.sh xx yy zz aa | grep -q "POS_MORE1=xx yy,POS_MORE2=zz aa,"
../tests/regressiontests/test-most.sh -h | grep -q '<pos-more1-1> <pos-more1-2> \[<pos-more2-1>\] \[<pos-more2-2>\]'
../tests/regressiontests/test-most.sh -h | grep -q '<pos-more1>: @pos-more1-arg@'
../tests/regressiontests/test-most.sh -h | grep -q "<pos-more2>: @pos-more2-arg@ (defaults for <pos-more2-1> to <pos-more2-2> respectively: 'hu' and 'lu')"
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-most.sh"
argbash ../tests/regressiontests/test-more.m4 -o ../tests/regressiontests/test-more.sh
../tests/regressiontests/test-more.sh LOO x | grep -q "POS_S=LOO,POS_MORE=x f\[o\]o ba,r,"
../tests/regressiontests/test-more.sh LOO lul laa | grep -q "POS_S=LOO,POS_MORE=lul laa ba,r,"
../tests/regressiontests/test-more.sh LOO laa bus kus | grep -q "POS_S=LOO,POS_MORE=laa bus kus",
ERROR="namely: 'pos-arg' and 'pos-more'" ../tests/regressiontests/reverse ../tests/regressiontests/test-more.sh
grep -q '^              _positionals' ../tests/regressiontests/test-more.sh
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-more.sh"
argbash ../tests/regressiontests/test-onlypos.m4 -o ../tests/regressiontests/test-onlypos.sh
../tests/regressiontests/reverse grep -q case ../tests/regressiontests/test-onlypos.sh
../tests/regressiontests/test-onlypos.sh LOO | grep -q POS_S=LOO,POS_OPT=pos-default,
../tests/regressiontests/test-onlypos.sh LOO ar,guma | grep -q POS_S=LOO,POS_OPT=ar,guma,
ERROR=spurious ../tests/regressiontests/reverse ../tests/regressiontests/test-onlypos.sh one two three
ERROR='between 1 and 2' ../tests/regressiontests/reverse ../tests/regressiontests/test-onlypos.sh one two three
ERROR='Not enough' ../tests/regressiontests/reverse ../tests/regressiontests/test-onlypos.sh
! grep -q '^_arg_pos_arg=$' ../tests/regressiontests/test-onlypos.sh
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-onlypos.sh"
argbash ../tests/regressiontests/test-onlypos-declared.m4 -o ../tests/regressiontests/test-onlypos-declared.sh
../tests/regressiontests/reverse grep -q case ../tests/regressiontests/test-onlypos-declared.sh
../tests/regressiontests/test-onlypos-declared.sh LOO | grep -q POS_S=LOO,POS_OPT=pos-default,
../tests/regressiontests/test-onlypos-declared.sh LOO ar,guma | grep -q POS_S=LOO,POS_OPT=ar,guma,
ERROR=spurious ../tests/regressiontests/reverse ../tests/regressiontests/test-onlypos-declared.sh one two three
ERROR='between 1 and 2' ../tests/regressiontests/reverse ../tests/regressiontests/test-onlypos-declared.sh one two three
ERROR='Not enough' ../tests/regressiontests/reverse ../tests/regressiontests/test-onlypos-declared.sh
grep -q '^_arg_pos_arg=$' ../tests/regressiontests/test-onlypos-declared.sh
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-onlypos-declared.sh"
argbash ../tests/regressiontests/test-onlyopt.m4 -o ../tests/regressiontests/test-onlyopt.sh
grep -q '^    esac$' ../tests/regressiontests/test-onlyopt.sh
! grep -q '^    ' ../tests/regressiontests/test-onlyopt.sh
../tests/regressiontests/reverse grep -q POSITION ../tests/regressiontests/test-onlyopt.sh
../tests/regressiontests/test-onlyopt.sh -o "PoS sob" | grep -q 'OPT_S=PoS sob,'
../tests/regressiontests/test-onlyopt.sh -B | grep -q 'BOOL=on'
../tests/regressiontests/test-onlyopt.sh -i | grep -q 'OPT_INCR=3,'
../tests/regressiontests/test-onlyopt.sh -i -i | grep -q 'OPT_INCR=4,'
! ../tests/regressiontests/test-onlyopt.sh -h | grep -q -e '-B,'
../tests/regressiontests/reverse ../tests/regressiontests/test-onlyopt.sh LOO 2> /dev/null
../tests/regressiontests/test-onlyopt.sh --opt-arg PoS | grep -q OPT_S=PoS,
../tests/regressiontests/test-onlyopt.sh --opt-arg "PoS sob" | grep -q 'OPT_S=PoS sob,'
../tests/regressiontests/test-onlyopt.sh --boo_l | grep -q 'BOOL=on'
../tests/regressiontests/test-onlyopt.sh --no-boo_l | grep -q 'BOOL=off'
../tests/regressiontests/test-onlyopt.sh -r /usr/lib --opt-repeated /usr/local/lib | grep -q 'ARG_REPEATED=/usr/lib /usr/local/lib,'
../tests/regressiontests/test-onlyopt.sh -h | grep -q -e '-B|--(no-)boo_l'
../tests/regressiontests/test-onlyopt.sh -h | grep -q -e '-i|--incrx'
../tests/regressiontests/test-onlyopt.sh -h | grep -q -e '-i, --incrx'
../tests/regressiontests/test-onlyopt.sh -h | grep -q -e '-o|--opt-arg <arg>'
../tests/regressiontests/test-onlyopt.sh -h | grep -q -e '-o, --opt-arg: @opt-arg@'
../tests/regressiontests/test-onlyopt.sh -h | grep -q -e '-r|--opt-repeated'
../tests/regressiontests/test-onlyopt.sh -h | grep -q -e '-r, --opt-repeated:'
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-onlyopt.sh"
argbash ../tests/regressiontests/test-standalone.m4 -o ../tests/regressiontests/test-standalone.sh --strip user-content
argbash ../tests/regressiontests/test-standalone.sh -o ../tests/regressiontests/test-standalone2.sh --strip user-content
diff -q ../tests/regressiontests/test-standalone.sh ../tests/regressiontests/test-standalone2.sh
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-standalone.sh"
../tests/regressiontests/../../bin/argbash-1to2 ../tests/regressiontests/test-ddash-old.m4 -o ../tests/regressiontests/test-ddash.m4
argbash ../tests/regressiontests/test-ddash.m4 -o ../tests/regressiontests/test-ddash.sh
../tests/regressiontests/test-ddash.sh --boo_l | grep -q 'BOOL=on,'
../tests/regressiontests/test-ddash.sh -- --boo_l | grep -q 'BOOL=off,'
../tests/regressiontests/test-ddash.sh -- --boo_l | grep -q 'POS_OPT=--boo_l,'
../tests/regressiontests/test-ddash.sh -- --help | grep -q 'POS_OPT=--help,'
../tests/regressiontests/test-ddash.sh -- | grep -q 'POS_OPT=pos-default,'
../tests/regressiontests/test-ddash.sh -- --| grep -q 'POS_OPT=--,'
ERROR=spurious  ../tests/regressiontests/reverse ../tests/regressiontests/test-ddash.sh -- foo bar
ERROR=bar       ../tests/regressiontests/reverse ../tests/regressiontests/test-ddash.sh -- foo bar
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-ddash.sh"
argbash ../tests/regressiontests/test-simple.m4 -o ../tests/regressiontests/test-simple.sh
../tests/regressiontests/test-simple.sh pos | grep -q 'OPT_S=x,POS_S=pos,'
../tests/regressiontests/test-simple.sh -o 'uf ta' pos | grep -q 'OPT_S=uf ta,POS_S=pos,'
../tests/regressiontests/test-simple.sh -h | grep -q 'END-$'
../tests/regressiontests/test-simple.sh -h | grep -q '^\s*-BEGIN'
../tests/regressiontests/test-simple.sh -h | grep -q '^         -BEGIN'
../tests/regressiontests/test-simple.sh -h | grep -q -v '^\s*-BEGIN2'
../tests/regressiontests/test-simple.sh -h | grep -q -v 'END2-$'
../tests/regressiontests/test-simple.sh -h | grep -q '"line 2" END-\\n'
../tests/regressiontests/test-simple.sh -h | grep -q '^         -PBEGIN'
../tests/regressiontests/test-simple.sh -h | grep -q 'PEND-$'
grep -q '^              esac' ../tests/regressiontests/test-simple.sh
grep -q '^                      \*)' ../tests/regressiontests/test-simple.sh
ERROR=spurious  ../tests/regressiontests/reverse ../tests/regressiontests/test-simple.sh -- one two
ERROR="last one was: 'two'"     ../tests/regressiontests/reverse ../tests/regressiontests/test-simple.sh one two
ERROR="expect exactly 1"        ../tests/regressiontests/reverse ../tests/regressiontests/test-simple.sh one two
ERROR="[Nn]ot enough"   ../tests/regressiontests/reverse ../tests/regressiontests/test-simple.sh
ERROR="require exactly 1"       ../tests/regressiontests/reverse ../tests/regressiontests/test-simple.sh
../tests/regressiontests/test-simple.sh pos -o 'uf ta' | grep -q 'OPT_S=uf ta,POS_S=pos,'
../tests/regressiontests/test-simple.sh pos -o 'uf ta' --print-optionals | grep -q '_supplied_arg_prefix=1,_supplied_arg_print_optionals=1,_supplied_arg_la=0,_supplied_arg_not_supplied=x'
../tests/regressiontests/test-simple.sh pos -o 'uf ta' --print-optionals --la x | grep -q '_supplied_arg_prefix=1,_supplied_arg_print_optionals=1,_supplied_arg_la=1,_supplied_arg_not_supplied=x'
../tests/regressiontests/test-simple.sh pos -o 'uf ta' --print-optionals --la x --not-supplied | grep -q '_supplied_arg_prefix=1,_supplied_arg_print_optionals=1,_supplied_arg_la=1,_supplied_arg_not_supplied=x'
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-simple.sh"
sed -e 's/ARGBASH_GO/ARGBASH_PREPARE/' ../tests/regressiontests/basic.m4 > ../tests/regressiontests/test-diy-noop.m4
../tests/regressiontests/../../bin/argbash -c -o "../tests/regressiontests/test-diy-noop.sh" "../tests/regressiontests/test-diy-noop.m4"
../tests/regressiontests/test-diy-noop.sh LOO --opt_arg > /dev/null
../tests/regressiontests/test-diy-noop.sh LOO 1 2 3 3 > /dev/null
../tests/regressiontests/test-diy-noop.sh > /dev/null
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-diy-noop.sh"
sed -e "s/#.*\[$/&\n$(grep -e '#  \S' "../tests/regressiontests/test-diy-noop.sh" | sed -e 's/^#  //' | tr '\n' ';')/" ../tests/regressiontests/test-diy-noop.m4 > ../tests/regressiontests/test-diy.m4
argbash ../tests/regressiontests/test-diy.m4 -o ../tests/regressiontests/test-diy.sh
../tests/regressiontests/test-diy.sh LOO | grep -q 'POS_S=LOO',
../tests/regressiontests/test-diy.sh "LOO BAR" | grep -q 'POS_S=LOO BAR,'
../tests/regressiontests/test-diy.sh -b LOO | grep -q BOOL=on,
../tests/regressiontests/test-diy.sh LOO | grep -q BOOL=off,
../tests/regressiontests/test-diy.sh LOO | grep -q 'OPT_S=opt_arg_default lolo',
../tests/regressiontests/test-diy.sh LOO UFTA | grep -q 'POS_OPT=UFTA,'
../tests/regressiontests/test-diy.sh LOO | grep -q 'OPT_INCR=2,'
../tests/regressiontests/test-diy.sh -ii LOO | grep -q 'OPT_INCR=4,'
../tests/regressiontests/test-diy.sh -h | grep -- pos_arg | grep -q pos_arg_help
../tests/regressiontests/test-diy.sh -h | grep -- pos-opt | grep -q @pos-opt-arg@
../tests/regressiontests/test-diy.sh -h | grep -q ' \[<pos-opt>\]'
../tests/regressiontests/test-diy.sh LOO --opt_arg "PoS sob" | grep -q 'OPT_S=PoS sob,'
../tests/regressiontests/test-diy.sh --opt_arg PoS LOO | grep -q OPT_S=PoS,
../tests/regressiontests/test-diy.sh --opt_arg="PoS sob" LOO | grep -q 'OPT_S=PoS sob,'
../tests/regressiontests/test-diy.sh LOO -b | grep -q BOOL=on,
../tests/regressiontests/test-diy.sh LOO --boo_l | grep -q BOOL=on,
../tests/regressiontests/test-diy.sh LOO --boo_l --boo_l | grep -q 'POS_OPT=pos_opt_default lala,'
../tests/regressiontests/test-diy.sh --no-boo_l LOO | grep -q BOOL=off,
../tests/regressiontests/test-diy.sh --opt-incr -i LOO | grep -q 'OPT_INCR=4,'
../tests/regressiontests/test-diy.sh LOO --opt-incr | grep -q 'OPT_INCR=3,'
../tests/regressiontests/reverse ../tests/regressiontests/test-diy.sh LOO --opt_arg 2> /dev/null
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-diy.sh"
argbash ../tests/regressiontests/test-wrapping-single_level.m4 -o ../tests/regressiontests/test-wrapping-single_level.sh
argbash ../tests/regressiontests/test-wrapping-second_level.m4 -o ../tests/regressiontests/test-wrapping-second_level.sh
../tests/regressiontests/test-wrapping-second_level.sh -h | grep -q opt-arg
../tests/regressiontests/test-wrapping-second_level.sh -h | grep -q pos-arg
! ../tests/regressiontests/test-wrapping-second_level.sh -h | grep -q boo_l
! grep -q '^  ' ../tests/regressiontests/test-wrapping-second_level.sh
grep -q '^              esac' ../tests/regressiontests/test-wrapping-second_level.sh
../tests/regressiontests/test-wrapping-second_level.sh XX LOOL | grep -q 'POS_S0=XX,POS_S=LOOL,POS_OPT=pos-default'
../tests/regressiontests/test-wrapping-second_level.sh XX LOOL | grep -q 'POS_S=LOOL,POS_OPT=pos-default'
../tests/regressiontests/test-wrapping-second_level.sh XX LOOL --opt-arg lalala | grep -q OPT_S=lalala,
../tests/regressiontests/test-wrapping-second_level.sh XX LOOL --opt-arg lalala | grep -q 'CMDLINE=--opt-arg lalala XX LOOL pos-default,'
../tests/regressiontests/test-wrapping-second_level.sh XX LOOL --opt-repeated w -r x --opt-repeated=y -rz | grep -q 'CMDLINE=--opt-repeated w -r x --opt-repeated=y -rz XX LOOL pos-default,'
../tests/regressiontests/test-wrapping-second_level.sh XX LOOL | grep -q 'POS_S1=,'
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-wrapping-second_level.sh"
argbash ../tests/regressiontests/test-wrapping.m4 -o ../tests/regressiontests/test-wrapping.sh
../tests/regressiontests/test-wrapping.sh -h | grep -q opt-arg
../tests/regressiontests/test-wrapping.sh -h | grep -q pos-arg
! ../tests/regressiontests/test-wrapping.sh -h | grep -q boo_l
! grep -q '^  ' ../tests/regressiontests/test-wrapping.sh
grep -q '^              esac' ../tests/regressiontests/test-wrapping.sh
../tests/regressiontests/test-wrapping.sh XX LOOL | grep -q 'POS_S0=XX,POS_S=LOOL,POS_OPT=pos-default'
../tests/regressiontests/test-wrapping.sh XX LOOL | grep -q 'POS_S=LOOL,POS_OPT=pos-default'
../tests/regressiontests/test-wrapping.sh XX LOOL --opt-arg lalala | grep -q OPT_S=lalala,
../tests/regressiontests/test-wrapping.sh XX LOOL --opt-arg lalala | grep -q 'CMDLINE=--opt-arg lalala LOOL pos-default,'
../tests/regressiontests/test-wrapping.sh XX LOOL --opt-repeated w -r x --opt-repeated=y -rz | grep -q 'CMDLINE=--opt-repeated w -r x --opt-repeated=y -rz LOOL pos-default,'
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-wrapping.sh"
mkdir -p ../tests/regressiontests/otherdir && cp ../tests/regressiontests/test-onlyopt.m4 ../tests/regressiontests/otherdir/test-onlyopt.m4
mkdir -p ../tests/regressiontests/otherdir && cp ../tests/regressiontests/test-onlypos.m4 ../tests/regressiontests/otherdir/test-onlypos.m4
argbash ../tests/regressiontests/test-wrapping-otherdir.m4 -o ../tests/regressiontests/test-wrapping-otherdir.sh
../tests/regressiontests/test-wrapping-otherdir.sh -h | grep -q opt-arg
../tests/regressiontests/test-wrapping-otherdir.sh -h | grep -q pos-arg
! ../tests/regressiontests/test-wrapping-otherdir.sh -h | grep -q boo_l
! grep -q '^  ' ../tests/regressiontests/test-wrapping-otherdir.sh
grep -q '^              esac' ../tests/regressiontests/test-wrapping-otherdir.sh
../tests/regressiontests/test-wrapping-otherdir.sh XX LOOL | grep -q 'POS_S0=XX,POS_S=LOOL,POS_OPT=pos-default'
../tests/regressiontests/test-wrapping-otherdir.sh XX LOOL | grep -q 'POS_S=LOOL,POS_OPT=pos-default'
../tests/regressiontests/test-wrapping-otherdir.sh XX LOOL --opt-arg lalala | grep -q OPT_S=lalala,
../tests/regressiontests/test-wrapping-otherdir.sh XX LOOL --opt-arg lalala | grep -q 'CMDLINE=--opt-arg lalala LOOL pos-default,'
../tests/regressiontests/test-wrapping-otherdir.sh XX LOOL --opt-repeated w -r x --opt-repeated=y -rz | grep -q 'CMDLINE=--opt-repeated w -r x --opt-repeated=y -rz LOOL pos-default,'
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-wrapping-otherdir.sh"
argbash ../tests/regressiontests/test-wrapping-more.m4 -o ../tests/regressiontests/test-wrapping-more.sh
../tests/regressiontests/test-wrapping-more.sh -i -i -i | grep -q 'CMDLINE=-i -i -i,'
../tests/regressiontests/test-wrapping-more.sh -i -i | grep -q 'OPT_INCR=4,'
ERROR="nexpected argument '--opt-arg'" ../tests/regressiontests/reverse ../tests/regressiontests/test-wrapping-more.sh --opt-arg lalala
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-wrapping-more.sh"
argbash ../tests/regressiontests/test-wrapping-excl.m4 -o ../tests/regressiontests/test-wrapping-excl.sh
../tests/regressiontests/reverse grep -q case ../tests/regressiontests/test-wrapping-excl.sh
../tests/regressiontests/test-wrapping-excl.sh LOO | grep -q POS_S=LOO,POS_OPT=pos-default,
../tests/regressiontests/test-wrapping-excl.sh LOO ar,guma | grep -q POS_S=LOO,POS_OPT=ar,guma,
ERROR=spurious ../tests/regressiontests/reverse ../tests/regressiontests/test-wrapping-excl.sh one two three
ERROR='between 1 and 2' ../tests/regressiontests/reverse ../tests/regressiontests/test-wrapping-excl.sh one two three
ERROR='Not enough' ../tests/regressiontests/reverse ../tests/regressiontests/test-wrapping-excl.sh
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-wrapping-excl.sh"
argbash ../tests/regressiontests/test-wrapping.sh -o ../tests/regressiontests/test-wrapping2.sh
diff -q ../tests/regressiontests/test-wrapping.sh ../tests/regressiontests/test-wrapping2.sh
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-wrapping.sh"
argbash ../tests/regressiontests/test-infinity-minimal_call.m4 -o ../tests/regressiontests/test-infinity-minimal_call.sh
../tests/regressiontests/test-infinity-minimal_call.sh | grep -q 'POS_S='
../tests/regressiontests/test-infinity-minimal_call.sh 1 | grep -q 'POS_S=1,'
../tests/regressiontests/test-infinity-minimal_call.sh 1 2 "3 1 4" 4 5 | grep -q 'POS_S=1,2,3 1 4,4,5,'
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-infinity-minimal_call.sh"
argbash ../tests/regressiontests/test-progs.m4 -o ../tests/regressiontests/test-progs.sh
../tests/regressiontests/test-progs.sh -h | grep MAKE | grep -q utility
../tests/regressiontests/test-progs.sh -h | grep FULALA | grep -q BOOM
ERROR="fulala doesnt exist" ../tests/regressiontests/reverse ../tests/regressiontests/test-progs.sh
../tests/regressiontests/test-progs.sh 2>&1 | grep fulala | grep -q exist
FULALA=make ../tests/regressiontests/test-progs.sh
ERROR="make doesnt work" MAKE=false FULALA=make ../tests/regressiontests/reverse ../tests/regressiontests/test-progs.sh
../tests/regressiontests/test-progs.sh -h | grep fulala | grep -q FULALA
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-progs.sh"
argbash ../tests/regressiontests/test-prog.m4 -o ../tests/regressiontests/test-prog.sh
../tests/regressiontests/test-prog.sh -h | grep FULALA | grep -q BOOM
ERROR="fulala doesnt exist" ../tests/regressiontests/reverse ../tests/regressiontests/test-prog.sh
../tests/regressiontests/test-prog.sh 2>&1 | grep fulala | grep -q exist
FULALA=make ../tests/regressiontests/test-prog.sh
../tests/regressiontests/test-prog.sh -h | grep fulala | grep -q FULALA
ERROR="fulala doesnt work" FULALA=false ../tests/regressiontests/reverse ../tests/regressiontests/test-prog.sh
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-prog.sh"
argbash ../tests/regressiontests/test-infinity.m4 -o ../tests/regressiontests/test-infinity.sh
../tests/regressiontests/test-infinity.sh | grep -q 'POS_S=first,second,third,'
../tests/regressiontests/test-infinity.sh 1 | grep -q 'POS_S=1,second,third,'
../tests/regressiontests/test-infinity.sh 1 2 "3 1 4" 4 5 | grep -q 'POS_S=1,2,3 1 4,4,5,'
! grep -q handle_passed_args_count ../tests/regressiontests/test-infinity.sh
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-infinity.sh"
argbash ../tests/regressiontests/test-infinity-nodefaults.m4 -o ../tests/regressiontests/test-infinity-nodefaults.sh
ERROR="require at least 2" ../tests/regressiontests/reverse ../tests/regressiontests/test-infinity-nodefaults.sh
ERROR="namely: 'pos-arg' (2 times)" ../tests/regressiontests/reverse ../tests/regressiontests/test-infinity-nodefaults.sh
../tests/regressiontests/test-infinity-nodefaults.sh 1 "2 3" | grep -q 'POS_S=1,2 3'
../tests/regressiontests/test-infinity-nodefaults.sh 1 2 "3 1 4" 4 5 | grep -q 'POS_S=1,2,3 1 4,4,5,'
grep -q handle_passed_args_count ../tests/regressiontests/test-infinity-nodefaults.sh
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-infinity-nodefaults.sh"
argbash ../tests/regressiontests/test-infinity-mixed.m4 -o ../tests/regressiontests/test-infinity-mixed.sh
../tests/regressiontests/test-infinity-mixed.sh -h | grep -q '<pos-arg-1> \[<pos-arg-2>\] \.\.\. \[<pos-arg-n>\] \.\.\.$'
ERROR="require at least 1" ../tests/regressiontests/reverse ../tests/regressiontests/test-infinity-mixed.sh
../tests/regressiontests/test-infinity-mixed.sh 1 | grep -q 'POS_S=1,first,second'
../tests/regressiontests/test-infinity-mixed.sh 1 2 "3 1 4" 4 5 | grep -q 'POS_S=1,2,3 1 4,4,5,'
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-infinity-mixed.sh"
argbash ../tests/regressiontests/test-leftovers.m4 -o ../tests/regressiontests/test-leftovers.sh
../tests/regressiontests/test-leftovers.sh -? | grep -q '\[-c|--cosi <arg>\] \[--(no-)fear\] \[-m|--more\] \[-?|--hilfe\] <another> \.\.\. $'
../tests/regressiontests/test-leftovers.sh -c ours -m --more --more --no-fear "ours pos" left "o ver" | grep -q 'MORE=3,OPT_S=ours,FEAR=off,POS_S=ours pos,LEFTOVERS=left,o ver,'
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-leftovers.sh"
argbash ../tests/regressiontests/test-delim-space.m4 -o ../tests/regressiontests/test-delim-space.sh
ERROR="unexpected argument '--opt=something'" ../tests/regressiontests/reverse ../tests/regressiontests/test-delim-space.sh --opt=something
../tests/regressiontests/test-delim-space.sh --opt something | grep -q 'OPT_S=something,'
ERROR="unexpected argument '--add=three'" ../tests/regressiontests/reverse ../tests/regressiontests/test-delim-space.sh -a one --add two --add=three
../tests/regressiontests/test-delim-space.sh -a one --add two | grep -q 'OPT_REP=one two,'
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-delim-space.sh"
argbash ../tests/regressiontests/test-delim-equals.m4 -o ../tests/regressiontests/test-delim-equals.sh
ERROR="unexpected argument '--opt'" ../tests/regressiontests/reverse ../tests/regressiontests/test-delim-equals.sh --opt something
../tests/regressiontests/test-delim-equals.sh --opt=something | grep -q 'OPT_S=something,'
../tests/regressiontests/test-delim-equals.sh --xxx | grep -q 'XXX=on,'
ERROR="unexpected argument '--add'" ../tests/regressiontests/reverse ../tests/regressiontests/test-delim-equals.sh -a one --add two --add=three
../tests/regressiontests/test-delim-equals.sh -a one --add=two | grep -q 'OPT_REP=one two,'
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-delim-equals.sh"
argbash ../tests/regressiontests/test-delim-both.m4 -o ../tests/regressiontests/test-delim-both.sh
../tests/regressiontests/test-delim-both.sh --opt something | grep -q 'OPT_S=something,'
../tests/regressiontests/test-delim-both.sh --opt=something | grep -q 'OPT_S=something,'
../tests/regressiontests/test-delim-both.sh -a one --add two --add=three | grep -q 'OPT_REP=one two three'
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-delim-both.sh"
argbash-init --pos pos --opt opt2 --opt opt --opt-bool boo ../tests/regressiontests/test-init_simple.m4
argbash ../tests/regressiontests/test-init_simple.m4 -o ../tests/regressiontests/test-init_simple.sh
ERROR="[Nn]ot enough" ../tests/regressiontests/reverse ../tests/regressiontests/test-init_simple.sh
../tests/regressiontests/test-init_simple.sh foo | grep -q "'pos': foo"
../tests/regressiontests/test-init_simple.sh foo --opt bar | grep -q " --opt: bar"
../tests/regressiontests/test-init_simple.sh foo --opt bar | grep -q "'boo' is off"
../tests/regressiontests/test-init_simple.sh foo --opt bar --opt2 baz | grep -q " --opt: bar"
../tests/regressiontests/test-init_simple.sh foo --opt bar --opt2 baz | grep -q " --opt2: baz"
../tests/regressiontests/test-init_simple.sh foo --opt bar --opt2 baz --boo | grep -q "'boo' is on"
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-init_simple.sh"
argbash-init --pos pos --opt opt2 --opt opt --opt-bool boo -s ../tests/regressiontests/test-init_simple-s.m4
sed -i '2 s|^|# shellcheck source=../tests/regressiontests/test-init_simple-s-parsing.sh\n|' ../tests/regressiontests/test-init_simple-s.m4
argbash ../tests/regressiontests/test-init_simple-s.m4 -o ../tests/regressiontests/test-init_simple-s.sh
ERROR="[Nn]ot enough" ../tests/regressiontests/reverse ../tests/regressiontests/test-init_simple-s.sh
../tests/regressiontests/test-init_simple-s.sh foo | grep -q "'pos': foo"
../tests/regressiontests/test-init_simple-s.sh foo --opt bar | grep -q " --opt: bar"
../tests/regressiontests/test-init_simple-s.sh foo --opt bar | grep -q "'boo' is off"
../tests/regressiontests/test-init_simple-s.sh foo --opt bar --opt2 baz | grep -q " --opt: bar"
../tests/regressiontests/test-init_simple-s.sh foo --opt bar --opt2 baz | grep -q " --opt2: baz"
../tests/regressiontests/test-init_simple-s.sh foo --opt bar --opt2 baz --boo | grep -q "'boo' is on"
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-init_simple-s.sh"
argbash-init --pos pos --opt opt2 --opt opt --opt-bool boo -s -s ../tests/regressiontests/test-init_simple-ss.sh
sed -i '2 s|^|# shellcheck source=../tests/regressiontests/test-init_simple-ss-parsing.sh\n|' ../tests/regressiontests/test-init_simple-ss.sh
argbash ../tests/regressiontests/test-init_simple-ss-parsing.m4 -o ../tests/regressiontests/test-init_simple-ss-parsing.sh --strip user-content
ERROR="[Nn]ot enough" ../tests/regressiontests/reverse ../tests/regressiontests/test-init_simple-ss.sh
../tests/regressiontests/test-init_simple-ss.sh foo | grep -q "'pos': foo"
../tests/regressiontests/test-init_simple-ss.sh foo --opt bar | grep -q " --opt: bar"
../tests/regressiontests/test-init_simple-ss.sh foo --opt bar | grep -q "'boo' is off"
../tests/regressiontests/test-init_simple-ss.sh foo --opt bar --opt2 baz | grep -q " --opt: bar"
../tests/regressiontests/test-init_simple-ss.sh foo --opt bar --opt2 baz | grep -q " --opt2: baz"
../tests/regressiontests/test-init_simple-ss.sh foo --opt bar --opt2 baz --boo | grep -q "'boo' is on"
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-init_simple-ss.sh"
touch ../tests/regressiontests/regenerate-test-init_simple-s-update.m4
argbash-init --opt ordnung -s ../tests/regressiontests/test-init_simple-s-update.m4 > /dev/null
sed -i '2 s|^|# shellcheck source=../tests/regressiontests/test-init_simple-s-update-parsing.sh\n|' ../tests/regressiontests/test-init_simple-s-update.m4
sed -i 's/^echo .*//' ../tests/regressiontests/test-init_simple-s-update.m4
echo 'test "$_arg_ordnung" = yes || exit 1' >> ../tests/regressiontests/test-init_simple-s-update.m4
argbash ../tests/regressiontests/test-init_simple-s-update.m4 -o ../tests/regressiontests/test-init_simple-s-update.sh
touch ../tests/regressiontests/regenerate-test-init_simple-s-update.m4
../tests/regressiontests/test-init_simple-s-update.sh --ordnung yes > /dev/null
../tests/regressiontests/reverse ../tests/regressiontests/test-init_simple-s-update.sh > /dev/null
ERROR="unexpected argument" ../tests/regressiontests/reverse ../tests/regressiontests/test-init_simple-s-update.sh -o yes > /dev/null
sed -i 's/\[ordnung\]/&,[o]/' ../tests/regressiontests/test-init_simple-s-update-parsing.sh
../tests/regressiontests/../../bin/argbash ../tests/regressiontests/test-init_simple-s-update.sh > /dev/null
../tests/regressiontests/test-init_simple-s-update.sh --ordnung yes > /dev/null
../tests/regressiontests/reverse ../tests/regressiontests/test-init_simple-s-update.sh > /dev/null
../tests/regressiontests/test-init_simple-s-update.sh -o yes > /dev/null
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-init_simple-s-update.sh"
argbash ../tests/regressiontests/test-env-base.m4 -o ../tests/regressiontests/test-env-base.sh
../tests/regressiontests/test-env-base.sh | grep -q 'ENVI_FOO=def,ault,'
../tests/regressiontests/test-env-base.sh | grep -q 'ENVI_BAR=,'
ENVI_FOO=something ../tests/regressiontests/test-env-base.sh | grep -q 'ENVI_FOO=something'
../tests/regressiontests/test-env-base.sh -h | grep -q "ENVI_FOO: A sample env, variable. (default: 'def,ault')"
../tests/regressiontests/test-env-base.sh -h | grep -q "ENVI_BAR: A sample env, variable."
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-env-base.sh"
argbash ../tests/regressiontests/test-env-simple.m4 -o ../tests/regressiontests/test-env-simple.sh
../tests/regressiontests/test-env-simple.sh | grep -q 'ENVI_FOO=def,ault,'
! ../tests/regressiontests/test-env-simple.sh -h | grep -q 'ENVI_FOO'
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-env-simple.sh"
argbash ../tests/regressiontests/test-int.m4 -o ../tests/regressiontests/test-int.sh
../tests/regressiontests/test-int.sh 1 | grep -q "POS_S=1,"
ERROR="integer" ../tests/regressiontests/reverse ../tests/regressiontests/test-int.sh a
ERROR="integer" ../tests/regressiontests/reverse ../tests/regressiontests/test-int.sh 1.5
../tests/regressiontests/test-int.sh 1 --int 2 | grep -q "OPT_S=2,"
ERROR="integer" ../tests/regressiontests/reverse ../tests/regressiontests/test-int.sh 1 --int b
../tests/regressiontests/test-int.sh 01 | grep -q "POS_S=1,"
../tests/regressiontests/test-int.sh +1 | grep -q "POS_S=1,"
../tests/regressiontests/test-int.sh -1 | grep -q "POS_S=-1,"
../tests/regressiontests/test-int.sh -1776 | grep -q "POS_S=-1776,"
../tests/regressiontests/test-int.sh -h | grep -q "INT"
../tests/regressiontests/test-int.sh -h | grep -q "INT+0"
../tests/regressiontests/test-int.sh -h | grep -q "INT+"
../tests/regressiontests/test-int.sh 1 --nnint 2 | grep -q "NN=2,"
../tests/regressiontests/test-int.sh 1 --pint 2 | grep -q "P=2,"
ERROR="positive" ../tests/regressiontests/reverse ../tests/regressiontests/test-int.sh 1 --pint 0
ERROR="negative" ../tests/regressiontests/reverse ../tests/regressiontests/test-int.sh 1 --nnint -1
! grep -q $'\t' ../tests/regressiontests/test-int.sh
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-int.sh"
argbash ../tests/regressiontests/test-group.m4 -o ../tests/regressiontests/test-group.sh
../tests/regressiontests/test-group.sh foo | grep -q "ACT=foo"
../tests/regressiontests/test-group.sh '' | grep -q "ACT="
../tests/regressiontests/test-group.sh foo,baz | grep -q "ACT=foo,baz,"
../tests/regressiontests/test-group.sh "bar bar" | grep -q "ACT=bar bar,"
ERROR="allowed" ../tests/regressiontests/reverse ../tests/regressiontests/test-group.sh fuuuu
ERROR="allowed" ../tests/regressiontests/reverse ../tests/regressiontests/test-group.sh bar
! grep -q _idx ../tests/regressiontests/test-group.sh
../tests/regressiontests/test-group.sh -h | grep act-ion | grep -q "'foo,baz'"
../tests/regressiontests/test-group.sh -h | grep act-ion | grep -q "'bar bar'"
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-group.sh"
argbash ../tests/regressiontests/test-group-idx.m4 -o ../tests/regressiontests/test-group-idx.sh
../tests/regressiontests/test-group-idx.sh foo | grep -q "ACT=foo,IDX=0,"
../tests/regressiontests/test-group-idx.sh foo,baz | grep -q "ACT=foo,baz,IDX=3,"
../tests/regressiontests/test-group-idx.sh "bar bar" | grep -q "ACT=bar bar,IDX=2,"
ERROR="allowed" ../tests/regressiontests/reverse ../tests/regressiontests/test-group-idx.sh "bar bar" --repeated bar
! ../tests/regressiontests/test-group-idx.sh "bar bar" --repeated "bar bar" | grep -q "IDX3=2," > /dev/null
../tests/regressiontests/test-group-idx.sh "bar bar" --opt-tion "bar bar" | grep -q "IDX2=2," > /dev/null
ERROR="allowed" ../tests/regressiontests/reverse ../tests/regressiontests/test-group-idx.sh fuuuu
ERROR="allowed" ../tests/regressiontests/reverse ../tests/regressiontests/test-group-idx.sh bar
# ../tests/regressiontests/test-group-idx.sh -h | grep action | grep ACTION | grep -q 'foo,baz'
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-group-idx.sh"
printf "%s\n%s\n" "#!/usr/bin/env bash" "set -e" "# ARG_RESTRICT_VALUES([no-local-options])" | cat - ../tests/regressiontests/test-simple.m4 | ../tests/regressiontests/../../bin/argbash -o ../tests/regressiontests/test-semi_strict.sh -
../tests/regressiontests/test-semi_strict.sh -o -x pos-arg | grep -q 'OPT_S=-x,'
../tests/regressiontests/test-semi_strict.sh -o --opt-argx pos-arg | grep -q 'OPT_S=--opt-argx,'
ERROR="omitted the actual value" ../tests/regressiontests/reverse ../tests/regressiontests/test-semi_strict.sh -o -o pos-arg
ERROR="omitted the actual value" ../tests/regressiontests/reverse ../tests/regressiontests/test-semi_strict.sh -o -ofoo pos-arg
ERROR="omitted the actual value" ../tests/regressiontests/reverse ../tests/regressiontests/test-semi_strict.sh -o --prefix
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-semi_strict.sh"
printf "%s\n%s\n" "#!/usr/bin/env bash" "set -e" "# ARG_RESTRICT_VALUES([no-any-options])" | cat - ../tests/regressiontests/test-simple.m4 | ../tests/regressiontests/../../bin/argbash -o ../tests/regressiontests/test-very_strict.sh -
ERROR="are trying to pass an option" ../tests/regressiontests/reverse ../tests/regressiontests/test-very_strict.sh -o -x pos-arg
ERROR="are trying to pass an option" ../tests/regressiontests/reverse ../tests/regressiontests/test-very_strict.sh -o -o pos-arg
ERROR="are trying to pass an option" ../tests/regressiontests/reverse ../tests/regressiontests/test-very_strict.sh -x
ERROR="are trying to pass an option" ../tests/regressiontests/reverse ../tests/regressiontests/test-very_strict.sh --foobar
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-very_strict.sh"
printf "%s\n%s\n%s\n" "#!/usr/bin/env bash" "# ARGBASH_SET_DELIM([ =])" "# ARG_OPTION_STACKING([getopt])" | cat - ../tests/regressiontests/test-onlyopt.m4 | ../tests/regressiontests/../../bin/argbash -o ../tests/regressiontests/test-getopt-both.sh -
../tests/regressiontests/test-getopt-both.sh -ii | grep -q 'OPT_INCR=4,'
../tests/regressiontests/test-getopt-both.sh --incrx -ii | grep -q 'OPT_INCR=5,'
../tests/regressiontests/test-getopt-both.sh -Bi | grep 'OPT_INCR=3,' | grep -q 'BOOL=on,'
../tests/regressiontests/test-getopt-both.sh -Bio bu | grep 'OPT_INCR=3,' | grep 'BOOL=on,' | grep -q 'OPT_S=bu,'
../tests/regressiontests/test-getopt-both.sh -Biobu | grep 'OPT_INCR=3,' | grep 'BOOL=on,' | grep -q 'OPT_S=bu,'
../tests/regressiontests/test-getopt-both.sh -Boibu | grep 'BOOL=on,' | grep 'OPT_INCR=2,' | grep -q 'OPT_S=ibu,'
ERROR="'-Bfoo' can't be decomposed to -B and -foo, because -B doesn't accept value and '-f' doesn't correspond to a short option" ../tests/regressiontests/reverse ../tests/regressiontests/test-getopt-both.sh -Bfoo
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-getopt-both.sh"
printf "%s\n%s\n%s\n" "#!/usr/bin/env bash" "# ARGBASH_SET_DELIM([ ])" "# ARG_OPTION_STACKING([getopt])" | cat - ../tests/regressiontests/test-onlyopt.m4 | ../tests/regressiontests/../../bin/argbash -o ../tests/regressiontests/test-getopt-space.sh -
../tests/regressiontests/test-getopt-space.sh -ii | grep -q 'OPT_INCR=4,'
../tests/regressiontests/test-getopt-space.sh --incrx -ii | grep -q 'OPT_INCR=5,'
../tests/regressiontests/test-getopt-space.sh -Bi | grep 'OPT_INCR=3,' | grep -q 'BOOL=on,'
../tests/regressiontests/test-getopt-space.sh -Bio bu | grep 'OPT_INCR=3,' | grep 'BOOL=on,' | grep -q 'OPT_S=bu,'
../tests/regressiontests/test-getopt-space.sh -Biobu | grep 'OPT_INCR=3,' | grep 'BOOL=on,' | grep -q 'OPT_S=bu,'
../tests/regressiontests/test-getopt-space.sh -Boibu | grep 'BOOL=on,' | grep 'OPT_INCR=2,' | grep -q 'OPT_S=ibu,'
ERROR="'-Bfoo' can't be decomposed to -B and -foo, because -B doesn't accept value and '-f' doesn't correspond to a short option" ../tests/regressiontests/reverse ../tests/regressiontests/test-getopt-space.sh -Bfoo
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-getopt-space.sh"
printf "%s\n%s\n%s\n" "#!/usr/bin/env bash" "# ARGBASH_SET_DELIM([=])" "# ARG_OPTION_STACKING([getopt])" | cat - ../tests/regressiontests/test-onlyopt.m4 | ../tests/regressiontests/../../bin/argbash -o ../tests/regressiontests/test-getopt-equals.sh -
../tests/regressiontests/test-getopt-equals.sh -ii | grep -q 'OPT_INCR=4,'
../tests/regressiontests/test-getopt-equals.sh --incrx -ii | grep -q 'OPT_INCR=5,'
../tests/regressiontests/test-getopt-equals.sh -Bi | grep 'OPT_INCR=3,' | grep -q 'BOOL=on,'
../tests/regressiontests/test-getopt-equals.sh -Bio bu | grep 'OPT_INCR=3,' | grep 'BOOL=on,' | grep -q 'OPT_S=bu,'
../tests/regressiontests/test-getopt-equals.sh -Biobu | grep 'OPT_INCR=3,' | grep 'BOOL=on,' | grep -q 'OPT_S=bu,'
../tests/regressiontests/test-getopt-equals.sh -Boibu | grep 'BOOL=on,' | grep 'OPT_INCR=2,' | grep -q 'OPT_S=ibu,'
ERROR="'-Bfoo' can't be decomposed to -B and -foo, because -B doesn't accept value and '-f' doesn't correspond to a short option" ../tests/regressiontests/reverse ../tests/regressiontests/test-getopt-equals.sh -Bfoo
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-getopt-equals.sh"
../tests/regressiontests/../../bin/argbash ../tests/regressiontests/basic.m4 -t docopt --strip all -o ../tests/regressiontests/basic.txt
grep -q "\[<pos-opt>\]" ../tests/regressiontests/basic.txt
grep -q "\[--opt_arg OPT_ARG\]" ../tests/regressiontests/basic.txt
grep -q "\s-o OPT_ARG, --opt_arg OPT_ARG\s" ../tests/regressiontests/basic.txt
! test -x ../tests/regressiontests/basic.txt
../tests/regressiontests/../../bin/argbash ../tests/regressiontests/test-onlyopt.m4 -t docopt --strip all -o ../tests/regressiontests/test-onlyopt.txt
grep -q "\[--opt-repeated OPT-REPEATED\]\.\.\." ../tests/regressiontests/test-onlyopt.txt
grep -q "\[--incrx\]\.\.\." ../tests/regressiontests/test-onlyopt.txt
argbash ../tests/regressiontests/test-ls_like.m4 -o ../tests/regressiontests/test-ls_like.sh
../tests/regressiontests/../../bin/argbash --type excised -o ../tests/regressiontests/test-ls_like-excised.m4 ../tests/regressiontests/test-ls_like.sh
diff -q ../tests/regressiontests/test-ls_like.m4 ../tests/regressiontests/test-ls_like-excised.m4
../tests/regressiontests/../../bin/argbash --type posix-script -o ../tests/regressiontests/basic-dash.sh ../tests/regressiontests/basic.m4
sed -i "s|#!/usr/bin/env bash|#!/home/yeldir/querbeet/workspace/private/projects/argbash/.devbox/nix/profile/default/bin/dash|" ../tests/regressiontests/basic-dash.sh
../tests/regressiontests/basic-dash.sh LOO | grep -q 'POS_S=LOO',
../tests/regressiontests/basic-dash.sh "LOO BAR" | grep -q 'POS_S=LOO BAR,'
../tests/regressiontests/basic-dash.sh -b LOO | grep -q BOOL=on,
../tests/regressiontests/basic-dash.sh LOO | grep -q BOOL=off,
../tests/regressiontests/basic-dash.sh LOO | grep -q 'OPT_S=opt_arg_default lolo',
../tests/regressiontests/basic-dash.sh LOO UFTA | grep -q 'POS_OPT=UFTA,'
../tests/regressiontests/basic-dash.sh LOO | grep -q 'OPT_INCR=2,'
../tests/regressiontests/basic-dash.sh -ii LOO | grep -q 'OPT_INCR=4,'
../tests/regressiontests/basic-dash.sh -h | grep -- pos_arg | grep -q pos_arg_help
../tests/regressiontests/basic-dash.sh -h | grep -- pos-opt | grep -q @pos-opt-arg@
../tests/regressiontests/basic-dash.sh -h | grep -q ' \[<pos-opt>\]'
! grep -q "local _key$" ../tests/regressiontests/basic-dash.sh
../tests/regressiontests/basic-dash.sh LOO -b | grep -q BOOL=off,
../tests/regressiontests/basic-dash.sh LOO -b | grep -q BOOL=off,
../tests/regressiontests/basic-dash.sh -h | grep -q 'P percent: %'
../tests/regressiontests/basic-dash.sh -h | grep -q 'O percent: %'
../tests/regressiontests/basic-dash.sh -h | grep -qe '\[--\]'
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/basic-dash.sh"
../tests/regressiontests/../../bin/argbash --type posix-script -o ../tests/regressiontests/test-onlyopt-dash.sh ../tests/regressiontests/test-onlyopt.m4
sed -i "s|#!/usr/bin/env bash|#!/home/yeldir/querbeet/workspace/private/projects/argbash/.devbox/nix/profile/default/bin/dash|" ../tests/regressiontests/test-onlyopt-dash.sh
grep -q '^    esac$' ../tests/regressiontests/test-onlyopt-dash.sh
! grep -q '^    ' ../tests/regressiontests/test-onlyopt-dash.sh
../tests/regressiontests/reverse grep -q POSITION ../tests/regressiontests/test-onlyopt-dash.sh
../tests/regressiontests/test-onlyopt-dash.sh -o "PoS sob" | grep -q 'OPT_S=PoS sob,'
../tests/regressiontests/test-onlyopt-dash.sh -B | grep -q 'BOOL=on'
../tests/regressiontests/test-onlyopt-dash.sh -i | grep -q 'OPT_INCR=3,'
../tests/regressiontests/test-onlyopt-dash.sh -i -i | grep -q 'OPT_INCR=4,'
! ../tests/regressiontests/test-onlyopt-dash.sh -h | grep -q -e '-B,'
../tests/regressiontests/reverse ../tests/regressiontests/test-onlyopt-dash.sh LOO 2> /dev/null
../tests/regressiontests/test-onlyopt-dash.sh -h | grep -q -e '-B'
../tests/regressiontests/test-onlyopt-dash.sh -h | grep -q -e '-i'
../tests/regressiontests/test-onlyopt-dash.sh -h | grep -q -e '-o <arg>'
../tests/regressiontests/test-onlyopt-dash.sh -h | grep -q -e '-o: @opt-arg@'
! ../tests/regressiontests/test-onlyopt-dash.sh -h | grep -q -e '-r'
ERROR=cosi ../tests/regressiontests/reverse ../tests/regressiontests/test-onlyopt-dash.sh -o lala cosi
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-onlyopt-dash.sh"
../tests/regressiontests/../../bin/argbash --type posix-script -o ../tests/regressiontests/test-simple-dash.sh ../tests/regressiontests/test-simple.m4
sed -i "s|#!/usr/bin/env bash|#!/home/yeldir/querbeet/workspace/private/projects/argbash/.devbox/nix/profile/default/bin/dash|" ../tests/regressiontests/test-simple-dash.sh
../tests/regressiontests/test-simple-dash.sh pos | grep -q 'OPT_S=x,POS_S=pos,'
../tests/regressiontests/test-simple-dash.sh -o 'uf ta' pos | grep -q 'OPT_S=uf ta,POS_S=pos,'
../tests/regressiontests/test-simple-dash.sh -h | grep -q 'END-$'
../tests/regressiontests/test-simple-dash.sh -h | grep -q '^\s*-BEGIN'
../tests/regressiontests/test-simple-dash.sh -h | grep -q '^            -BEGIN'
../tests/regressiontests/test-simple-dash.sh -h | grep -q -v '^\s*-BEGIN2'
../tests/regressiontests/test-simple-dash.sh -h | grep -q -v 'END2-$'
../tests/regressiontests/test-simple-dash.sh -h | grep -q '"line 2" END-\\n'
../tests/regressiontests/test-simple-dash.sh -h | grep -q '^            -PBEGIN'
../tests/regressiontests/test-simple-dash.sh -h | grep -q 'PEND-$'
grep -q '^              esac' ../tests/regressiontests/test-simple-dash.sh
grep -q '^                      \*)' ../tests/regressiontests/test-simple-dash.sh
ERROR=spurious  ../tests/regressiontests/reverse ../tests/regressiontests/test-simple-dash.sh -- one two
ERROR="last one was: 'two'"     ../tests/regressiontests/reverse ../tests/regressiontests/test-simple-dash.sh one two
ERROR="expect exactly 1"        ../tests/regressiontests/reverse ../tests/regressiontests/test-simple-dash.sh one two
ERROR="[Nn]ot enough"   ../tests/regressiontests/reverse ../tests/regressiontests/test-simple-dash.sh
ERROR="require exactly 1"       ../tests/regressiontests/reverse ../tests/regressiontests/test-simple-dash.sh
ERROR="got 3" ../tests/regressiontests/reverse ../tests/regressiontests/test-simple-dash.sh -- -o 'uf ta' pos
ERROR="got 3" ../tests/regressiontests/reverse ../tests/regressiontests/test-simple-dash.sh pos -o 'uf ta'
ERROR="last one was: 'uf ta'" ../tests/regressiontests/reverse ../tests/regressiontests/test-simple-dash.sh pos -o 'uf ta'
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 "../tests/regressiontests/test-simple-dash.sh"
ERROR="pos-arg" ../tests/regressiontests/reverse argbash ../tests/regressiontests/gen-test-pos.m4 > /dev/null
ERROR="opt-arg" ../tests/regressiontests/reverse argbash ../tests/regressiontests/gen-test-opt.m4 > /dev/null
ERROR="pos_arg" ../tests/regressiontests/reverse argbash ../tests/regressiontests/gen-test-pos2.m4 > /dev/null
ERROR="opt_arg" ../tests/regressiontests/reverse argbash ../tests/regressiontests/gen-test-opt2.m4 > /dev/null
ERROR="number of expected positional arguments before 'pos-arg' is unknown (because of argument 'pos-arg', which has a default)" ../tests/regressiontests/reverse argbash ../tests/regressiontests/gen-test-infinity-illegal.m4 > /dev/null
ERROR="'on' or 'off' are allowed as boolean defaults" ../tests/regressiontests/reverse argbash ../tests/regressiontests/gen-test-bool-default.m4 > /dev/null
ERROR="same-arg" ../tests/regressiontests/reverse argbash ../tests/regressiontests/gen-test-pos-opt.m4 > /dev/null
ERROR="same_arg" ../tests/regressiontests/reverse argbash ../tests/regressiontests/gen-test-pos-opt2.m4 > /dev/null
ERROR="ARGBASH_INDICATE_SUPPLIED: The following arguments are not optional: phantom, pos-arg-inf, pos-arg-multi, pos-arg-single, opt-arg-action, opt-arg-incr, opt-arg-repeat" ../tests/regressiontests/reverse argbash ../tests/regressiontests/gen-test-supplied-non-optional.m4 > /dev/null
ERROR="is unknown" ../tests/regressiontests/reverse argbash ../tests/regressiontests/gen-test-more.m4 > /dev/null
ERROR="contains forbidden characters" ../tests/regressiontests/reverse argbash ../tests/regressiontests/gen-test-illegal-pos.m4 > /dev/null
ERROR="one character" ../tests/regressiontests/reverse argbash ../tests/regressiontests/gen-test-illegal-opt.m4 > /dev/null
ERROR="ARG_FOOBAR" ../tests/regressiontests/reverse argbash ../tests/regressiontests/gen-test-misspelled.m4 > /dev/null
ERROR="ARGBASH_GOO" ../tests/regressiontests/reverse argbash ../tests/regressiontests/gen-test-misspelled.m4 > /dev/null
ERROR="unmatched square bracket on line 3" ../tests/regressiontests/reverse argbash ../tests/regressiontests/gen-test-unmatched_bracket.m4 > /dev/null
ERROR="# ARG_OPTIONAL_BOOLEAN(\[long\], l, \[)" ../tests/regressiontests/reverse argbash ../tests/regressiontests/gen-test-unmatched_bracket.m4 > /dev/null
ERROR="3rd argument" ../tests/regressiontests/reverse argbash ../tests/regressiontests/gen-test-badcall-multi.m4 > /dev/null
ERROR="num of args" ../tests/regressiontests/reverse argbash ../tests/regressiontests/gen-test-badcall-multi.m4 > /dev/null
ERROR="actual number of" ../tests/regressiontests/reverse argbash ../tests/regressiontests/gen-test-badcall-multi.m4 > /dev/null
argbash-init --pos -bool ../tests/regressiontests/gen-test-init_name_dash.m4
ERROR="'-bool' .* begins with a dash" ../tests/regressiontests/reverse argbash ../tests/regressiontests/gen-test-init_name_dash.m4 > /dev/null
argbash-init --opt-bool foo/bar-baz ../tests/regressiontests/gen-test-init_name_char.m4
ERROR="'foo/bar-baz' .* contains forbidden characters" ../tests/regressiontests/reverse argbash ../tests/regressiontests/gen-test-init_name_char.m4 > /dev/null
sed -e 's/repeated],/foo,&/' ../tests/regressiontests/test-group.m4 > ../tests/regressiontests/gen-test-group-wrong.m4
ERROR="'foo' is not a script argument" ../tests/regressiontests/reverse argbash ../tests/regressiontests/gen-test-group-wrong.m4 > /dev/null
ERROR="supported" ../tests/regressiontests/reverse argbash --type posix-script ../tests/regressiontests/gen-test-infinity.m4 > /dev/null
ERROR="infinite" ../tests/regressiontests/reverse argbash --type posix-script ../tests/regressiontests/gen-test-infinity.m4 > /dev/null
ERROR="supported" ../tests/regressiontests/reverse argbash --type posix-script ../tests/regressiontests/gen-test-wrap.m4 > /dev/null
rm ../tests/regressiontests/test-ls_like.sh
make[1]: Leaving directory '/home/yeldir/querbeet/workspace/private/projects/argbash/resources'
make tests-clean
make[1]: Entering directory '/home/yeldir/querbeet/workspace/private/projects/argbash/resources'
rm -f ../tests/regressiontests/basic2.sh ../tests/regressiontests/test-salone.sh ../tests/regressiontests/test-standalone2.sh ../tests/regressiontests/test-ddash.m4 ../tests/regressiontests/test-diy-noop.m4 ../tests/regressiontests/test-diy-noop.sh ../tests/regressiontests/test-diy.m4 ../tests/regressiontests/test-wrapping-second_level.sh ../tests/regressiontests/test-wrapping-single_level.sh ../tests/regressiontests/otherdir/test-onlyopt.m4 ../tests/regressiontests/test-wrapping-otherdir.sh ../tests/regressiontests/otherdir/test-onlypos.m4 ../tests/regressiontests/test-wrapping2.sh ../tests/regressiontests/test-init_simple.sh ../tests/regressiontests/test-init_simple.m4 ../tests/regressiontests/test-init_simple-parsing.m4 ../tests/regressiontests/test-init_simple-s.sh ../tests/regressiontests/test-init_simple-s-parsing.sh ../tests/regressiontests/test-init_simple-s-parsing.m4 ../tests/regressiontests/test-init_simple-s.m4 ../tests/regressiontests/regenerate-test-init-simple-s-update.m4 ../tests/regressiontests/test-init_simple-s-update-parsing.sh ../tests/regressiontests/test-init_simple-s-update-parsing.m4 ../tests/regressiontests/regenerate-test-init_simple-s-update.m4 ../tests/regressiontests/test-init_simple-s-update.m4 ../tests/regressiontests/test-init_simple-ss-parsing.sh ../tests/regressiontests/test-init_simple-ss-parsing.m4 ../tests/regressiontests/test-init_simple-ss.sh ../tests/regressiontests/gen-test-init_name_char.m4 ../tests/regressiontests/gen-test-init_name_dash.m4 ../tests/regressiontests/gen-test-group-wrong.m4 ../tests/regressiontests/test-semi_strict.sh ../tests/regressiontests/test-very_strict.sh ../tests/regressiontests/test-getopt-equals.sh ../tests/regressiontests/test-getopt-both.sh ../tests/regressiontests/test-getopt-space.sh  ../tests/regressiontests/basic.sh ../tests/regressiontests/test-void.sh ../tests/regressiontests/call-salone.sh ../tests/regressiontests/test-most.sh ../tests/regressiontests/test-more.sh ../tests/regressiontests/test-onlypos.sh ../tests/regressiontests/test-onlypos-declared.sh ../tests/regressiontests/test-onlyopt.sh ../tests/regressiontests/test-standalone.sh ../tests/regressiontests/test-ddash.sh ../tests/regressiontests/test-simple.sh ../tests/regressiontests/test-diy-noop.sh ../tests/regressiontests/test-diy.sh ../tests/regressiontests/test-wrapping-second_level.sh ../tests/regressiontests/test-wrapping.sh ../tests/regressiontests/test-wrapping-otherdir.sh ../tests/regressiontests/test-wrapping-more.sh ../tests/regressiontests/test-wrapping-excl.sh ../tests/regressiontests/test-infinity-minimal_call.sh ../tests/regressiontests/test-progs.sh ../tests/regressiontests/test-prog.sh ../tests/regressiontests/test-infinity.sh ../tests/regressiontests/test-infinity-nodefaults.sh ../tests/regressiontests/test-infinity-mixed.sh ../tests/regressiontests/test-leftovers.sh ../tests/regressiontests/test-delim-space.sh ../tests/regressiontests/test-delim-equals.sh ../tests/regressiontests/test-delim-both.sh ../tests/regressiontests/test-init_simple.sh ../tests/regressiontests/test-init_simple-s.sh ../tests/regressiontests/test-init_simple-ss.sh ../tests/regressiontests/test-init_simple-s-update.sh ../tests/regressiontests/test-env-base.sh ../tests/regressiontests/test-env-simple.sh ../tests/regressiontests/test-int.sh ../tests/regressiontests/test-group.sh ../tests/regressiontests/test-group-idx.sh ../tests/regressiontests/test-semi_strict.sh ../tests/regressiontests/test-very_strict.sh ../tests/regressiontests/test-getopt-both.sh ../tests/regressiontests/test-getopt-space.sh ../tests/regressiontests/test-getopt-equals.sh ../tests/regressiontests/basic.txt ../tests/regressiontests/test-onlyopt.txt ../tests/regressiontests/test-ls_like-excised.m4  ../tests/regressiontests/basic-dash.sh ../tests/regressiontests/test-onlyopt-dash.sh ../tests/regressiontests/test-simple-dash.sh
rmdir ../tests/regressiontests/otherdir
make[1]: Leaving directory '/home/yeldir/querbeet/workspace/private/projects/argbash/resources'
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 ../tests/regressiontests/../../bin/argbash
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 ../tests/regressiontests/../../bin/argbash-init
test -z "shellcheck -x -e 2015" || shellcheck -x -e 2015 ../bin/argbash-1to2
*** All is OK ***

@matejak
Copy link
Owner

matejak commented Jun 20, 2025

LGTM, thank you!
I will push a test a bit later as a commit to this PR, so no worries about that. However, as you are now a contributor, don't be shy to add your name to AUTHORS.

@matejak matejak added this to the 2.12.0 milestone Jun 20, 2025
@yeldiRium
Copy link
Author

Thanks a lot! I added my name to the list :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants