From b24e3493f47d372dd821efa211044567d696288d Mon Sep 17 00:00:00 2001 From: Michael Hanson Date: Tue, 11 Jan 2011 19:50:25 -0800 Subject: mp.py: Updated to deal with custom PKGBUILD variables --- build_tools/bin/mp.py | 54 +++++++++++++++++++++++++++------------------------ 1 file changed, 29 insertions(+), 25 deletions(-) diff --git a/build_tools/bin/mp.py b/build_tools/bin/mp.py index 068b089..5c20011 100755 --- a/build_tools/bin/mp.py +++ b/build_tools/bin/mp.py @@ -16,6 +16,7 @@ PKGHOME = "/data/pkg_repo/packages" SRCPKGHOME = "/data/pkg_repo/src_packages" mydir = os.getcwd() repolist = ['core', 'extra'] +variables = ['pkgbase','pkgname','pkgver','pkgrel','arch'] cli_dict = {} cli_list = [] makepkg_cmd = ['makepkg'] @@ -212,10 +213,10 @@ def find_repo(): def update_repo(): # pkgname could be a list of several pkgs. Since bash array format is # loose, let bash parse the pkgname(s) first, then return a list for us. - b = subprocess.Popen(['/bin/bash','-c', 'source ' + pkgfile + '; echo ${pkgname[@]}'], stdout = subprocess.PIPE,) - output = b.communicate()[0].strip('\n') - print "Pkglist:",output - pkglist = list(output.split()) + #b = subprocess.Popen(['/bin/bash','-c', 'source ' + pkgfile + '; echo ${pkgname[@]}'], stdout = subprocess.PIPE,) + #output = b.communicate()[0].strip('\n') + #print "Pkglist:",output + #pkglist = list(output.split()) os.chdir(DOCROOT) print @@ -305,8 +306,10 @@ def config_file(): global pkgfile global pkgbase global pkgname + global pkglist global pkgver global pkgrel + global arch global SRCPKG global CARCH global PKGDEST @@ -323,27 +326,28 @@ def config_file(): print "ERROR in function config_file: Can't find ",pkgfile,"!" sys.exit(2) else: - f=open(pkgfile,"r") - # Read file contents to memory - pkgbuild_contents=f.readlines() - f.close() - - # Loop over contents to get our variables - for line in pkgbuild_contents: - if line.strip().startswith("pkgbase"): - pkgbase = line.partition("=")[2].strip('\n') - print "Package Base Name:",pkgbase - if line.strip().startswith("pkgname"): - pkgname = line.partition("=")[2].strip('\n') - print "Package Name:",pkgname - if line.strip().startswith("pkgver"): - pkgver = line.partition("=")[2].strip('\n') - print "Package Version:",pkgver - if line.strip().startswith("pkgrel"): - pkgrel = line.partition("=")[2].strip('\n') - print "Package Release:",pkgrel - if line.strip().startswith("arch"): - arch = line.partition("=")[2].strip('\n') + # Loop over contents to get our variables + # Use bash to do it because PKGBUILDs are very loose with their format + for item in variables: + v = subprocess.Popen(['/bin/bash','-c', 'source ' + pkgfile + '; echo ${' + item + '[@]}'], stdout = subprocess.PIPE,) + value = v.communicate()[0].strip('\n') + if item == "pkgbase": + pkgbase = value + print "pkgbase:",pkgbase + if item == "pkgname": + pkgname = value + print "pkgname:",pkgname + pkglist = list(value.split()) + print "pkglist:",pkglist + if item == "pkgver": + pkgver = value + print "pkgver:",pkgver + if item == "pkgrel": + pkgrel = value + print "pkgrel:",pkgrel + if item == "arch": + arch = value + print "arch:",arch if pkgbase: SRCPKG = pkgbase + "-" + pkgver + "-" + pkgrel + ".src.tar.gz" -- cgit v0.12