diff options
author | Luke Shumaker <LukeShu@sbcglobal.net> | 2014-06-17 19:24:48 -0400 |
---|---|---|
committer | Luke Shumaker <LukeShu@sbcglobal.net> | 2014-06-17 19:24:48 -0400 |
commit | 827e305df0f565d7da844684290323a75bf081a6 (patch) | |
tree | 9753469d58a11b434d8da109c00a23c0e721a52d /repo-restore-to-normal | |
parent | d42f5c6ab02a861ef548ae12fe403f61e2b02e4f (diff) | |
parent | 1d5db10302f0a0517c022fae4b6a66862eb7e2cf (diff) |
Merge branch 'lukeshu/archlinux+xbs+merge-parabola' into lukeshu/archlinux+xbs+db-import
Diffstat (limited to 'repo-restore-to-normal')
-rwxr-xr-x | repo-restore-to-normal | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/repo-restore-to-normal b/repo-restore-to-normal new file mode 100755 index 0000000..063aacf --- /dev/null +++ b/repo-restore-to-normal @@ -0,0 +1,58 @@ +#!/bin/bash +# Solves issue165 + +. "$(dirname "$(readlink -e "$0")")/config" +. "$(dirname "$(readlink -e "$0")")/db-functions" + +CLEANUP_DESTDIR=/home/parabolavnx/repo/pool/restore +PKGREPOS=(community) + +# Find all pkgnames on old with pkgver-pkgrels +#on_repo=($(find ${CLEANUP_DESTDIR} -name "*.pkg.tar.?z" -printf "%f\n" | \ +# sed "s/^\(.\+-[^-]\+-[^-]\+\)-[^-]\+$/\1/")) + +# Traverse all repos +for _repo in "${PKGREPOS[@]}"; do + msg "Restoring [${_repo}]" + +# Find all pkgnames on this repo's abs + on_abs=($( + find ${SVNREPO}/${_repo} -name PKGBUILD | \ + while read pkgbuild; do + unset pkgname pkgver pkgrel + source ${pkgbuild} >/dev/null 2>&1 +# cleanup to save memory + unset build package source md5sums pkgdesc epoch \ + url license arch depends makedepends optdepends options \ + >/dev/null 2>&1 + +# also cleanup package functions + for _pkg in "${pkgname[@]}"; do + unset package_${pkg} >/dev/null 2>&1 +# this fills the on_abs array + echo ${_pkg}-${pkgver}-${pkgrel} + done + + done + )) + +# quit if abs is empty + if [ ${#on_abs[*]} -eq 0 ]; then + warning "[${_repo}]'s ABS tree is empty, skipping" + continue + fi + +# Compares them, whatever is on abs should be restored +# restore=($(comm -12 <(echo ${on_abs[@]} | tr ' ' "\n" | sort -u) \ +# <(echo ${on_repo[@]} | tr ' ' "\n" | sort -u))) + + msg2 "Restoring the following packages:" +# plain "$(echo ${restore[@]} | tr ' ' "\n")" + + for _pkg in "${on_abs[@]}"; do + find ${CLEANUP_DESTDIR} -name "${_pkg}*" -exec cp -v '{}' ${STAGING}/${_repo} \; + done + +done + +exit $? |