[arch-dev-public] [PATCH] check_packages : add --arch option.

Xavier Chantry shiningxc at gmail.com
Sat Jan 3 07:22:57 EST 2009


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 <shiningxc at gmail.com>
---
 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=<r1,r2,...>           Check specified repos (default : core,extra)"
+	print "  --abs-tree=<path>             Check the specified tree (default : /var/abs)"
+	print "  --repos=<r1,r2,...>           Check the specified repos (default : core,extra)"
+	print "  --arch=<i686|x86_64>          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 <pkgbuilds_dir1,dir2,...>
+# 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



More information about the arch-dev-public mailing list