-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmake-diff.sh
More file actions
executable file
·79 lines (66 loc) · 1.78 KB
/
make-diff.sh
File metadata and controls
executable file
·79 lines (66 loc) · 1.78 KB
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
#!/bin/bash
set -e
source `dirname $0`/config.sh
CONTROL_DIR=$(dirname $(realpath $0))
cd $(dirname "${CONTROL_DIR}")
ORIG_PATH="m-clean"
chk_path() {
path="${1}"
if [ ! -r "${path}" ]; then
echo "ERROR: path ${path} does not exist"
exit 2
fi
}
gen_diff() {
filename="${1}"
filename_clear="${2}"
diffname="${3}"
if [[ "${filename}" == "server.properties" ]]; then
${CONTROL_DIR}/cmp-server-properties.py \
"${filename}" "${filename_clear}" | sort > "${diffname}"
else
if [[ -d "${filename}" ]]; then
from="${filename}/"
from=`echo "${from}" | sed -e 's/\//\\\\\//g'`
diff -r "${filename_clear}" "${filename}" \
| sed -e "s/${from}//g" > "${diffname}" ||:
else
diff "${filename_clear}" "${filename}" > "${diffname}" ||:
fi
fi
}
#
# To remove all *.orig files please use the following command:
# $ find . -name '*.orig' -exec rm -rf {} \;
#
cmp() {
filename="${1}"
if [[ ${filename:0:1} == "#" ]]; then
return
fi
filename_clear="../${ORIG_PATH}/${filename}"
chk_path "${filename}"
chk_path "${filename_clear}"
filename_orig="${filename_clear}.orig"
if [ -f "${filename_orig}" ]; then
if [[ ! -z `diff "${filename_clear}" "${filename_orig}"` ]]; then
filename_clear="${filename_orig}"
echo "WARNING: use original file from ${filename_clear}"
fi
fi
diffname=`echo "${filename}" | sed -e 's/\//-/g'`
diffname="diffs/${diffname}.diff"
if [[ ! -z `diff "${filename_clear}" "${filename}"` ]]; then
gen_diff "${filename}" "${filename_clear}" "${diffname}"
if [[ "${filename_clear}" != "${filename_orig}" ]]; then
cp -r "${filename_clear}" "${filename_orig}"
fi
else
rm -f "${diffname}"
fi
}
mkdir -p diffs
rm -f diffs/*.diff
for path in $(cat "${CONTROL_DIR}/diff-list.txt"); do
cmp "${path}"
done