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 53 54 55 56
|
#!/bin/sh
# This is a parser for ARC archive files in Midnight Commander. You need
# the GPL nomarch program (version >= 1.3) written by Russell Marks.
# Author: Guus Jansman
# Alternative programs (not supported by this script):
# arc (Howard Chu)
# Settings:
UNARC="nomarch"
mcarcfs_list ()
{
$UNARC -lv "$1" | gawk -v uid=$(id -ru) '
BEGIN { date="JanFebMarAprMayJunJulAugSepOctNovDec" }
{
split(substr($0, 14), t)
str=substr($0, 1, 13)
while (length(str) != 0 && substr(str, length(str), 1) == " ")
{
str=substr(str, 1, length(str) - 1)
}
split(t[5], a, "-")
perm="-rw-r--r--"
printf "%s 1 %-8d %-8d %8d %3s %2d %4d %s %s\n", perm, uid, 0, t[4], substr(date, (a[2]-1)*3+1, 3), a[3], a[1], t[6], str
}'
}
mcarcfs_copyout ()
{
$UNARC -p "$1" "$2" > "$3" 2>/dev/null
}
mcarcfs_test ()
{
if $UNARC -t "$1" >/dev/null 2>&1; then
echo "OK"
else
echo "UNKNOWN"
fi
}
umask 077
cmd="$1"
shift
case "$cmd" in
list) mcarcfs_list "$@" ;;
copyout) mcarcfs_copyout "$@" ;;
# test) mcarcfs_test "$@" ;; # Not supported by MC extfs
*) exit 1 ;;
esac
exit 0
|