aboutsummaryrefslogtreecommitdiff
path: root/batch/genPatchFromDirs.sh
blob: b27dd18b98ffc8993b70435a38e1ec2c9fee5ed3 (plain)
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
#!/bin/bash

if [ $# -ne 2 ]; then
	printf "usage: %s [ORIG-DIR] [MODF-DIR]\n" "$0"
	exit 1
fi

set -e

NAME="$(basename $0)"
ORIG="$(basename $1)"
MODF="$(basename $2)"
CHDIR="$(dirname $1)"
TMPFILE="$(mktemp)"

cd ${CHDIR}

ret=0
diff -Naur ${ORIG} ${MODF} >${TMPFILE} || ret=$?
if [ $ret -ne 1 ]; then
	printf "%s: %s\n" "${NAME}" "No diffs found."
	exit 1
fi

ret=0
command -v filterdiff >/dev/null 2>/dev/null || ret=$?
if [ $ret -eq 0 ]; then
	filterdiff --remove-timestamps ${TMPFILE} >${MODF}.patch
else
	printf "%s: %s\n" "${NAME}" "Command \`filterdiff\` not found. Can not remove timestamps from patch"
	mv ${TMPFILE} ${MODF}.patch
fi

printf "%s: %s\n" "${NAME}" "Generated ${CHDIR}/${MODF}.patch"