wok annotate lzma/stuff/lzma @ rev 15315
tilda: include glib.h only
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Fri Sep 27 16:51:47 2013 +0000 (2013-09-27) |
parents | 885c330a75ba |
children |
rev | line source |
---|---|
pascal@3854 | 1 #!/bin/sh |
pascal@3854 | 2 |
pascal@3854 | 3 case "$1" in |
pascal@3854 | 4 d|e|b) exec /usr/bin/lzma-alone $@;; |
pascal@9343 | 5 --size) size=$(od -t d8 -j5 -N8 < $2 | awk '{ print $2; exit }') |
pascal@9342 | 6 if [ $size -eq -1 ]; then |
pascal@9342 | 7 size=$(unlzma -c $2 | wc -c) |
pascal@9342 | 8 n=$size |
pascal@9342 | 9 for i in $(seq 1 8); do |
pascal@9342 | 10 printf '\\\\x%02X' $(($n & 255)) |
pascal@9342 | 11 n=$(($n >> 8)) |
pascal@9342 | 12 done | xargs echo -en | dd of=$2 conv=notrunc bs=1 seek=5 2> /dev/null |
pascal@9342 | 13 fi |
pascal@9342 | 14 echo $size |
pascal@9342 | 15 exit ;; |
pascal@5277 | 16 --version|-V|--help|-h|-\?) exec /usr/bin/lzma-alone;; |
pascal@3854 | 17 esac |
pascal@3854 | 18 |
pascal@3854 | 19 [ -x /usr/bin/lzmap ] && exec /usr/bin/lzmap $@ |
pascal@3854 | 20 |
pascal@3854 | 21 files="" |
pascal@3854 | 22 outfilter='' |
pascal@3854 | 23 suffix='lzma' |
pascal@3854 | 24 opts='-a1 -d23 -fb128 -mfbt4 -lc3 -lp0 -pb2' |
pascal@3854 | 25 command='e' |
pascal@3854 | 26 keep='' |
pascal@3854 | 27 |
pascal@7616 | 28 case "$0" in |
pascal@7616 | 29 *unlzma) command='d';; |
pascal@7616 | 30 *lzcat) command='d'; outfilter='s/.*/-so/'; keep='y';; |
pascal@7616 | 31 esac |
pascal@7616 | 32 |
pascal@3854 | 33 while [ -n "$1" ]; do |
pascal@3854 | 34 case "$1" in |
pascal@3854 | 35 -c|--stdout|--to-stdout) outfilter='s/.*/-so/'; keep='y';; |
pascal@3854 | 36 -S|--suffix) suffix="$2"; shift;; |
pascal@3854 | 37 -d|--decompress|--uncompress) command='d';; |
pascal@3854 | 38 -k|--keep) keep='y';; |
pascal@3854 | 39 -1|--fast) opts='-a0 -d16 -fb64 -mfhc4 -lc3 -lp0 -pb2';; |
pascal@3854 | 40 -2) opts='-a1 -d20 -fb64 -mfbt4 -lc3 -lp0 -pb2';; |
pascal@3854 | 41 -3) opts='-a1 -d19 -fb64 -mfbt4 -lc3 -lp0 -pb2';; |
pascal@3854 | 42 -4) opts='-a1 -d20 -fb128 -mfbt4 -lc3 -lp0 -pb2';; |
pascal@3854 | 43 -5) opts='-a1 -d21 -fb128 -mfbt4 -lc3 -lp0 -pb2';; |
pascal@3854 | 44 -6) opts='-a1 -d22 -fb128 -mfbt4 -lc3 -lp0 -pb2';; |
pascal@3854 | 45 -7) opts='-a1 -d23 -fb128 -mfbt4 -lc3 -lp0 -pb2';; |
pascal@3854 | 46 -8) opts='-a1 -d24 -fb255 -mfbt4 -lc3 -lp0 -pb2';; |
pascal@3854 | 47 -9|--best) opts='-a1 -d25 -fb255 -mfhc4 -lc3 -lp0 -pb2';; |
pascal@3854 | 48 -*);; |
pascal@3854 | 49 *) files="$files $1";; |
pascal@3854 | 50 esac |
pascal@3854 | 51 shift |
pascal@3854 | 52 done |
pascal@3854 | 53 [ -z "$outfilter" ] && if [ -n "$files" ]; then |
pascal@3854 | 54 if [ "$command" == "e" ]; then |
pascal@3854 | 55 outfilter="s/\$/.$suffix/" |
pascal@3854 | 56 else |
pascal@3854 | 57 outfilter="s/.$suffix\$//" |
pascal@3854 | 58 fi |
pascal@3854 | 59 else |
pascal@3854 | 60 files='-si'; outfilter='s/.*/-so/'; keep='y'; |
pascal@3854 | 61 fi |
pascal@3854 | 62 for i in $files ; do |
pascal@3854 | 63 /usr/bin/lzma-alone $command $i $(echo $i | sed $outfilter) $opts || exit $? |
pascal@3854 | 64 [ -n "$keep" ] || rm -f $i |
pascal@3854 | 65 done |