FIX: Short help -h inaccessible when custom config is used.
When short-circuiting the option parsing, the OPTIND must be adapted, too, so that the getopts processing loop is quit correctly.
This commit is contained in:
@@ -36,4 +36,32 @@ test_todo_session 'shorthelp output with custom action' <<EOF
|
|||||||
See "help" for more details.
|
See "help" for more details.
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
|
|
||||||
|
# Verify that custom configuration is actually processed (when the -d option
|
||||||
|
# precedes the -h option) by specifying a different actions directory and moving
|
||||||
|
# our custom action there. The help output should mention the "Add-On Actions".
|
||||||
|
mv todo.cfg custom.cfg
|
||||||
|
mv .todo.actions.d custom.actions
|
||||||
|
echo 'export TODO_ACTIONS_DIR=$HOME/custom.actions' >> custom.cfg
|
||||||
|
|
||||||
|
test_todo_session '-h fatal error without config' <<EOF
|
||||||
|
>>> todo.sh -h
|
||||||
|
Fatal Error: Cannot read configuration file $HOME/.todo/config
|
||||||
|
=== 1
|
||||||
|
EOF
|
||||||
|
test_todo_session '-h fatal error with trailing custom config' <<EOF
|
||||||
|
>>> todo.sh -h -d custom.cfg
|
||||||
|
Fatal Error: Cannot read configuration file $HOME/.todo/config
|
||||||
|
=== 1
|
||||||
|
EOF
|
||||||
|
|
||||||
|
test_todo_session '-h output with preceding custom config' <<EOF
|
||||||
|
>>> todo.sh -d custom.cfg -h | sed '/^ [A-Z]/!d'
|
||||||
|
Usage: todo.sh [-fhpantvV] [-d todo_config] action [task_number] [task_description]
|
||||||
|
Actions:
|
||||||
|
Actions can be added and overridden using scripts in the actions
|
||||||
|
Add-on Actions:
|
||||||
|
See "help" for more details.
|
||||||
|
EOF
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
|||||||
1
todo.sh
1
todo.sh
@@ -514,6 +514,7 @@ do
|
|||||||
# Cannot just invoke shorthelp() because we need the configuration
|
# Cannot just invoke shorthelp() because we need the configuration
|
||||||
# processed to locate the add-on actions directory.
|
# processed to locate the add-on actions directory.
|
||||||
set -- '-h' 'shorthelp'
|
set -- '-h' 'shorthelp'
|
||||||
|
OPTIND=2
|
||||||
;;
|
;;
|
||||||
n )
|
n )
|
||||||
OVR_TODOTXT_PRESERVE_LINE_NUMBERS=0
|
OVR_TODOTXT_PRESERVE_LINE_NUMBERS=0
|
||||||
|
|||||||
Reference in New Issue
Block a user