*** empty log message ***
[midnight-commander.git] / vfs / extfs / patchfs
blob99dbdd2923e1beecaac7b70e5b47962bd30889d8
1 #! /bin/sh
3 # Peter Daum <gator@cs.tu-berlin.de> (Jan 1998, mc-4.1.22)
5 # override any locale for dates. But LANG override LC_TIME (at least in glibc)
6 # unset LC_ALL
7 # LC_TIME=C
8 # export LC_TIME
9 LC_ALL=C
10 export LC_ALL
12 # paths to used programs:
13 ncat=cat # regular cat
14 zcat=zcat # gunzip to stdout
15 bzcat="bzip2 -dc" # bunzip2 to stdout
16 file=file # "file" command
17 sed=sed
19 filelist=FILELIST # names for "special" files
21 patchfs_list ()
23 date=`date +"%b %d %H:%M"`
24 perm="-r--r--r--"
25 uid=00000000
26 gid=00000000
27 size=00000000
28 nlink=" 1"
30 echo "$perm $nlink $uid $gid $size $date $filelist"
31 $cat $1 |
32 $sed -n "/^diff /{
33 s|^.* \([^ ]*\)$|$perm $nlink $uid $gid $size $date \1|gp
37 patchfs_copyout ()
39 if [ "$2" = "$filelist" ]; then # list of all affected files
40 $cat $1 |
41 $sed -n "/^diff /{
42 s|^.* \([^ ]*\)$|\1|gp
43 }" > $3
44 exit 0
47 fn=`echo $2|$sed 's|/|\\\/|g'` # escape '/' in filename
48 $cat $1 |
49 $sed -n "/^diff .*$fn/,/^diff /{
50 /^diff ./{
51 /$fn/p
55 }" > $3
58 patchfs_run ()
60 exit 0
63 type=`$file $2`
64 case $type in
65 *bzip*) cat=$bzcat ;;
66 *gzip*) cat=$zcat ;;
67 *text*) cat=$ncat ;;
68 *) exit 1
69 esac
71 umask 077
72 case "$1" in
73 list) patchfs_list $2; exit 0;;
74 copyout) patchfs_copyout $2 $3 $4; exit 0;;
75 run) patchfs_run; exit 0;;
76 esac
78 exit 1