ct-ng.comp
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Mon May 07 21:37:59 2012 +0200 (2012-05-07)
changeset 2982 1e35d2fa54d7
parent 1876 a6a4beab3125
child 2988 a57b8a45ea26
permissions -rw-r--r--
samples: rework show-tuple

Now that we are using defconfig files, the samples do not contain
the full configuration, so we can not simply parse them to show
their content.

Instead, we must fake recalling a sample, and parse the generated
.config file.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
     1 # To be sourced
     2 
     3 _ct-ng () {
     4     local cur prev samples show_samples actions steps start_steps stop_steps ct_ng_opts vars
     5     COMPREPLY=()
     6     cur=$(_get_cword)
     7     prev=${COMP_WORDS[COMP_CWORD-1]}
     8 
     9     samples=$( "${COMP_WORDS[0]}" list-samples-short 2>/dev/null )
    10     show_samples=$(echo "${samples}" |sed -r -e 's/(^| )/\1show-/g;')
    11     build_samples=$(echo "${samples}" |sed -r -e 's/(^| )/\1build-/g;')
    12 
    13     steps=$(${COMP_WORDS[0]} list-steps 2>/dev/null |awk '$1 == "-" { print $2; }')
    14     start_steps=$(echo "${steps}" |sed -r -e 's/($| )/\1+/;')
    15     stop_steps=$(echo "${steps}" |sed -r -e 's/(^| )/+\1/;')
    16 
    17     actions='help menuconfig oldconfig saveconfig extractconfig
    18              build build. build-all build-all.
    19              wiki-samples list-samples list-samples-short list-steps
    20              show-tuple show-all show-config
    21              clean distclean updatetools
    22              tarball version'
    23 
    24     vars="RESTART= STOP= PREFIX= V="
    25 
    26     ct_ng_opts="${samples} ${show_samples} ${build_samples}
    27                 ${steps} ${start_steps} ${stop_steps}
    28                 ${actions} ${vars}"
    29 
    30     COMPREPLY=($(compgen -W "${ct_ng_opts}" -- "${cur}"))
    31     return 0
    32 }
    33 complete -F _ct-ng ct-ng