#!/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 pwd=$PWD
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"

cd "$KISS_ROOT/"

# Turn the list of files back into a package.
tar cf - "$@" | case ${KISS_COMPRESS:-gz} in
    bz2)  bzip2 -z ;;
    gz)   gzip -6  ;;
    lzma) lzma -z  ;;
    lz)   lzip -z  ;;
    xz)   xz -zT 0 ;;
    zst)  zstd -z  ;;
esac > "$pwd/$pkg#$ver-$rel.tar.${KISS_COMPRESS:-gz}"

printf 'tarball created in %s\n' "$pwd/$pkg#$ver-$rel.tar.${KISS_COMPRESS:-gz}"