blob: 22eae30fca5cb92d8ae21cf8d1eae69d6b3dc3b8 (
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
#! /bin/sh
#
# ACE Virtual filesystem executive v0.1
# Works with unace v2.5
# Note: There are two packages for Debian: 'unace' (v1.2b) and
# 'unace-nonfree' (v2.x). This script supports 'unace-nonfree' only.
# 'unace', which supports only old versions of ACE archives (and is
# therefore of little use), uses the pipe character to separate columns
# in its listing format.
# Copyright (C) 2008 Jacques Pelletier
# May be distributed under the terms of the GNU Public License
# <jpelletier@ieee.org>
#
# Define which archiver you are using with appropriate options
ACE_LIST=${MC_TEST_EXTFS_LIST_CMD:-"unace l"}
ACE_GET="unace x"
# ACE_PUT="unace ?" not available
# The 'list' command executive
# Unace: DD.MM.YY HH:MM packed size ratio file
# ls:
mc_ace_fs_list()
{
if [ "x$UID" = "x" ]; then
UID=`id -ru 2>/dev/null`
if [ "x$UID" = "x" ]; then
UID=0
fi
fi
$ACE_LIST "$1" | @AWK@ -v uid=$UID '
/%/ {
split($1,date,".")
if (date[3] > 50)
date[3]=date[3] + 1900
else
date[3]=date[3] + 2000
printf "-rw-r--r-- 1 %-8d %-8d %8d %02d-%02d-%04d %s %s\n", uid, 0, $4, date[2], date[1], date[3], $2, $6
}' 2>/dev/null
exit 0
}
# Command: copyout archivename storedfilename extractto
mc_ace_fs_copyout()
{
$ACE_GET "$1" "$2" > /dev/null 2>&1
mv "$2" "$3"
}
# The main routine
umask 077
cmd="$1"
shift
case "$cmd" in
list) mc_ace_fs_list "$@" ;;
copyout) mc_ace_fs_copyout "$@" ;;
*) exit 1 ;;
esac
exit 0
|