summaryrefslogtreecommitdiff
path: root/cron-jobs/sourceballs2
diff options
context:
space:
mode:
Diffstat (limited to 'cron-jobs/sourceballs2')
-rwxr-xr-xcron-jobs/sourceballs262
1 files changed, 62 insertions, 0 deletions
diff --git a/cron-jobs/sourceballs2 b/cron-jobs/sourceballs2
new file mode 100755
index 0000000..e935f86
--- /dev/null
+++ b/cron-jobs/sourceballs2
@@ -0,0 +1,62 @@
+#!/bin/bash
+# Steps
+# Traverse ABSLibre
+# Makepkg --allsource every package
+# Remove the old sourceballs
+
+dirname="$(dirname "$(readlink -e "$0")")"
+. "${dirname}/../config"
+. "${dirname}/../db-functions"
+. "${MAKEPKGCONF}"
+
+pushd "${WORKDIR}" >/dev/null
+
+script_lock
+
+# Adjust the nice level to run at a lower priority
+renice +10 -p $$ > /dev/null
+
+# Create a list of all available source package file names
+find "${FTP_BASE}/${SRCPOOL}" -xtype f -name "*${SRCEXT}" -printf '%f\n' | sort -u > "${WORKDIR}/available-src-pkgs"
+
+pushd "${SVNREPO}" >/dev/null
+
+for repo in "${PKGREPOS[@]}"; do
+ msg "Sourceballing [%s]" "${repo}"
+
+ pushd "$repo" >/dev/null
+ find -maxdepth 1 -type d | while read pkg; do
+ pushd "${SVNREPO}/$repo/$pkg" >/dev/null
+
+ [[ ! -e ./PKGBUILD ]] && {
+ warning "%s is not a package" "$repo/$pkg"
+ continue
+ }
+
+ # Unset the previous data
+ unset pkgbase pkgname pkgver pkgrel
+ source PKGBUILD
+
+ unset build package url pkgdesc source md5sums depends makedepends \
+ optdepends license arch options check mksource
+
+ for _pkg in "${pkgname[@]}"; do
+ unset "package_${_pkg}" >/dev/null 2>&1
+ done
+
+ pkgbase=${pkgbase:-$pkgname}
+ srcfile="${pkgbase}-${pkgver}-${pkgrel}${SRCEXT}"
+
+ echo "${srcfile}" >> "${WORKDIR}/expected-src-pkgs"
+
+ # Skip already sourceballed
+ [ -e "${SRCPKGDEST}/${srcfile}" ] && continue
+
+ makepkg --allsource --ignorearch -c >/dev/null 2>&1
+
+ [ $? -ne 0 ] && plain '%s' "${srcfile}"
+
+ done # end find pkgs
+ popd >/dev/null
+
+done # end repos