diff --git a/shell/select-option.sh b/shell/select-option.sh index e74fdbc..26b6578 100755 --- a/shell/select-option.sh +++ b/shell/select-option.sh @@ -1,5 +1,6 @@ #!/usr/bin/env bash +## Function start function select_option { local nformat local optcount=$# @@ -142,6 +143,7 @@ function select_option { return $(( $returnvalue + 10 )) } +## Function end [[ $_ == $0 ]] && { _help() { @@ -190,6 +192,15 @@ _help() { " exit } +_package_self() { + grep ^SELECT_ "$0" + printf "source <( echo '" + awk '/^## Function start/{flag=1;next}/^## Function end/{flag=0}flag' "$0" | \ + base64 -w 0 + printf "' | base64 -d )\n" + printf 'select_option one two three || choice=$(( $? - 9 ))\n' +} + SELECT_MONOCHROME=0 SELECT_NUMBERS=0 @@ -206,6 +217,7 @@ for (( i=1; i<=$#; i++ )); do [[ "$value" = "-n" ]] && { SELECT_NUMBERS=1; continue; } [[ "$value" = "-_" ]] && { SELECT_UNDERSCORES=1; continue; } [[ "$value" = "-o" ]] && { SELECT_TOFILE="${!j}"; ((i++)); continue; } + [[ "$value" = "--package" ]] && { _package_self; exit; } opts+=( "$value" ) done