When listing out the contents of a variable, use loops and references
to the variables in order to reduce code and make it easier to extend.

In the future, a new metadata type can be added simply by appending to
meta_keys=()

Signed-off-by: Eli Schwartz <eschwa...@archlinux.org>
---
 parsepkgbuild.sh | 127 +++++------------------------------------------
 1 file changed, 12 insertions(+), 115 deletions(-)

diff --git a/parsepkgbuild.sh b/parsepkgbuild.sh
index d85574d..66cea40 100644
--- a/parsepkgbuild.sh
+++ b/parsepkgbuild.sh
@@ -18,123 +18,20 @@ fi
 if [ -n "$pkgdesc" ]; then
        echo -e "%DESC%\n$pkgdesc\n"
 fi
-if [ -n "$groups" ]; then
-       echo "%GROUPS%"
-       for i in ${groups[@]}; do echo $i; done
-       echo ""
-fi
-
-if [ -n "$url" ]; then
-       echo -e "%URL%\n$url\n"
-fi
-if [ -n "$license" ]; then
-       echo "%LICENSE%"
-       for i in ${license[@]}; do echo $i; done
-       echo ""
-fi
-if [ -n "$arch" ]; then
-       echo "%ARCH%"
-       for i in ${arch[@]}; do echo $i; done
-       echo ""
-fi
-if [ -n "$builddate" ]; then
-       echo -e "%BUILDDATE%\n$builddate\n"
-fi
-if [ -n "$packager" ]; then
-       echo -e "%PACKAGER%\n$packager\n"
-fi
-
-if [ -n "$replaces" ]; then
-       echo "%REPLACES%"
-       for i in "${replaces[@]}"; do echo $i; done
-       echo ""
-fi
-if [ -n "$force" ]; then
-       echo -e "%FORCE%\n"
-fi
 
-# create depends entry
-if [ -n "$depends" ]; then
-       echo "%DEPENDS%"
-       for i in "${depends[@]}"; do echo $i; done
-       echo ""
-fi
-if [ -n "$makedepends" ]; then
-       echo "%MAKEDEPENDS%"
-       for i in "${makedepends[@]}"; do echo $i; done
-       echo ""
-fi
-if [ -n "$optdepends" ]; then
-       echo "%OPTDEPENDS%"
-       for i in "${optdepends[@]}"; do echo $i; done
-       echo ""
-fi
-if [ -n "$conflicts" ]; then
-       echo "%CONFLICTS%"
-       for i in "${conflicts[@]}"; do echo $i; done
-       echo ""
-fi
-if [ -n "$provides" ]; then
-       echo "%PROVIDES%"
-       for i in "${provides[@]}"; do echo $i; done
-       echo ""
-fi
-if [ -n "$backup" ]; then
-       echo "%BACKUP%"
-       for i in "${backup[@]}"; do echo $i; done
-       echo ""
-fi
-if [ -n "$options" ]; then
-       echo "%OPTIONS%"
-       for i in "${options[@]}"; do echo $i; done
-       echo ""
-fi
-if [ -n "$source" ]; then
-       echo "%SOURCE%"
-       for i in "${source[@]}"; do echo $i; done
-       echo ""
-fi
-if [ -n "$validpgpkeys" ]; then
-       echo "%VALIDGPGKEYS%"
-       for i in "${validpgpkeys[@]}"; do echo $i; done
-       echo ""
-fi
-if [ -n "$md5sums" ]; then
-       echo "%MD5SUMS%"
-       for i in "${md5sums[@]}"; do echo $i; done
-       echo ""
-fi
-if [ -n "$sha1sums" ]; then
-       echo "%SHA1SUMS%"
-       for i in "${sha1sums[@]}"; do echo $i; done
-       echo ""
-fi
-if [ -n "$sha224sums" ]; then
-       echo "%SHA224SUMS%"
-       for i in "${sha224sums[@]}"; do echo $i; done
-       echo ""
-fi
-if [ -n "$sha256sums" ]; then
-       echo "%SHA256SUMS%"
-       for i in "${sha256sums[@]}"; do echo $i; done
-       echo ""
-fi
-if [ -n "$sha384sums" ]; then
-       echo "%SHA384SUMS%"
-       for i in "${sha384sums[@]}"; do echo $i; done
-       echo ""
-fi
-if [ -n "$sha512sums" ]; then
-       echo "%SHA512SUMS%"
-       for i in "${sha512sums[@]}"; do echo $i; done
-       echo ""
-fi
-
-if [ -n "$install" ]; then
-       echo -e "%INSTALL%\n$install\n"
-fi
+meta_keys=(groups url license arch builddate packager replaces force depends
+           makedepends optdepends conflicts provides backup options source
+                  validpgpkeys {md5,sha{1,224,256,384,512}}sums install)
+for key in "${meta_keys[@]}"; do
+       arr="$key[@]"
+       if [[ -n ${!key} ]]; then
+               echo "%${key^^}%"
+               for i in "${!arr}"; do echo "$i"; done
+               echo ""
+       fi
+done
 
-unset i
+unset arr key meta_keys i
 echo "%SETVARS%"
 compgen -A variable
 }
-- 
2.21.0

Reply via email to