aboutsummaryrefslogtreecommitdiff
path: root/bin/savepatch
diff options
context:
space:
mode:
Diffstat (limited to 'bin/savepatch')
-rwxr-xr-xbin/savepatch36
1 files changed, 36 insertions, 0 deletions
diff --git a/bin/savepatch b/bin/savepatch
new file mode 100755
index 0000000..f4c2bd6
--- /dev/null
+++ b/bin/savepatch
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+# savepatch -- save patch on standard in to ~/patches
+
+root=/home/john/patches
+
+if [ -z "$1" ]; then
+ echo "usage: ${0##*/} patch-name" 1>&2
+ exit 1
+fi
+
+case "$PWD" in
+/usr/pkgsrc/*) dir=$(pwd | cut -d/ -f4,5) || dir= ;;
+/usr/*src/*) dir=${PWD#/usr/} ;;
+*) dir=
+esac
+
+if [ -z "$dir" ]; then
+ echo "${0##*/}: could not determine package" 1>&2
+ printf "package: " 1>&2
+ read dir </dev/tty
+fi
+
+mkdir -p "$root/$dir"
+
+if [ -e "$root/$dir/$1" ]; then
+ printf "%s: %s already exists; overwrite? " "${0##*/}" "$dir/$1" 1>&2
+ read ans </dev/tty
+ case $ans in
+ y*) ;;
+ *) exit 1 ;;
+ esac
+fi
+
+cat > "$root/$dir/$1"
+echo "$root/$dir/$1"