core-cmdspec-def.sh (3541B)
1 # -*- mode: sh; mode: sh-bash -*- 2 3 function ble/cmdspec/initialize { ble-import "$_ble_base/lib/core-cmdspec.sh"; } 4 ble/is-function ble/util/idle.push && ble-import -d "$_ble_base/lib/core-cmdspec.sh" 5 6 7 ## @type cmdspec_opts 8 ## 各コマンドのコマンドライン引数解釈に関する情報を記述します。 9 ## コロン区切りのオプションの列で記述されます。 10 ## 以下の値の組み合わせで指定します。 11 ## 12 ## mandb-disable-man 13 ## mandb 構築の際に man page を参照しません。 14 ## 15 ## mandb-help 16 ## mandb 構築の際に $CMD --help の結果を解析します。 17 ## mandb-help=%COMMAND 18 ## mandb 構築の際に COMMAND の実行結果を利用します。 19 ## mandb-help=@HELPTEXT 20 ## mandb 構築の際に HELPTEXT を解析します。 21 ## mandb-help-usage 22 ## mandb 構築を mandb-help を通して行う時に [-abc] [-a ARG] の形の使用方法 23 ## からオプションを抽出します。 24 ## 25 ## mandb-usage 26 ## mandb 構築の際に $CMD --usage の結果を解析します。 27 ## 28 ## mandb-exclude=REGEX 29 ## mandb で生成されるオプションを除外します。オプション名に対する awk の正 30 ## 規表現パターンを指定します。 31 ## 32 ## plus-options 33 ## plus-options=xyzw 34 ## "'+' CHAR" の形式のオプションを受け取る事を示します。 35 ## 引数を指定した場合には更に対応している plus option の集合と解釈します。 36 ## 例えば xyzw を指定した時、+x, +y, +z, +w に対応している事を示します。 37 ## 38 ## no-options 39 ## オプションを解釈しない事を示します。 40 ## stop-options-on=REX_STOP 41 ## 指定したパターンに一致する引数より後はオプションの解釈を行わないません。 42 ## stop-options-unless=REX_CONT 43 ## 指定したパターンに一致しない引数より後はオプションの解釈を行わないません。 44 ## stop-options-at=IWORD 45 ## 指定した位置以降の引数ではオプションの解釈を行わない事を示します。 46 ## stop-options-postarg 47 ## 通常引数の後はオプションの解釈を行わない事を示します。 48 ## この設定は stop-options-unless により上書きされます。 49 ## disable-double-hyphen 50 ## オプション '--' 以降もオプションの解釈を行います。 51 ## この設定は stop-options-on により上書きされます。 52 ## 53 54 builtin eval -- "${_ble_util_gdict_declare//NAME/_ble_cmdspec_opts}" 55 56 ## @fn ble/cmdspec/opts [+]cmdspec_opts command... 57 ## 指定したコマンドの cmdspec_opts を設定します。 58 ## @param[in] opts 59 ## "+" が全治されている時は既存の設定に cmdspec_opts を追加します。 60 ## @param[in] command... 61 ## 追加対象のコマンドのリストを指定します。 62 function ble/cmdspec/opts { 63 local spec=$1 command; shift 64 for command; do 65 local spec1=$spec 66 if [[ $spec1 == +* ]]; then 67 local ret= 68 ble/gdict#get _ble_cmdspec_opts "$command" "$spec1" 69 spec1=${ret:+$ret:}${spec1:1} 70 fi 71 ble/gdict#set _ble_cmdspec_opts "$command" "$spec1" 72 done 73 } 74 ## @fn ble/cmdspec/opts#load command [default_value] 75 ## @var[out] cmdspec_opts 76 function ble/cmdspec/opts#load { 77 cmdspec_opts=$2 78 local ret= 79 if ble/gdict#get _ble_cmdspec_opts "$1" || 80 { [[ $1 == */*[!/] ]] && ble/gdict#get _ble_cmdspec_opts "${1##*/}"; } 81 then 82 cmdspec_opts=$ret 83 fi 84 }