forked from kiss-community/kiss
6786d2ca0a
Seeing as how these utilities are now better integrated, more effort should go into the overall interface between what should be the "benchmark" or example kiss scripts.
32 lines
891 B
Bash
Executable File
32 lines
891 B
Bash
Executable File
#!/bin/sh -ef
|
|
# Turn an installed package into a KISS tarball.
|
|
|
|
# Ignore shellcheck as we want the warning's behavior.
|
|
# shellcheck disable=2015
|
|
[ "$1" ] && kiss l "${1:-null}" >/dev/null || {
|
|
printf 'usage: kiss-export [pkg]\n'
|
|
exit 1
|
|
}
|
|
|
|
# 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; 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 cf - -C / -- "$@" | case ${KISS_COMPRESS:-gz} in
|
|
bz2) bzip2 -z ;;
|
|
gz) gzip -6 ;;
|
|
xz) xz -zT 0 ;;
|
|
zst) zstd -z ;;
|
|
esac > "$pkg#$ver-$rel.tar.${KISS_COMPRESS:-gz}"
|
|
|
|
printf 'tarball created in %s\n' "$PWD/$pkg#$ver-$rel.tar.${KISS_COMPRESS:-gz}"
|