allow empty argument arrays
This commit is contained in:
parent
24715e6867
commit
0a23684b82
2 changed files with 8 additions and 3 deletions
File diff suppressed because one or more lines are too long
7
sf
7
sf
|
|
@ -173,6 +173,9 @@ IFS=$OLDIFS
|
|||
# Check if at least one positional argument is set if 'sfparr' is used
|
||||
[ "$sfparr" == true ] && [ "${#_sfpargs[@]}" == 0 ] && _sferr "At least one positional argument must be used with ${sftbf}sfparr${sftrs}"
|
||||
|
||||
# Correct positional argument description if 'sfparr is used'
|
||||
[ "$sfparr" == true ] && _sfpusage="${_sfpusage% *} [${_sfpusage##* } ...]"
|
||||
|
||||
# Correct offsets
|
||||
_sfpoffset=$(( "_sfpoffset" + 3 ))
|
||||
_sfooffset=$(( "_sfooffset" + 3 ))
|
||||
|
|
@ -224,7 +227,6 @@ done
|
|||
function _sfusage {
|
||||
echo -n "Usage: $(basename "$0") [OPTIONS]"
|
||||
echo -ne "$_sfpusage"
|
||||
[ "$sfparr" == true ] && echo -n " ..."
|
||||
echo
|
||||
[ -n "${sfdesc}" ] && echo -e "\n$sfdesc" | fold -s -w "$_sfwidth"
|
||||
if [ "$_sfpdesc" != "" ]; then
|
||||
|
|
@ -302,6 +304,9 @@ done
|
|||
# Parse additional arguments if 'sfparr' is set
|
||||
[ "$sfparr" == true ] && [ "${#_sfparr[@]}" -gt 0 ] && read -r -a "${_sfplast?}" <<< "${_sfparr[@]}"
|
||||
|
||||
# Remove last missing argument to allow empty arrays if 'sfparr' is set
|
||||
[ "$sfparr" == true ] && [ "${#_sfpargs[@]}" -gt 0 ] && unset '_sfpargs[${#_sfpargs[@]}-1]'
|
||||
|
||||
# Check if positional arguments left
|
||||
if [ "${#_sfpargs[@]}" -gt 0 ]; then
|
||||
for p in "${_sfpargs[@]}"; do
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue