ct-ng.comp
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Tue Jun 08 23:26:54 2010 +0200 (2010-06-08)
changeset 1976 2d90ec981ba3
parent 1829 bf1f86bdd79f
child 2053 2238f1167eaa
permissions -rw-r--r--
config: add support for a second part of the generated choices

Some components have configuration options that can depend on
generic options, so they should go below those.

uClibc for example:
- has its own options (wchar...)
- uses the generic options (threads...)
- if linuxthreads chosen, offers two impls

So we need to be able to split the components options in 2,
one part that is above the generic options, and one part that
ends up below the generic options.
     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 2>/dev/null  \
    10                |tail -n +2 |sed -e '/^ /d; s/ .*//;'        \
    11              )
    12     show_samples=$(echo "${samples}" |sed -r -e 's/(^| )/\1show-/g;')
    13     build_samples=$(echo "${samples}" |sed -r -e 's/(^| )/\1build-/g;')
    14 
    15     steps=$(${COMP_WORDS[0]} list-steps 2>/dev/null |awk '$1 == "-" { print $2; }')
    16     start_steps=$(echo "${steps}" |sed -r -e 's/($| )/\1+/;')
    17     stop_steps=$(echo "${steps}" |sed -r -e 's/(^| )/+\1/;')
    18 
    19     actions='help menuconfig oldconfig saveconfig extractconfig
    20              build build. build-all build-all.
    21              list-samples list-steps show-tuple show-all show-config
    22              clean distclean wiki-samples updatetools
    23              tarball version'
    24 
    25     vars="RESTART= STOP= PREFIX= V="
    26 
    27     ct_ng_opts="${samples} ${show_samples} ${build_samples}
    28                 ${steps} ${start_steps} ${stop_steps}
    29                 ${actions} ${vars}"
    30 
    31     COMPREPLY=($(compgen -W "${ct_ng_opts}" -- "${cur}"))
    32     return 0
    33 }
    34 complete -F _ct-ng ct-ng