diff options
Diffstat (limited to 'src/vfs/extfs/helpers/uha.in')
-rw-r--r-- | src/vfs/extfs/helpers/uha.in | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/vfs/extfs/helpers/uha.in b/src/vfs/extfs/helpers/uha.in new file mode 100644 index 0000000..9dd0016 --- /dev/null +++ b/src/vfs/extfs/helpers/uha.in @@ -0,0 +1,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 |