slitaz-tools rev 249
tazdialog: simplify shell parser stuff
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Thu Jul 17 22:18:29 2008 +0000 (2008-07-17) |
parents | 7dd29bc8b4ca |
children | 507c5860528f |
files | tinyutils/tazdialog |
line diff
1.1 --- a/tinyutils/tazdialog Thu Jul 17 14:39:29 2008 +0000 1.2 +++ b/tinyutils/tazdialog Thu Jul 17 22:18:29 2008 +0000 1.3 @@ -11,6 +11,40 @@ 1.4 echo -e $1 | sed -e 's/\\Z.//g' | tr 'àâäçéèêëîïûü' 'aaaceeeeiiuu' 1.5 } 1.6 1.7 +fake_gauge() 1.8 +{ 1.9 +[ -n "$percent" ] && echo $percent 1.10 +while read line; do 1.11 + case "$line" in 1.12 + [0-9]*) echo $line;; 1.13 + *);; 1.14 + esac 1.15 +done 1.16 +echo 100 1.17 +} 1.18 + 1.19 +fake_dialog() 1.20 +{ 1.21 +if [ -n "$gauge" ]; then 1.22 + fake_gauge | gtkdialog --center --program=BOX 1.23 +else 1.24 + gtkdialog --center --program=BOX 1.25 +fi 2> /dev/null | while read line; do 1.26 + case "$line" in 1.27 + *OUTPUT*) eval $line 1.28 + echo "$OUTPUT" 1>&2 ;; 1.29 + *CHECK*true*) line=${line%=*}; line=${line#CHECK} 1.30 + [ $line -eq 0 ] || shift $((3 * $line)) 1.31 + echo -n "\"$1\" " 1>&2;; 1.32 + *LIST=*) eval $line; set -- $LIST 1.33 + echo "$1" 1>&2 ;; 1.34 + *EXIT*abort*) echo 255;; 1.35 + *EXIT*) eval $line 1.36 + echo $EXIT ;; 1.37 + esac 1.38 +done 1.39 +} 1.40 + 1.41 if [ -z "$XAUTHORITY" ]; then 1.42 [ -n "$TEXTDIALOG" ] || TEXTDIALOG="dialog" 1.43 export DIALOG=$TEXTDIALOG 1.44 @@ -179,28 +213,4 @@ 1.45 </window> 1.46 " 1.47 export BOX 1.48 -status=$(if [ -n "$gauge" ]; then 1.49 - ([ -n "$percent" ] && echo $percent 1.50 - while read line; do 1.51 - case "$line" in 1.52 - [0-9]*) echo $line;; 1.53 - *);; 1.54 - esac 1.55 - done ; echo 100) | gtkdialog --center --program=BOX 1.56 -else 1.57 - gtkdialog --center --program=BOX 1.58 -fi 2> /dev/null | while read line; do 1.59 - case "$line" in 1.60 - *OUTPUT*) eval $line 1.61 - echo "$OUTPUT" 1>&2 ;; 1.62 - *CHECK*true*) line=${line%=*}; line=${line#CHECK} 1.63 - [ $line -eq 0 ] || shift $((3 * $line)) 1.64 - echo -n "\"$1\" " 1>&2;; 1.65 - *LIST=*) eval $line; set -- $LIST 1.66 - echo "$1" 1>&2 ;; 1.67 - *EXIT*abort*) echo 255;; 1.68 - *EXIT*) eval $line 1.69 - echo $EXIT ;; 1.70 - esac 1.71 -done) 1.72 -exit $status 1.73 +exit $(fake_dialog)