summaryrefslogtreecommitdiff
path: root/extra/coadde/cron-jobs/check_archlinux/parse_pkgbuilds.sh
diff options
context:
space:
mode:
Diffstat (limited to 'extra/coadde/cron-jobs/check_archlinux/parse_pkgbuilds.sh')
-rwxr-xr-xextra/coadde/cron-jobs/check_archlinux/parse_pkgbuilds.sh153
1 files changed, 0 insertions, 153 deletions
diff --git a/extra/coadde/cron-jobs/check_archlinux/parse_pkgbuilds.sh b/extra/coadde/cron-jobs/check_archlinux/parse_pkgbuilds.sh
deleted file mode 100755
index b857ac8..0000000
--- a/extra/coadde/cron-jobs/check_archlinux/parse_pkgbuilds.sh
+++ /dev/null
@@ -1,153 +0,0 @@
-#!/bin/bash
-
-# Usage : parse_pkgbuilds.sh arch <pkgbuilds_dir1,dir2,...>
-# Example : parse_pkgbuilds.sh i686 /var/abs/core /var/abs/extra
-
-exit() { return; }
-
-splitpkg_overrides=('depends' 'optdepends' 'provides' 'conflicts')
-variables=('pkgname' 'pkgbase' 'epoch' 'pkgver' 'pkgrel' 'makedepends' 'arch' "${splitpkg_overrides[@]}")
-readonly -a variables splitpkg_overrides
-
-backup_package_variables() {
- for var in "${splitpkg_overrides[@]}"; do
- indirect="${var}_backup"
- eval "${indirect}=(\"\${$var[@]}\")"
- done
-}
-
-restore_package_variables() {
- for var in "${splitpkg_overrides[@]}"; do
- indirect="${var}_backup"
- if [ -n "${!indirect}" ]; then
- eval "${var}=(\"\${$indirect[@]}\")"
- else
- unset "${var}"
- fi
- done
-}
-
-print_info() {
- echo -e "%NAME%\n$pkgname\n"
- if [ -n "$epoch" ]; then
- echo -e "%VERSION%\n$epoch:$pkgver-$pkgrel\n"
- else
- echo -e "%VERSION%\n$pkgver-$pkgrel\n"
- fi
- echo -e "%PATH%\n$dir\n"
-
- if [ -n "$pkgbase" ]; then
- echo -e "%BASE%\n$pkgbase\n"
- fi
-
- if [ -n "$arch" ]; then
- echo "%ARCH%"
- for i in "${arch[@]}"; do echo "$i"; done
- echo ""
- fi
- 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 "$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
-}
-
-source_pkgbuild() {
- ret=0
- dir=$1
- pkgbuild=$dir/PKGBUILD
- for var in "${variables[@]}"; do
- unset "${var}"
- done
- source "$pkgbuild" &>/dev/null || ret=$?
-
- # ensure $pkgname and $pkgver variables were found
- if [ $ret -ne 0 -o -z "$pkgname" -o -z "$pkgver" ]; then
- echo -e "%INVALID%\n$pkgbuild\n"
- return 1
- fi
-
- if [ "${#pkgname[@]}" -gt "1" ]; then
- pkgbase=${pkgbase:-${pkgname[0]}}
- for pkg in "${pkgname[@]}"; do
- if [ "$(type -t "package_${pkg}")" != "function" ]; then
- echo -e "%INVALID%\n$pkgbuild\n"
- return 1
- else
- backup_package_variables
- pkgname=$pkg
- while IFS= read -r line; do
- var=${line%%=*}
- var="${var#"${var%%[![:space:]]*}"}" # remove leading whitespace characters
- for realvar in "${variables[@]}"; do
- if [ "$var" == "$realvar" ]; then
- eval $line
- break
- fi
- done
- done < <(type "package_${pkg}")
- print_info
- restore_package_variables
- fi
- done
- else
- echo
- print_info
- fi
-
- return 0
-}
-
-find_pkgbuilds() {
- #Skip over some dirs
- local d="${1##*/}"
- if [ "$d" = "CVS" -o "$d" = ".svn" ]; then
- return
- fi
-
- if [ -f "$1/PKGBUILD" ]; then
- source_pkgbuild "$1"
- return
- fi
- empty=1
- for dir in "$1"/*; do
- if [ -d "$dir" ]; then
- find_pkgbuilds "$dir"
- unset empty
- fi
- done
- if [ -n "$empty" ]; then
- echo -e "%MISSING%\n$1\n"
- fi
-}
-
-if [ -z "$1" -o -z "$2" ]; then
- exit 1
-fi
-
-CARCH=$1
-shift
-for dir in "$@"; do
- find_pkgbuilds "$dir"
-done
-
-exit 0