summaryrefslogtreecommitdiffstats
path: root/src/vfs/extfs/helpers/uha.in
diff options
context:
space:
mode:
Diffstat (limited to 'src/vfs/extfs/helpers/uha.in')
-rw-r--r--src/vfs/extfs/helpers/uha.in52
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