aboutsummaryrefslogtreecommitdiff
path: root/contrib/kiss-export
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/kiss-export')
-rwxr-xr-xcontrib/kiss-export17
1 files changed, 17 insertions, 0 deletions
diff --git a/contrib/kiss-export b/contrib/kiss-export
new file mode 100755
index 0000000..e8da80f
--- /dev/null
+++ b/contrib/kiss-export
@@ -0,0 +1,17 @@
+#!/bin/sh -ef
+#
+# kiss-export - Turn an installed package into a KISS tarball.
+
+read -r ver rel 2>/dev/null < "$KISS_ROOT/var/db/kiss/installed/$1/version" || {
+ printf '%s\n' "error: '$1' is not installed." >&2
+ exit 1
+}
+
+# This warning is safe to ignore as globs are disabled and
+# word splitting is intentional.
+# shellcheck disable=2046
+tar czvf "$1#$ver-$rel.tar.gz" -C / -- $(
+ while read -r file; do
+ [ -d "$KISS_ROOT/$file" ] || printf '%s\n' ".$file"
+ done < "$KISS_ROOT/var/db/kiss/installed/$1/manifest"
+)