summaryrefslogtreecommitdiffstats
path: root/src/vfs/extfs/helpers/uha.in
blob: 9dd0016bc1a3102800797d8a48a88546c657f033 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#!/bin/sh
#
# It is the uhafs Valery Kornienkov vlk@st.simbirsk.su 2:5051/30@fidonet
# ver 0.1 Thu Apr  6 12:05:08 2000
#
# Tested with HA 0.999.  Source of ha can be found at
# ftp://ftp.ibiblio.org/pub/Linux/utils/compress/

HA=ha

mchafs_list ()
{
    $HA lf "$1" 2>/dev/null | @AWK@ -v uid=$(id -ru)  '
/^===========/ {next}
{
 if ($5="%" && $8~/DIR|ASC|HSC|CPY/) {
   split($6, a, "-")
   split($7, t, ":")
   filename=$1
   filesize=$2
   getline
   if ($2=="(none)") $2=""
   path=$2
   getline
   if ($1~/^d.*/) next
   printf "%s %s %-8d %-8d %8d %s-%s-%s %s:%s %s%s\n",\
   $1,1,0,0,filesize,a[3],a[2],a[1],t[1],t[2],path,filename
  }
}'
}

mchafs_copyout ()
{
    TMPDIR=`mktemp -d "${MC_TMPDIR:-/tmp}/mctmpdir-uha.XXXXXX"` || exit 1
    cd "$TMPDIR"

    $HA xyq "$1" "$2" >/dev/null
    cat "$2" > "$3"

    cd /
    rm -rf "$TMPDIR"
}

cmd="$1"
shift

case "$cmd" in
  list) mchafs_list "$@" ;;
  copyout) mchafs_copyout "$@" ;;
  *) exit 1 ;;
esac
exit 0