it.po converted in UTF-8, changed some upper/lower convention in a more 'italian...
[midnight-commander.git] / vfs / extfs / urar.in
blob5ec61db95899ef2b59e63b1d86c723997a7c7098
1 #! /bin/sh
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
7 # beta version 2.0
9 # rar and unrar can be found on http://www.rarlabs.com/
11 RAR=rar
12 UNRAR=$RAR
14 # Prefer unrar (freeware). Try to find unrar in $PATH.
15 save_IFS="$IFS"; IFS=:
16 for dir in $PATH; do
17 IFS="$save_IFS"
18 test -z "$dir" && dir=.
19 if test -x $dir/unrar -a -f $dir/unrar; then
20 UNRAR=$dir/unrar
21 break
23 done
25 mcrarfs_list ()
27 $UNRAR v -c- "$1" | @AWK@ -v uid=${UID-0} '
28 BEGIN { flag=0; date="JanFebMarAprMayJunJulAugSepOctNovDec" }
29 /^-------/ { flag++; if (flag > 1) exit 0; next }
31 if (flag == 0) next
32 if ( !/ [0-9][0-9]:[0-9][0-9] /) str = $0 # there is no time spec in this line
33 else {
34 if (str ~ /^\^/)
35 str=substr(str, 2)
36 split($4, a, "-")
37 if (a[3] < 50)
38 a[3] = 2000 + a[3]
39 else
40 a[3] = 1900 + a[3]
41 if (index($6, "D") != 0)
42 $6="drwxr-xr-x"
43 else
44 if (index($6, ".") != 0)
45 $6="-rw-r--r--"
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
51 mcrarfs_copyin ()
53 # copyin by christian.gennerat@alcatel.fr
54 # preserve pwd. It is clean, but is it necessary?
55 pwd=`pwd`
56 # Create a directory and copy in it the tmp file with the good name
57 mkdir "$3.dir"
58 cd "$3.dir"
59 di="${2%/*}"
60 # if file is to be written upper in the archive tree, make fake dir
61 if test "$di" != "${2##*/}" ; then
62 mkdir -p "$di"
64 cp -fp "$3" "$3.dir/$2"
65 $RAR a "$1" "$2" >/dev/null
66 cd $pwd
67 rm -rf "$3.dir"
70 mcrarfs_copyout ()
72 $UNRAR p -c- -inul "$1" "$2" > "$3"
75 mcrarfs_mkdir ()
77 # preserve pwd. It is clean, but is it necessary?
78 pwd=`pwd`
79 # Create a directory and create in it a tmp directory with the good name
80 dir=tmpdir.${RANDOM}
81 mkdir $dir
82 cd $dir
83 mkdir -p "$2"
84 # rar cannot create an empty directory
85 touch "$2"/.rarfs
86 $RAR a -r "$1" "$2" >/dev/null
87 $RAR d "$1" "$2/.rarfs" >/dev/null
88 cd $pwd
89 rm -rf $dir
92 mcrarfs_rm ()
94 $RAR d "$1" "$2" >/dev/null
97 umask 077
99 cmd="$1"
100 shift
102 case "$cmd" in
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 "$@" ;;
111 *) exit 1 ;;
112 esac
113 exit 0