summaryrefslogtreecommitdiff
path: root/absurd/git
blob: b78ec3b6a71c7503e766917854cf82412347fb26 (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
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
#!/bin/sh
set -e

fail () {
	echo >&2 "DGIT ABSURD GIT APPLY - FAILED: $*"
	exit 127
}

self=${0%/*}
npath=${PATH#$self:}
if test "x$PATH" = "x$npath"; then
	fail "PATH FILTER FAIL ($0 $self $PATH)"
fi

bypass=true
for arg in "$@"; do
	case "$arg" in
	apply)	bypass=false; break	;;
	-*)				;;
	*)	bypass=true; break	;;
	esac
done

if $bypass; then
	PATH=$npath
	exec git "$@"
fi

echo >&2 "DGIT ABSURD GIT APPLY - NO BYPASS: $*"

#exec >/dev/tty 2>&1

index=0
noo=0

for arg in "$@"; do
	case "$noo.$arg" in
	1.--index)
		index=1
		continue
		;;
	?.-*)
		fail "UNKNOWN OPTION $arg ($*)"
		;;
	0.apply)
		;;
	1.*)	patch="$arg"
		;;
	*)
		fail "BAD USAGE $arg ($noo $*)"
	esac
	noo=$(( $noo + 1 ))
done

if [ $noo != 2 ]; then
	fail "NO PATCH ($*)"
fi

pwd=`pwd`
patch=${patch#$pwd/debian/patches/}
rm -f debian/patches/series
printf "%s\n" "$patch" >debian/patches/series

dpkg-source --before-build .

rm -rf .pc
git checkout debian/patches/series
git add -Af .

echo >&2 "DGIT ABSURD GIT APPLY - APPLIED $patch"
#printf 'APPLIED '; date --iso-8601=ns