? pats Index: .cvsignore =================================================================== RCS file: /cvs/cygwin-apps/mknetrel/.cvsignore,v retrieving revision 1.2 diff -p -u -r1.2 .cvsignore --- .cvsignore 9 Jul 2002 03:32:14 -0000 1.2 +++ .cvsignore 9 Jul 2002 12:06:38 -0000 @@ -4,6 +4,7 @@ Makefile #* *.swp .cvsignore +.bash_mknetrel build inst log Index: bin/mknetrel =================================================================== RCS file: /cvs/cygwin-apps/mknetrel/bin/mknetrel,v retrieving revision 1.33 diff -p -u -r1.33 mknetrel --- bin/mknetrel 9 Jul 2002 06:32:17 -0000 1.33 +++ bin/mknetrel 9 Jul 2002 12:06:38 -0000 @@ -32,6 +32,24 @@ read_user_config() { export knownpath } +atexit () { :; } + +trap atexit 0 9 15 + +# Interactive shell with state of bash at exit upon failure +drop () +{ + [ "$?" -eq 0 ] && trap - 0 9 15 && exit 0 || true + echo "$0: dropping to shell..." + set | sed -e 's/^\(BASH_VERSINFO=\)/#\1/' \ + -e 's/^\(EUID=\)/#\1/' \ + -e 's/^\(PPID=\)/#\1/' \ + -e 's/^\(SHELLOPTS=\)/#\1/' \ + -e 's/^\(UID=\)/#\1/' > .bash_mknetrel + echo "PS1='mknetrel-debug \w$ '" >> .bash_mknetrel + exec bash --rcfile .bash_mknetrel +} + setvars() { cd $netrel_root || exit 1 here=`pwd` @@ -86,19 +104,20 @@ setup() { read_user_config clean=false opt="-O2" - while getopts 'ihtbcCgNnxSoB' o; do + while getopts 'ihtbcCgNnxXSoB' o; do case "$o" in 'b') rebuild() { dorebuild; } ;; 'B') background() { return 0;}; output() { return 0;} ;; 'c') config() { doconfig; }; rebuild() { dorebuild; } ;; 'C') clean=: ;; 'g') opt="-O2 -g"; rebuild() { dorebuild; } ;; - 'h') usage ;; + 'h') usage; exit 0;; 'i') knownpath= ;; 'n') mkdist() { :; } ;; 'o') output() { return 0; } ;; 'S') stripbins() { return 1; } ;; 'x') verbose() { set -x; } ;; + 'X') atexit() { drop; } ;; '?') exit 1 ;; esac done @@ -107,6 +126,7 @@ setup() { what=$1 if [ -z "$what" ]; then usage "missing package name" + exit 1 fi setvars $what @@ -122,6 +142,7 @@ setup1() { export PATH if [ -z "$what" ]; then usage "missing package name" + exit 1 fi [ -d "$build" ] || clean=: @@ -324,8 +345,8 @@ usage() { -o Redirect output to $mknetrel_root/log/*.out -S Don't strip binaries -t Tag sourceware with release info - -x Verbose shell output" - exit 1 + -x Verbose shell output + -X Drop to a shell upon error" } rest() {