Moved dir $(srcdir)/vfs into $(srcdir)/lib/vfs/mc-vfs
[pantumic.git] / lib / vfs / mc-vfs / extfs / ualz.in
blobd054553ff006fe60e069a6021abfa1b04c483b0d
1 #!/bin/sh
3 # Written by Pavel Roskin <proski@gnu.org>
4 # (C) 2005 The Free Software Foundation.
8 UNALZ=unalz
10 mcualz_list ()
12 $UNALZ -l "$1" | @AWK@ -v uid=`id -nu` -v gid=`id -ng` '
14 if ($1 ~ /[0-9][0-9][:/][0-9][0-9][:/][0-9][0-9]$/)
16 # Kludge for non-POSIX date format in unalz 0.50
17 split($1, date, "[/:]")
18 if (length(date[1]) == 4) {
19 pdate = date[2] "/" date[3] "/" date[1]
20 } else {
21 pdate = date[1] "/" date[2] "/" date[3]
24 time=$2
25 perm=$3
26 size=$4
27 sub(/^ *[^ ]* *[^ ]* *[^ ]* *[^ ]* *[^ ]* */, "")
28 file=$0
29 gsub(/\\/, "/", file)
30 if (perm ~ /.D../)
31 perm = "drwxr-xr-x"
32 else
33 perm = "-rw-r--r--"
34 printf "%s 1 %s %s %d %s %s %s\n", perm, uid, gid, size, pdate, time, file
40 mcualz_copyout ()
42 TMPDIR=`mktemp -d ${MC_TMPDIR:-/tmp}/mctmpdir-ualz.XXXXXX` || exit 1
44 # This is a workaround for a bug in unalz 0.50 - it crashes if the
45 # output directory is an absolute path.
46 dir=`dirname "$TMPDIR/$2"`
47 mkdir -p "$dir"
49 $UNALZ -d "$TMPDIR" "$1" "$2" >/dev/null
50 cat "$TMPDIR/$2" > "$3"
51 rm -rf "$TMPDIR"
54 # override any locale for dates
55 LC_ALL=C
56 export LC_ALL
57 umask 077
59 cmd="$1"
60 shift
62 case "$cmd" in
63 list) mcualz_list "$@" ;;
64 copyout) mcualz_copyout "$@" ;;
65 *) exit 1 ;;
66 esac
68 exit 0