Centralize standard getopts arguments, both for convenience and to correct
a bug in which certain combinations of arguments produced unexpected results such as `-dX' (now properly produces debugging and X11), `-XS' (now properly produces X11 in secure mode), `-df-' (enables debugging when reading a script from standard-input, etc. Multi-word variations such as `-d -X', `-X -S', `-d -f-', `-d -f -', etc. also work as expected. Also tested were variations in argument order, which are now working as expected.
This commit is contained in:
parent
e946bdbe31
commit
c3755aa30c
@ -239,7 +239,7 @@ fi
|
||||
# Process command-line arguments
|
||||
#
|
||||
scripts_loaded=0
|
||||
while getopts dD:f:hSX flag; do
|
||||
while getopts f:h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
f) [ $scripts_loaded -eq 0 ] && f_include $BSDCFG_SHARE/script.subr
|
||||
f_script_load "$OPTARG"
|
||||
|
@ -95,7 +95,7 @@ dialog_menu_main()
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -119,7 +119,7 @@ dialog_menu_main()
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -217,7 +217,7 @@ dialog_menu_main()
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -99,7 +99,7 @@ dialog_menu_main()
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -118,7 +118,7 @@ dialog_menu_main()
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -103,7 +103,7 @@ dialog_menu_main()
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -163,7 +163,7 @@ ttys_set_type()
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -56,7 +56,7 @@ X11TERM_OPTS=
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -56,7 +56,7 @@ X11TERM_OPTS=
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -56,7 +56,7 @@ MOUSED_PIDFILE=/var/run/moused.pid
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -56,7 +56,7 @@ MOUSED_PIDFILE=/var/run/moused.pid
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -56,7 +56,7 @@ MOUSED_PIDFILE=/var/run/moused.pid
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -94,7 +94,7 @@ dialog_menu_main()
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -103,7 +103,7 @@ dialog_menu_main()
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -111,7 +111,7 @@ dialog_menu_main()
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -49,7 +49,7 @@ ipgm=$( f_index_menusel_keyword $BSDCFG_LIBE/$APP_DIR/INDEX "$pgm" )
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -54,7 +54,7 @@ ipgm=$( f_index_menusel_keyword $BSDCFG_LIBE/$APP_DIR/INDEX "$pgm" )
|
||||
#
|
||||
# Process command-line options
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -52,7 +52,7 @@ ipgm=$( f_index_menusel_keyword $BSDCFG_LIBE/$APP_DIR/INDEX "$pgm" )
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -52,7 +52,7 @@ ipgm=$( f_index_menusel_keyword $BSDCFG_LIBE/$APP_DIR/INDEX "$pgm" )
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -91,7 +91,7 @@ dialog_menu_main()
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -55,7 +55,7 @@ ipgm=$( f_index_menusel_keyword $BSDCFG_LIBE/$APP_DIR/INDEX "$pgm" )
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -55,7 +55,7 @@ USER_ROOT=root
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -108,7 +108,7 @@ dialog_menu_main()
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -133,7 +133,7 @@ dialog_menu_main()
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -67,6 +67,16 @@ export UNAME_R="$(uname -r)" # Release Level (i.e. X.Y-RELEASE)
|
||||
#
|
||||
: ${DEBUG_SELF_INITIALIZE=1}
|
||||
|
||||
#
|
||||
# Define standard optstring arguments that should be supported by all programs
|
||||
# using this include (unless DEBUG_SELF_INITIALIZE is set to NULL to prevent
|
||||
# f_debug_init() from autamatically processing "$@" for the below arguments):
|
||||
#
|
||||
# d Sets $debug to 1
|
||||
# D: Sets $debugFile to $OPTARG
|
||||
#
|
||||
GETOPTS_STDARGS="dD:"
|
||||
|
||||
############################################################ FUNCTIONS
|
||||
|
||||
# f_dprintf $fmt [ $opts ... ]
|
||||
@ -102,7 +112,9 @@ f_debug_init()
|
||||
#
|
||||
set -- $ARGV
|
||||
local OPTIND
|
||||
while getopts dD: flag > /dev/null; do
|
||||
f_dprintf "f_debug_init: ARGV=[%s] GETOPTS_STDARGS=[%s]" \
|
||||
"$ARGV" "$GETOPTS_STDARGS"
|
||||
while getopts "$GETOPTS_STDARGS" flag > /dev/null; do
|
||||
case "$flag" in
|
||||
d) debug=1;;
|
||||
D) debugFile="$OPTARG";;
|
||||
@ -110,6 +122,8 @@ f_debug_init()
|
||||
esac
|
||||
done
|
||||
shift $(( $OPTIND - 1 ))
|
||||
f_dprintf "f_debug_init: debug=[%s] debugFile=[%s]" \
|
||||
"$debug" "$debugFile"
|
||||
|
||||
#
|
||||
# Automagically enable debugging if debugFile is set (and non-NULL)
|
||||
|
@ -1530,25 +1530,37 @@ f_dialog_init()
|
||||
#
|
||||
eval exec $DIALOG_TERMINAL_PASSTHRU_FD\>\&1
|
||||
|
||||
#
|
||||
# Add `-S' and `-X' to the list of standard arguments supported by all
|
||||
#
|
||||
case "$GETOPTS_STDARGS" in
|
||||
*SX*) : good ;; # already present
|
||||
*) GETOPTS_STDARGS="${GETOPTS_STDARGS}SX"
|
||||
esac
|
||||
|
||||
#
|
||||
# Process stored command-line arguments
|
||||
#
|
||||
SECURE=$( set -- "$ARGV"
|
||||
while getopts S flag > /dev/null; do
|
||||
f_dprintf "f_dialog_init: ARGV=[%s] GETOPTS_STDARGS=[%s]" \
|
||||
"$ARGV" "$GETOPTS_STDARGS"
|
||||
SECURE=$( set -- $ARGV
|
||||
while getopts "$GETOPTS_STDARGS" flag > /dev/null; do
|
||||
case "$flag" in
|
||||
S) echo 1;;
|
||||
\?) continue;;
|
||||
esac
|
||||
done
|
||||
)
|
||||
USE_XDIALOG=$( set -- "$ARGV"
|
||||
while getopts SX flag > /dev/null; do
|
||||
USE_XDIALOG=$( set -- $ARGV
|
||||
while getopts $GETOPTS_STDARGS flag > /dev/null; do
|
||||
case "$flag" in
|
||||
S|X) echo 1;;
|
||||
\?) continue;;
|
||||
esac
|
||||
done
|
||||
)
|
||||
f_dprintf "f_dialog_init: SECURE=[%s] USE_XDIALOG=[%s]" \
|
||||
"$SECURE" "$USE_XDIALOG"
|
||||
|
||||
#
|
||||
# Process `-X' command-line option
|
||||
|
@ -319,7 +319,7 @@ dialog_input_value()
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -97,7 +97,7 @@ dialog_menu_main()
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -201,7 +201,7 @@ dialog_menu_main()
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -301,7 +301,7 @@ dialog_menu_confirm_delete()
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -49,7 +49,7 @@ ipgm=$( f_index_menusel_keyword $BSDCFG_LIBE/$APP_DIR/INDEX "$pgm" )
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -161,7 +161,7 @@ dialog_menu_main()
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -92,7 +92,7 @@ dialog_menu_main()
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -117,7 +117,7 @@ dialog_menu_main()
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts C:dD:ehnrsSvX flag; do
|
||||
while getopts C:ehnrsv$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
C) CHROOTENV="$OPTARG";;
|
||||
e) TZ_OR_FAIL=1;;
|
||||
|
@ -67,7 +67,7 @@ ETC_TTYS=/etc/ttys
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -47,7 +47,7 @@ ipgm=$( f_index_menusel_keyword $BSDCFG_LIBE/$APP_DIR/INDEX "$pgm" )
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -50,7 +50,7 @@ ipgm=$( f_index_menusel_keyword $BSDCFG_LIBE/$APP_DIR/INDEX "$pgm" )
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -50,7 +50,7 @@ ipgm=$( f_index_menusel_keyword $BSDCFG_LIBE/$APP_DIR/INDEX "$pgm" )
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -47,7 +47,7 @@ ipgm=$( f_index_menusel_keyword $BSDCFG_LIBE/$APP_DIR/INDEX "$pgm" )
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -50,7 +50,7 @@ ipgm=$( f_index_menusel_keyword $BSDCFG_LIBE/$APP_DIR/INDEX "$pgm" )
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -50,7 +50,7 @@ ipgm=$( f_index_menusel_keyword $BSDCFG_LIBE/$APP_DIR/INDEX "$pgm" )
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
@ -111,7 +111,7 @@ dialog_menu_main()
|
||||
#
|
||||
# Process command-line arguments
|
||||
#
|
||||
while getopts dD:hSX flag; do
|
||||
while getopts h$GETOPTS_STDARGS flag; do
|
||||
case "$flag" in
|
||||
h|\?) f_usage $BSDCFG_LIBE/$APP_DIR/USAGE "PROGRAM_NAME" "$pgm";;
|
||||
esac
|
||||
|
Loading…
Reference in New Issue
Block a user