ct-ng.comp
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Sat Oct 06 23:48:07 2012 +0200 (2012-10-06)
changeset 3083 3a7b2eee9dcd
parent 2988 a57b8a45ea26
child 3167 15f57d843296
permissions -rw-r--r--
scripts: add option to start an interactive debug shell

Add an option that, when a command fails:
- starts an interactive shell with the failed command's environment
- attempts re-execution of the failed command, continues, or aborts
at user's whim.

Before starting the debug-shell, the backtrace is printed.
When exiting for an abort, the standard error message is printed.

Based on an idea and a patch from: Johannes Stezenbach <js@sig21.net>
http://sourceware.org/ml/crossgcc/2012-09/msg00144.html

Signed-off-by: Johannes Stezenbach <js@sig21.net>
[yann.morin.1998@free.fr: integrate in the fault handler]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Acked-by: Johannes Stezenbach <js@sig21.net>
Patchwork-Id: 191571
Patchwork-Id: 191668
yann@835
     1
# To be sourced
yann@835
     2
yann@2988
     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@2053
     9
    samples=$( "${COMP_WORDS[0]}" list-samples-short 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@1803
    17
    actions='help menuconfig oldconfig saveconfig extractconfig
yann@3034
    18
             defconfig olddefconfig
yann@1025
    19
             build build. build-all build-all.
yann@2053
    20
             wiki-samples list-samples list-samples-short list-steps
yann@2053
    21
             show-tuple show-all show-config
yann@2053
    22
             clean distclean updatetools
yann@932
    23
             tarball version'
yann@835
    24
yann@3034
    25
    vars="RESTART= STOP= PREFIX= V= DEFCONFIG="
yann@835
    26
yann@1025
    27
    ct_ng_opts="${samples} ${show_samples} ${build_samples}
yann@835
    28
                ${steps} ${start_steps} ${stop_steps}
yann@835
    29
                ${actions} ${vars}"
yann@835
    30
yann@835
    31
    COMPREPLY=($(compgen -W "${ct_ng_opts}" -- "${cur}"))
yann@835
    32
    return 0
yann@835
    33
}
yann@2988
    34
complete -F _ct_ng ct-ng