#!/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

HA=ha # for HA 0.999 Copyright (c) 1995 Harri Hirvola
      # Source: ftp://ftp.ibiblio.org/pub/Linux/utils/compress/ha0999p-linux.tar.gz

mchafs_list ()
{
 eval $HA lf "$1" 2>/dev/null |@AWK@ -v uid=${UID-0} '
{ date="JanFebMarAprMayJunJulAugSepOctNovDec" }
/^===========/ {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 %3s %2d %4d %s:%s %s%s\n",\
   $1,1,0,0,filesize, substr(date,(a[2]-1)*3+1,3),a[3],a[1],t[1],t[2],\
   path,filename
  }
}'
}

mchafs_copyout ()
{
    TMPDIR="/tmp/mctmpdir-uha.$$"
    mkdir $TMPDIR || exit 1
    cd $TMPDIR

    eval $HA xy "$1" "$2" >/dev/null 2>&1
    mv -f "$2" "$3"

    cd /
    rm -rf $TMPDIR
}

cmd="$1"
shift

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