aboutsummaryrefslogtreecommitdiff
path: root/bin/psx
diff options
context:
space:
mode:
authorJohn Ankarström <john@ankarstrom.se>2021-07-26 19:32:37 +0200
committerJohn Ankarström <john@ankarstrom.se>2021-07-26 19:32:37 +0200
commit09c0720ee7f4d949f3f779bb26ccb60faad56cd5 (patch)
tree30fc911ffc70a78454002e969f31e9b95050b695 /bin/psx
parent4ad8ed80a6e8969fd8a2af4ef7e29929126aeaad (diff)
downloadpatches-09c0720ee7f4d949f3f779bb26ccb60faad56cd5.tar.gz
Move patch utilities to bin/
Diffstat (limited to 'bin/psx')
-rwxr-xr-xbin/psx26
1 files changed, 26 insertions, 0 deletions
diff --git a/bin/psx b/bin/psx
new file mode 100755
index 0000000..1066c5f
--- /dev/null
+++ b/bin/psx
@@ -0,0 +1,26 @@
+#!/bin/sh -e
+
+# psx -- fetch and extract pkgsrc archive
+
+case "$PWD" in
+/usr/pkgsrc/*/*) ;;
+*) echo "${0##*/}: not in package directory" 1>&2; exit 1 ;;
+esac
+
+make fetch
+f=/usr/pkgsrc/distfiles/$(sed -n '/.*(\(.*\)).*/{s//\1/;p;q}' distinfo)
+d=$(tar -tf "$f" | head -1)
+
+opt=
+if [ -e "$d" ]; then
+ printf "%s: $d already exists; overwrite? " "${0##*/}" 1>&2
+ read ans </dev/tty
+ case $ans in
+ y*) opt=-U ;;
+ *) exit 1 ;;
+ esac
+fi
+
+echo extracting archive... 1>&2
+tar -x $opt -f "$f" 1>&2
+echo "$d"