aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xkiss30
1 files changed, 30 insertions, 0 deletions
diff --git a/kiss b/kiss
index 93ba4ed..11e1f4e 100755
--- a/kiss
+++ b/kiss
@@ -304,6 +304,35 @@ pkg_fixdeps() {
rm -f depends-copy
}
+pkg_junk() (
+ # Optionally remove "junk" files from packages. This includes 'info'
+ # files, 'man' pages, gettext files, etc. This is configurable by the
+ # user.
+ #
+ # This funcion runs as a sub-shell to avoid having to 'cd' back to the
+ # prior directory before being able to continue.
+ cd "$pkg_dir/$1"
+
+ # Default list of directories and their contents to be removed from
+ # built packages. This default assumes a prefix of '/usr' though the
+ # user can further configure it to search whatever paths they desire.
+ rm_default=usr/share/doc:usr/share/gtk-doc:usr/share/info:usr/share/polkit-1
+ rm_default=$rm_default:usr/share/gettext:usr/share/locale
+ rm_default=$rm_default:etc/bash_completion.d:usr/share/zsh
+
+ # Split the environment variable on ':' and turn it into an argument
+ # list. This works exactly like '$KISS_PATH'.
+ #
+ # shellcheck disable=2046,2086
+ { IFS=:; set -- ${KISS_RM-$rm_default}; IFS=$old_ifs; }
+
+ # Loop over each junk entry and delete it if it exists.
+ for junk; do
+ [ -e "./$junk" ] && rm -rf "./$junk" &&
+ log "${PWD##*/}" "Removed $junk"
+ done ||:
+)
+
pkg_manifest() (
# Generate the package's manifest file. This is a list of each file
# and directory inside the package. The file is used when uninstalling
@@ -467,6 +496,7 @@ pkg_build() {
pkg_strip "$pkg"
pkg_fixdeps "$pkg"
+ pkg_junk "$pkg"
pkg_manifest "$pkg"
pkg_tar "$pkg"