3 # Written by andrey joukov
4 # (C) 1996 2:5020/337.13@fidonet.org
5 # Updated by christian.gennerat@alcatel.fr 1999
6 # Andrew V. Samoilov <sav@bcs.zp.ua> 2000
9 # rar and unrar can be found on http://www.rarlabs.com/
14 # Prefer unrar (freeware). Try to find unrar in $PATH.
15 save_IFS
="$IFS"; IFS
=:
18 test -z "$dir" && dir
=.
19 if test -x $dir/unrar
-a -f $dir/unrar
; then
27 $UNRAR v
-c- "$1" | @AWK@
-v uid
=${UID-0} '
28 BEGIN { flag=0; date="JanFebMarAprMayJunJulAugSepOctNovDec" }
29 /^-------/ { flag++; if (flag > 1) exit 0; next }
32 if ( !/ [0-9][0-9]:[0-9][0-9] /) str = $0 # there is no time spec in this line
41 if (index($6, "D") != 0)
44 if (index($6, ".") != 0)
46 printf "%s 1 %-8d %-8d %8d %3s %2d %4d %s %s\n", $6, uid, 0, $1, substr(date, (a[2]-1)*3+1, 3), a[1], a[3], $5, str
53 # copyin by christian.gennerat@alcatel.fr
54 # preserve pwd. It is clean, but is it necessary?
56 # Create a directory and copy in it the tmp file with the good name
60 # if file is to be written upper in the archive tree, make fake dir
61 if test "$di" != "${2##*/}" ; then
64 cp -fp "$3" "$3.dir/$2"
65 $RAR a
"$1" "$2" >/dev
/null
72 $UNRAR p
-c- -inul "$1" "$2" > "$3"
77 # preserve pwd. It is clean, but is it necessary?
79 # Create a directory and create in it a tmp directory with the good name
84 # rar cannot create an empty directory
86 $RAR a
-r "$1" "$2" >/dev
/null
87 $RAR d
"$1" "$2/.rarfs" >/dev
/null
94 $RAR d
"$1" "$2" >/dev
/null
103 list
) mcrarfs_list
"$@" |
sort +9 ;; # rar lists directories
104 # after files, so sort names
105 # to prevent duplication
106 rm) mcrarfs_rm
"$@" ;;
107 rmdir) mcrarfs_rm
"$@" ;;
108 mkdir
) mcrarfs_mkdir
"$@" ;;
109 copyin
) mcrarfs_copyin
"$@" ;;
110 copyout
) mcrarfs_copyout
"$@" ;;