2019-10-30 04:51:48 -06:00
|
|
|
#!/bin/sh -ef
|
2020-05-01 00:07:20 -06:00
|
|
|
# Turn an installed package into a KISS tarball
|
2019-10-30 04:51:48 -06:00
|
|
|
|
2020-09-04 11:31:30 -06:00
|
|
|
# Use the current directory as the package name if no package is given.
|
2020-08-30 14:28:01 -06:00
|
|
|
[ "$1" ] || {
|
|
|
|
set -- "${PWD##*/}"
|
|
|
|
}
|
|
|
|
|
2020-04-18 03:11:56 -06:00
|
|
|
# Ignore shellcheck as we want the warning's behavior.
|
|
|
|
# shellcheck disable=2015
|
2020-09-04 11:32:19 -06:00
|
|
|
kiss list "${1:-null}" >/dev/null || {
|
2020-04-18 03:11:56 -06:00
|
|
|
printf 'usage: kiss-export [pkg]\n'
|
|
|
|
exit 1
|
|
|
|
}
|
2019-10-30 04:51:48 -06:00
|
|
|
|
2020-02-25 13:56:41 -07:00
|
|
|
# Grab the package's version..
|
2020-04-18 03:11:56 -06:00
|
|
|
read -r ver rel 2>/dev/null < "$KISS_ROOT/var/db/kiss/installed/$1/version"
|
2020-02-25 13:56:41 -07:00
|
|
|
|
|
|
|
# Reset the argument list.
|
2020-05-15 00:58:16 -06:00
|
|
|
pkg=$1 pwd=$PWD
|
2020-02-25 13:56:41 -07:00
|
|
|
set --
|
|
|
|
|
|
|
|
# Construct the argument list using each file.
|
2020-03-11 12:04:07 -06:00
|
|
|
while read -r file; do
|
2020-02-25 13:56:41 -07:00
|
|
|
[ -d "$KISS_ROOT/$file" ] || set -- "$@" ".$file"
|
|
|
|
done < "$KISS_ROOT/var/db/kiss/installed/$pkg/manifest"
|
|
|
|
|
2020-05-15 00:58:16 -06:00
|
|
|
cd "$KISS_ROOT/"
|
|
|
|
|
2020-02-25 13:56:41 -07:00
|
|
|
# Turn the list of files back into a package.
|
2020-05-15 00:58:16 -06:00
|
|
|
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}"
|
2020-02-25 13:56:41 -07:00
|
|
|
|
2020-05-15 00:58:16 -06:00
|
|
|
printf 'tarball created in %s\n' "$pwd/$pkg#$ver-$rel.tar.${KISS_COMPRESS:-gz}"
|