aboutsummaryrefslogtreecommitdiff
path: root/bin/convpatch
blob: 2ebbcd8e04d1261eddcdf07dcef92eb9fc74c085 (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
35
36
37
38
39
40
41
42
43
44
#!/bin/sh -f

# convpatch -- convert git diff -p output to pkgsrc patch

IFS='
'

{
	echo '$NetBSD$'
	echo

	# get patch description
	if [ x"$1" = x"-i" ]; then
		f=`mktemp -t ${0##*/}` || exit 1
		echo 'Edit patch description...' > $f
		</dev/tty >/dev/tty vi $f
		c=`cat $f`
		if [ x"$c" != x"Edit patch description..." ]; then
			printf '%s\n\n' "$c"
		fi
		rm $f
	fi

	sed '
		/^diff/d;
		/^index/d;
		s/^--- .*/&/;
	'
} |
while read -r line; do
	case "$line" in
	diff*)	;;
	index*)	;;
	'--- a/'*)
		file=${line#--- a/}
		echo -n "--- $file.orig	"
		file=$(git rev-parse --show-toplevel)/$file
		echo "$(stat -x "$file")" | sed -n 's/^Access: //p' ;;
	'+++ b/'*)
		echo "+++ ${line#+++ b/}" ;;
	*)
		echo "$line" ;;
	esac
done