wok annotate sokojs/stuff/shrink.sh @ rev 25515
Update qemu website
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Sun Feb 19 09:52:04 2023 +0000 (16 months ago) |
parents | 8db826af003e |
children |
rev | line source |
---|---|
pascal@24567 | 1 #!/bin/sh |
pascal@24567 | 2 |
pascal@24567 | 3 [ -z "$1" ] && echo "Usage: $0 level-files..." && exit 1 |
pascal@24567 | 4 case "$0" in |
pascal@24567 | 5 *unshrink*) |
pascal@24567 | 6 sed -i 's|.*//!||' $@ ;; |
pascal@24571 | 7 *) for file in $@ ; do |
pascal@24571 | 8 [ -s "$file" ] || continue |
pascal@25515 | 9 grep -q '//!' "$file" && continue |
pascal@24571 | 10 awk 'BEGIN { begin=9999; end=9999; tab=" " } |
pascal@24567 | 11 function scan(s) { |
pascal@24567 | 12 i=2 |
pascal@24567 | 13 for (b=0;;i++) { |
pascal@24567 | 14 c=substr(s,i,1) |
pascal@24567 | 15 if (c != " ") break |
pascal@24567 | 16 b++ |
pascal@24567 | 17 } |
pascal@24567 | 18 if (c != "\"") line[row++]=s |
pascal@24567 | 19 else if (row == 0) print "//!" s |
pascal@24567 | 20 else line2[cut++]=s |
pascal@24567 | 21 for (e=0;;i++) { |
pascal@24567 | 22 c=substr(s,i,1) |
pascal@24567 | 23 if (c == "\"") break |
pascal@24567 | 24 if (c == " ") e++; else e=0 |
pascal@24567 | 25 } |
pascal@24567 | 26 if (b < begin) begin=b |
pascal@24567 | 27 if (e < end && line[row-1]==s) end=e |
pascal@24567 | 28 col=i-2 |
pascal@24567 | 29 } |
pascal@24567 | 30 function flush() { |
pascal@24567 | 31 for (i=0;i<row;i++) { |
pascal@24569 | 32 l=length(line[i])-end-begin-3 |
pascal@24569 | 33 if (i == row-1) { tail="\"); //!" |
pascal@24569 | 34 if (end==0) l-- |
pascal@24569 | 35 } else tail="\", //!" |
pascal@24569 | 36 print "\"" tab substr(line[i],begin+2,l) tail line[i] |
pascal@24567 | 37 } |
pascal@24567 | 38 for (i=0;i<cut;i++) print "//!" line2[i] |
pascal@24567 | 39 } |
pascal@24567 | 40 { if (/^"/) { |
pascal@24567 | 41 scan($0); n++ |
pascal@24567 | 42 if (/");/) flush() |
pascal@24567 | 43 } |
pascal@24567 | 44 else if (/^Row/) print "Row=" row " //!" $0 |
pascal@24567 | 45 else if (/^Col/) print "Col=" col-begin-end+length(tab) " //!" $0 |
pascal@24568 | 46 else if (/\\"[0-9]*\\">",$/ && n != 0) { |
pascal@24567 | 47 s=$0; sub(/.*value=\\"/,"",s); sub(/\\">.*/,"",s) |
pascal@24567 | 48 l=length(line[0])-3; n-=cut+row; begin-=length(tab) |
pascal@24567 | 49 n=s - (l*n) - begin - ((begin+end)*(int(s/l)-n)) |
pascal@24567 | 50 print "document.write(\"<INPUT TYPE=\\\"button\\\" value=\\\"" n "\\\">\", //!" $0 |
pascal@24568 | 51 n=0 |
pascal@24567 | 52 } |
pascal@24570 | 53 else print }' < $file | sed 's|"")|")|' > $file.$$ |
pascal@24567 | 54 mv -f $file.$$ $file |
pascal@24567 | 55 done ;; |
pascal@24567 | 56 esac |