ct-ng.comp
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Mon Dec 22 18:21:51 2008 +0000 (2008-12-22)
changeset 1105 3ba2a43353df
parent 1000 b5bbe3bf5204
child 1336 bc8b9381f637
permissions -rw-r--r--
Rationalise ./configure
- borrow a lot of ideas from Michael ABBOTT ( http://sourceware.org/ml/crossgcc/2008-12/msg00030.html )
- should be conforming to POSIX 1003.1-2008, non compliance due to bashsims is to be considered a bug
- as a result, it now works with dash
- make a little easier to read in some places
- enforce 4-space indentation
- get rid of futile 'return $?'
- quote all variables assignments
- save and restore IFS prior to and after using alternate values
- simplify the TOOLS_TO_CHECK listing

What's left:
- provide a mean to actually _compare_ version numbers
- change the TOOLS_TO_CHECK pattern style to be able to use '|' in regexp

/trunk/configure | 243 127 116 0 ++++++++++++++++++++++++++++++++------------------------------
1 file changed, 127 insertions(+), 116 deletions(-)
yann@835
     1
# To be sourced
yann@835
     2
yann@835
     3
_ct-ng () {
yann@835
     4
    local cur prev samples show_samples actions steps start_steps stop_steps ct_ng_opts vars
yann@835
     5
    COMPREPLY=()
yann@835
     6
    cur=$(_get_cword)
yann@835
     7
    prev=${COMP_WORDS[COMP_CWORD-1]}
yann@835
     8
yann@918
     9
    samples=$(${COMP_WORDS[0]} list-samples 2>/dev/null)
yann@835
    10
    show_samples=$(echo "${samples}" |sed -r -e 's/(^| )/\1show-/g;')
yann@1025
    11
    build_samples=$(echo "${samples}" |sed -r -e 's/(^| )/\1build-/g;')
yann@835
    12
yann@918
    13
    steps=$(${COMP_WORDS[0]} list-steps 2>/dev/null |awk '$1 == "-" { print $2; }')
yann@934
    14
    start_steps=$(echo "${steps}" |sed -r -e 's/($| )/\1+/;')
yann@835
    15
    stop_steps=$(echo "${steps}" |sed -r -e 's/(^| )/+\1/;')
yann@835
    16
yann@1000
    17
    actions='help menuconfig oldconfig saveconfig
yann@1025
    18
             build build. build-all build-all.
yann@1025
    19
             list-samples list-steps
yann@1025
    20
             clean distclean wiki-samples updatetools
yann@932
    21
             tarball version'
yann@835
    22
yann@835
    23
    vars="RESTART= STOP="
yann@835
    24
yann@1025
    25
    ct_ng_opts="${samples} ${show_samples} ${build_samples}
yann@835
    26
                ${steps} ${start_steps} ${stop_steps}
yann@835
    27
                ${actions} ${vars}"
yann@835
    28
yann@835
    29
    COMPREPLY=($(compgen -W "${ct_ng_opts}" -- "${cur}"))
yann@835
    30
    return 0
yann@835
    31
}
yann@835
    32
complete -F _ct-ng ct-ng