Whamcloud - gitweb
- bring in akpm's patch management scripts and a first cut at
[fs/lustre-release.git] / lustre / kernel_patches / scripts / rpatch
1 #!/bin/sh
2
3 . patchfns >/dev/null || . /usr/lib/patch-scripts/patchfns >/dev/null || { \
4         echo "Impossible to find my library 'patchfns'."
5         echo "Check your install, or go to the right directory"
6         exit 1
7 }
8
9 do_remove()
10 {
11         if patch -R -p1 -s -i $P/patches/"$1".patch
12         then
13                 true
14         else
15                 echo SOMETHING WENT WRONG
16                 exit 1
17         fi
18 }
19
20 kill_old_ones()
21 {
22         FILES=$(cat $P/pc/$1.pc)
23         for file in $FILES
24         do
25                 rm -f "$file"~"$1"
26         done
27 }
28
29 usage()
30 {
31         echo "Usage: rpatch patchname"
32         exit 1
33 }
34
35 if [ $# == 0 ]
36 then
37         usage
38 fi
39
40 PATCH_NAME=$(stripit $1)
41
42 warn_top_current
43
44 if is_applied "$PATCH_NAME"
45 then
46         if can_remove "$PATCH_NAME"
47         then
48                 do_remove "$PATCH_NAME"
49                 kill_old_ones "$PATCH_NAME"
50                 remove_from_db "$PATCH_NAME"
51         else
52                 echo "$PATCH_NAME" does not remove cleanly
53                 exit 1
54         fi
55 else
56         echo "$PATCH_NAME" is not applied
57         exit 1
58 fi
59
60 top=$(top_patch)
61 if [ x"$top" == x ]
62 then
63         msg="no patches applied"
64 else
65         msg="now at $top"
66 fi
67
68 echo Removed $PATCH_NAME, $msg
69