The parsing script didn't set CARCH previously, and the flashplugin PKGBUILD
exited in this case.
First override the exit function to prevent the whole script to exit, and
add a --arch option to be able to set CARCH correctly.
To be used like this :
For core and extra :
./check_packages.py --abs-tree=/home/abs/rsync/i686 --repos=core,extra --arch=i686
./check_packages.py --abs-tree=/home/abs/rsync/x86_64 --repos=core,extra --arch=x86_64
For community :
./check_packages.py --abs-tree=/home/abs/rsync/i686 --repos=community --arch=i686
./check_packages.py --abs-tree=/home/abs/rsync/x86_64 --repos=community --arch=x86_64
Signed-off-by: Xavier Chantry
---
cron-jobs/check_archlinux/check_packages.py | 23 ++++++++++++++---------
cron-jobs/check_archlinux/parse_pkgbuilds.sh | 9 ++++++++-
2 files changed, 22 insertions(+), 10 deletions(-)
diff --git a/cron-jobs/check_archlinux/check_packages.py b/cron-jobs/check_archlinux/check_packages.py
index 69b14c3..f0fd4a5 100755
--- a/cron-jobs/check_archlinux/check_packages.py
+++ b/cron-jobs/check_archlinux/check_packages.py
@@ -49,11 +49,11 @@ class Depend:
self.version = version
self.mod = mod
-def parse_pkgbuilds(repos):
+def parse_pkgbuilds(repos,arch):
oldcwd = os.getcwd()
os.chdir(absroot)
for repo in repos:
- data = commands.getoutput(oldcwd + '/parse_pkgbuilds.sh ' + repo)
+ data = commands.getoutput(oldcwd + '/parse_pkgbuilds.sh ' + arch + ' ' + repo)
parse_data(repo,data)
os.chdir(oldcwd)
@@ -292,24 +292,27 @@ def print_usage():
print "Usage: ./check_packages.py [OPTION]"
print ""
print "Options:"
- print " --abs-tree=<path> Check specified tree (default : /var/abs)"
- print " --repos= Check specified repos (default : core,extra)"
+ print " --abs-tree=<path> Check the specified tree (default : /var/abs)"
+ print " --repos= Check the specified repos (default : core,extra)"
+ print " --arch= Check the specified arch (default : i686)"
print " -h, --help Show this help and exit"
print ""
print "Examples:"
print "\n Check core and extra in existing abs tree:"
- print " ./check_packages.py --abs-tree=/var/abs --repos=core,extra"
+ print " ./check_packages.py --abs-tree=/var/abs --repos=core,extra --arch=i686"
print "\n Check community:"
- print " ./check_packages.py --abs-tree=/var/abs --repos=community"
+ print " ./check_packages.py --abs-tree=/var/abs --repos=community --arch=i686"
print ""
## Default path to the abs root directory
absroot = "/var/abs"
## Default list of repos to check
repos = ['core', 'extra']
+## Default arch
+arch = "i686"
try:
- opts, args = getopt.getopt(sys.argv[1:], "", ["abs-tree=", "repos="])
+ opts, args = getopt.getopt(sys.argv[1:], "", ["abs-tree=", "repos=", "arch="])
except getopt.GetoptError:
print_usage()
sys.exit()
@@ -319,6 +322,8 @@ if opts != []:
absroot = a
elif o in ("--repos"):
repos = a.split(",")
+ elif o in ("--arch"):
+ arch = a
else:
print_usage()
sys.exit()
@@ -339,11 +344,11 @@ loadrepos = set([])
for repo in repos:
loadrepos = loadrepos | set(get_repo_hierarchy(repo))
-print_heading("Integrity Check")
+print_heading("Integrity Check " + arch + " of " + ",".join(repos))
print "\nPerforming integrity checks..."
print "==> parsing pkgbuilds"
-parse_pkgbuilds(loadrepos)
+parse_pkgbuilds(loadrepos,arch)
repopkgs = {}
for name,pkg in packages.iteritems():
diff --git a/cron-jobs/check_archlinux/parse_pkgbuilds.sh b/cron-jobs/check_archlinux/parse_pkgbuilds.sh
index d4205ae..47aec89 100755
--- a/cron-jobs/check_archlinux/parse_pkgbuilds.sh
+++ b/cron-jobs/check_archlinux/parse_pkgbuilds.sh
@@ -1,5 +1,10 @@
#!/bin/bash
+# Usage : parse_pkgbuilds.sh arch
+# Example : parse_pkgbuilds.sh i686 /var/abs/core /var/abs/extra
+
+exit() { return; }
+
parse() {
unset pkgname pkgver pkgrel
unset depends makedepends conflicts provides
@@ -67,10 +72,12 @@ find_pkgbuilds() {
fi
}
-if [ -z "$*" ]; then
+if [ -z "$1" -o -z "$2" ]; then
exit 1
fi
+CARCH=$1
+shift
for dir in "$@"; do
find_pkgbuilds $dir
done
--
1.6.1