summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan McRae <allan@archlinux.org>2015-02-01 22:09:39 +1000
committerAllan McRae <allan@archlinux.org>2015-02-12 14:00:57 +1000
commit00da25a5ea3413e128c455fd711cf46692df6159 (patch)
treeecde71a27ed78798dceb0d889d4f96b9eab73277
parentbfe9b56e1fe3a0c17fa535acf8d29bbe318c0b8a (diff)
downloadpacman-00da25a5ea3413e128c455fd711cf46692df6159.tar.xz
libmakepkg: make package tidy functions extendable
To add a new packaging option, drop a file into libmakepkg/tidy that contains a 'packaging_options+=('<option>') and a function that implements that option. The function needs added to the 'tidy_remove' array if it removes files or the 'tidy_modify' array otherwise. Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r--scripts/libmakepkg/tidy.sh.in27
-rw-r--r--scripts/libmakepkg/tidy/docs.sh.in2
-rw-r--r--scripts/libmakepkg/tidy/emptydirs.sh.in3
-rw-r--r--scripts/libmakepkg/tidy/libtool.sh.in3
-rw-r--r--scripts/libmakepkg/tidy/optipng.sh.in3
-rw-r--r--scripts/libmakepkg/tidy/purge.sh.in3
-rw-r--r--scripts/libmakepkg/tidy/staticlibs.sh.in3
-rw-r--r--scripts/libmakepkg/tidy/strip.sh.in3
-rw-r--r--scripts/libmakepkg/tidy/upx.sh.in3
-rw-r--r--scripts/libmakepkg/tidy/zipman.sh.in3
10 files changed, 38 insertions, 15 deletions
diff --git a/scripts/libmakepkg/tidy.sh.in b/scripts/libmakepkg/tidy.sh.in
index b8c2965c..1f439ba2 100644
--- a/scripts/libmakepkg/tidy.sh.in
+++ b/scripts/libmakepkg/tidy.sh.in
@@ -26,14 +26,14 @@ LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
source "$LIBRARY/util/message.sh"
+
+declare -a packaging_options tidy_remove tidy_modify
+
for lib in "$LIBRARY/tidy/"*.sh; do
source "$lib"
done
-
-packaging_options=('strip' 'docs' 'libtool' 'staticlibs' 'emptydirs' 'zipman'
- 'purge' 'upx' 'optipng' 'debug')
-readonly -a packaging_options
+readonly -a packaging_options tidy_remove tidy_modify
tidy_install() {
@@ -41,15 +41,12 @@ tidy_install() {
msg "$(gettext "Tidying install...")"
# options that remove unwanted files
- tidy_docs
- tidy_purge
- tidy_libtool
- tidy_staticlibs
- tidy_emptydirs
-
- # options that reduce file sizes
- tidy_zipman
- tidy_strip
- tidy_upx
- tidy_optipng
+ for func in ${tidy_remove[@]}; do
+ $func
+ done
+
+ # options that modify files
+ for func in ${tidy_modify[@]}; do
+ $func
+ done
}
diff --git a/scripts/libmakepkg/tidy/docs.sh.in b/scripts/libmakepkg/tidy/docs.sh.in
index 09b7234c..a9791302 100644
--- a/scripts/libmakepkg/tidy/docs.sh.in
+++ b/scripts/libmakepkg/tidy/docs.sh.in
@@ -26,6 +26,8 @@ LIBRARY=${LIBRARY:-'@libmakepkgdir@'}
source "$LIBRARY/util/message.sh"
source "$LIBRARY/util/option.sh"
+packaging_options+=('docs')
+tidy_remove+=('tidy_docs')
tidy_docs() {
if check_option "docs" "n" && [[ -n ${DOC_DIRS[*]} ]]; then
diff --git a/scripts/libmakepkg/tidy/emptydirs.sh.in b/scripts/libmakepkg/tidy/emptydirs.sh.in
index 8cdb4b09..c7103e9e 100644
--- a/scripts/libmakepkg/tidy/emptydirs.sh.in
+++ b/scripts/libmakepkg/tidy/emptydirs.sh.in
@@ -27,6 +27,9 @@ source "$LIBRARY/util/message.sh"
source "$LIBRARY/util/option.sh"
+packaging_options+=('emptydirs')
+tidy_remove+=('tidy_emptydirs')
+
tidy_emptydirs() {
if check_option "emptydirs" "n"; then
msg2 "$(gettext "Removing empty directories...")"
diff --git a/scripts/libmakepkg/tidy/libtool.sh.in b/scripts/libmakepkg/tidy/libtool.sh.in
index e1dafe6d..b9c62452 100644
--- a/scripts/libmakepkg/tidy/libtool.sh.in
+++ b/scripts/libmakepkg/tidy/libtool.sh.in
@@ -27,6 +27,9 @@ source "$LIBRARY/util/message.sh"
source "$LIBRARY/util/option.sh"
+packaging_options+=('libtool')
+tidy_remove+=('tidy_libtool')
+
tidy_libtool() {
if check_option "libtool" "n"; then
msg2 "$(gettext "Removing "%s" files...")" "libtool"
diff --git a/scripts/libmakepkg/tidy/optipng.sh.in b/scripts/libmakepkg/tidy/optipng.sh.in
index 1cd74f54..f739a823 100644
--- a/scripts/libmakepkg/tidy/optipng.sh.in
+++ b/scripts/libmakepkg/tidy/optipng.sh.in
@@ -27,6 +27,9 @@ source "$LIBRARY/util/message.sh"
source "$LIBRARY/util/option.sh"
+packaging_options+=('optipng')
+tidy_modify+=('tidy_optipng')
+
tidy_optipng() {
if check_option "optipng" "y"; then
msg2 "$(gettext "Optimizing PNG images...")"
diff --git a/scripts/libmakepkg/tidy/purge.sh.in b/scripts/libmakepkg/tidy/purge.sh.in
index dbc03813..948f001d 100644
--- a/scripts/libmakepkg/tidy/purge.sh.in
+++ b/scripts/libmakepkg/tidy/purge.sh.in
@@ -27,6 +27,9 @@ source "$LIBRARY/util/message.sh"
source "$LIBRARY/util/option.sh"
+packaging_options+=('purge')
+tidy_remove+=('tidy_purge')
+
tidy_purge() {
if check_option "purge" "y" && [[ -n ${PURGE_TARGETS[*]} ]]; then
msg2 "$(gettext "Purging unwanted files...")"
diff --git a/scripts/libmakepkg/tidy/staticlibs.sh.in b/scripts/libmakepkg/tidy/staticlibs.sh.in
index 7dbe8011..4849aba9 100644
--- a/scripts/libmakepkg/tidy/staticlibs.sh.in
+++ b/scripts/libmakepkg/tidy/staticlibs.sh.in
@@ -27,6 +27,9 @@ source "$LIBRARY/util/message.sh"
source "$LIBRARY/util/option.sh"
+packaging_options+=('staticlibs')
+tidy_remove+=('tidy_staticlibs')
+
tidy_staticlibs() {
if check_option "staticlibs" "n"; then
msg2 "$(gettext "Removing static library files...")"
diff --git a/scripts/libmakepkg/tidy/strip.sh.in b/scripts/libmakepkg/tidy/strip.sh.in
index 4fe334bd..15d92bee 100644
--- a/scripts/libmakepkg/tidy/strip.sh.in
+++ b/scripts/libmakepkg/tidy/strip.sh.in
@@ -27,6 +27,9 @@ source "$LIBRARY/util/message.sh"
source "$LIBRARY/util/option.sh"
+packaging_options+=('strip' 'debug')
+tidy_modify+=('tidy_strip')
+
tidy_strip() {
if check_option "strip" "y"; then
msg2 "$(gettext "Stripping unneeded symbols from binaries and libraries...")"
diff --git a/scripts/libmakepkg/tidy/upx.sh.in b/scripts/libmakepkg/tidy/upx.sh.in
index 9012cd3e..ec40b2e2 100644
--- a/scripts/libmakepkg/tidy/upx.sh.in
+++ b/scripts/libmakepkg/tidy/upx.sh.in
@@ -27,6 +27,9 @@ source "$LIBRARY/util/message.sh"
source "$LIBRARY/util/option.sh"
+packaging_options+=('upx')
+tidy_modify+=('tidy_upx')
+
tidy_upx() {
if check_option "upx" "y"; then
msg2 "$(gettext "Compressing binaries with %s...")" "UPX"
diff --git a/scripts/libmakepkg/tidy/zipman.sh.in b/scripts/libmakepkg/tidy/zipman.sh.in
index 8557789b..a08a60fa 100644
--- a/scripts/libmakepkg/tidy/zipman.sh.in
+++ b/scripts/libmakepkg/tidy/zipman.sh.in
@@ -27,6 +27,9 @@ source "$LIBRARY/util/message.sh"
source "$LIBRARY/util/option.sh"
+packaging_options+=('zipman')
+tidy_modify+=('tidy_zipman')
+
tidy_zipman() {
if check_option "zipman" "y" && [[ -n ${MAN_DIRS[*]} ]]; then
msg2 "$(gettext "Compressing man and info pages...")"