aboutsummaryrefslogtreecommitdiff
path: root/contrib/cpt-fork
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/cpt-fork')
-rwxr-xr-xcontrib/cpt-fork24
1 files changed, 24 insertions, 0 deletions
diff --git a/contrib/cpt-fork b/contrib/cpt-fork
new file mode 100755
index 0000000..bfaaa7d
--- /dev/null
+++ b/contrib/cpt-fork
@@ -0,0 +1,24 @@
+#!/bin/sh -ef
+# Fork a package to the current directory
+
+case "$1" in ''|--help|-h) printf '\033[1;33m-> \033[m%s\n' "usage: ${0##*/} [pkg]" ; exit 0 ; esac
+[ "$KISS_FORCE" ] || {
+ [ -d "$1" ] && {
+ printf '\033[1;31m!> \033[m%s\n' "$1 already exists on the current directory" \
+ "You can set KISS_FORCE=1 to ignore this."
+ exit 1
+ }
+}
+
+kiss s "$1" >/dev/null
+
+# Disable this warning as globbing is disabled and word splitting
+# is intentional. This grabs the location of the package's files.
+# shellcheck disable=2046
+(
+ set -- $(kiss s "$1")
+
+ cp -r "$1" .
+)
+
+printf 'forked package to %s\n' "$PWD/$1"