aboutsummaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorJohn Ankarström <john@ankarstrom.se>2021-07-26 22:21:40 +0200
committerJohn Ankarström <john@ankarstrom.se>2021-07-26 22:22:04 +0200
commit763e138b3dc2c5b68aa7edf8d3e9e520380495d1 (patch)
tree50e2ec4f52404cf9e800b09404c6bcc25171f767 /bin
parent5d8522cf2e5c661fb9250fb261e36b00de5dbe42 (diff)
downloadpatches-763e138b3dc2c5b68aa7edf8d3e9e520380495d1.tar.gz
Add pkgdiffex script
Diffstat (limited to 'bin')
-rwxr-xr-xbin/pkgdiffex38
1 files changed, 38 insertions, 0 deletions
diff --git a/bin/pkgdiffex b/bin/pkgdiffex
new file mode 100755
index 0000000..d2fea2b
--- /dev/null
+++ b/bin/pkgdiffex
@@ -0,0 +1,38 @@
+#!/bin/sh
+
+# pkgdiffex -- diff files against existing patches
+
+if [ $# -eq 0 ]; then
+ echo "usage: ${0##*/} file [...]" 1>&2
+ exit 1
+fi
+
+i=0
+while [ $((++i)) -le $# ]; do
+ o=${1%.orig}.orig
+ if [ ! -f "$o" ]; then
+ echo "${0##*/}: file $o does not exist" 1>&2
+ exit 1
+ fi
+ shift
+ set -- "$@" "$o"
+done
+
+cmd=cat
+for o in "$@"; do
+ mv "${o%.orig}" "${o%.orig}".new # f -> f.new
+ cp "$o" "$o"inal # f.orig +> f.original
+ cp "$o" "${o%.orig}" # f.orig +> f
+done
+
+ls "$(whereispatch -i)"/patch-* | while read -r patch; do
+ pkgpatch <$patch
+done
+
+for o in "$@"; do
+ mv "${o%.orig}" "$o" # f -> f.orig
+ mv "${o%.orig}".new "${o%.orig}" # f.new -> f
+ pkgdiff "${o%.orig}" | $cmd
+ mv "$o"inal "$o" # f.original -> f.orig
+ cmd='sed -n 2,$p'
+done