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