aboutsummaryrefslogtreecommitdiff
path: root/contrib/kiss-export
diff options
context:
space:
mode:
authordylan.araps@gmail.com <dylan.araps@gmail.com>2020-02-25 20:56:40 +0000
committerdylan.araps@gmail.com <dylan.araps@gmail.com>2020-02-25 20:56:40 +0000
commit3d8badd82230be192b90b50d6550e5f5cea87487 (patch)
tree16b2d922e0a2c5d7c2e4897077601daded403b7b /contrib/kiss-export
parentdccd4404c4ab677480c0fe0aed0f1d3b82e4210b (diff)
downloadcpt-3d8badd82230be192b90b50d6550e5f5cea87487.tar.gz
contrib: clean up
FossilOrigin-Name: 2ea8ee144f0d0cdaaa8c95a7fedf53d7a3fc8e305ed99d51639a7f4450e475ed
Diffstat (limited to 'contrib/kiss-export')
-rwxr-xr-xcontrib/kiss-export30
1 files changed, 18 insertions, 12 deletions
diff --git a/contrib/kiss-export b/contrib/kiss-export
index e8da80f..dd5dedd 100755
--- a/contrib/kiss-export
+++ b/contrib/kiss-export
@@ -2,16 +2,22 @@
#
# 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
-}
+kiss l "${1:-null}" >/dev/null
-# 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"
-)
+# Grab the package's version..
+read -r ver rel 2>/dev/null < \
+ "$KISS_ROOT/var/db/kiss/installed/$1/version"
+
+# Reset the argument list.
+pkg=$1
+set --
+
+# Construct the argument list using each file.
+while read -r file || [ "$file" ]; do
+ [ -d "$KISS_ROOT/$file" ] || set -- "$@" ".$file"
+done < "$KISS_ROOT/var/db/kiss/installed/$pkg/manifest"
+
+# Turn the list of files back into a package.
+tar czf "$pkg#$ver-$rel.tar.gz" -C / -- "$@"
+
+printf 'tarball created in %s\n' "$PWD/$pkg#$ver-$rel.tar.gz"