blob: 95f32c62a9359ad1e32d6f095d14467295130a66 (
plain) (
blame)
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
#!/bin/sh
# Read in library functions
if ! [ -r @LIB@/patchfns ]
then
echo "Cannot read library @LIB@/patchfns" >&2
exit 1
fi
. @LIB@/patchfns
usage()
{
echo "Usage: patchadd [-p patchname] filename ..."
if [ x$1 = x-h ]
then
cat <<EOF
Add one or more files to the topmost or named patch.
Files must be added to the patch before being modified.
Files that are modified by patches on top of the specified
patch cannot be added.
-p patchname
Patch to add files to.
EOF
exit 0
else
exit 1
fi
}
options=`getopt -o p:h -- "$@"`
if [ $? -ne 0 ]
then
usage
fi
eval set -- "$options"
while true
do
case "$1" in
-p)
opt_patch=$2
shift 2 ;;
-h)
usage -h ;;
--)
shift
break ;;
esac
done
if [ $# -lt 1 ]
then
usage
fi
patch=$(stripit $opt_patch)
if [ -z "$patch" ]
then
patch=$(top_patch)
fi
if [ -z "$patch" ]
then
echo "No patches seem to be applied"
fi
if ! is_applied $patch
then
echo "Patch $patch is not applied"
exit 1
fi
for file in $*
do
if file_in_patch $file $patch
then
echo "File $file is already in patch $patch"
else
next_patch=$(next_patch_for_file $patch $file)
if [ -n "$next_patch" ]
then
echo "File $file shadowed by patch $next_patch"
exit 1
fi
if install_file_in_patch $file $patch
then
echo "File $file added to patch $patch"
fi
fi
done
|