sistema_progs

Programas para customizar o meu entorno de traballo nos meus equipos persoais
Log | Files | Refs

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 }