From f462271004233eae59f3af3b38dd771ed1679734 Mon Sep 17 00:00:00 2001 From: Anas Nashif Date: Fri, 9 Nov 2012 15:22:49 -0800 Subject: [PATCH] accept multiple repo arguments --- demo/repos.yaml | 6 ------ kswriter/KSWriter.py | 26 +++++++++++++++++--------- packaging/kickstarter.spec | 2 +- tools/kickstarter | 4 +++- 4 files changed, 21 insertions(+), 17 deletions(-) diff --git a/demo/repos.yaml b/demo/repos.yaml index 38928c9..23feeea 100644 --- a/demo/repos.yaml +++ b/demo/repos.yaml @@ -1,12 +1,6 @@ Repositories: - - Name: core-testing - Url: http://download.meego.com/testing/core/repos/@ARCH@/packages - - Name: netbook-testing - Url: http://download.meego.com/testing/netbook/repos/@ARCH@/packages - Name: handset-testing Url: http://download.meego.com/testing/handset/repos/@ARCH@/packages - - Name: core - Url: http://repo.meego.com/MeeGo/builds/@RELEASE@/@BUILD_ID@/core/repos/@ARCH@/packages - Name: netbook Url: http://repo.meego.com/MeeGo/builds/@RELEASE@/@BUILD_ID@/netbook/repos/@ARCH@/packages - Name: handset diff --git a/kswriter/KSWriter.py b/kswriter/KSWriter.py index 5e840ac..a48dde8 100644 --- a/kswriter/KSWriter.py +++ b/kswriter/KSWriter.py @@ -22,15 +22,24 @@ class KSWriter(): self.dist = None self.arch = None self.image_filename = os.path.abspath(os.path.expanduser(configs)) - self.repo_filename = repos self.outdir = outdir self.packages = packages self.config = config self.image_stream = file(self.image_filename, 'r') - self.repo_stream = file(self.repo_filename, 'r') - self.extra = {} - self.repo_meta = yaml.load(self.repo_stream) self.image_meta = yaml.load(self.image_stream) + self.extra = {} + + self.repos = self.parse_repos(repos) + + def parse_repos(self, repos): + prepos = [] + for repo in repos: + repo_stream = file(repo, 'r') + repo_meta = yaml.load(repo_stream) + prepos = prepos + repo_meta['Repositories'] + + return prepos + def merge(*input): return list(reduce(set.union, input, set())) @@ -129,19 +138,18 @@ class KSWriter(): def generate(self): out = {} - repos = self.repo_meta['Repositories'] if self.image_meta.has_key('Configurations'): for img in self.image_meta['Configurations']: conf = self.parse(img) if self.config: if img.has_key('FileName') and self.config == img['FileName']: print "Creating %s (%s.ks)" %(img['Name'], img['FileName'] ) - self.process_files(conf, repos) + self.process_files(conf, self.repos) break else: if conf.has_key('Active') and conf['Active'] : print "Creating %s (%s.ks)" %(img['Name'], img['FileName'] ) - self.process_files(conf, repos) + self.process_files(conf, self.repos) else: print "%s is inactive, not generating %s at this time" %(img['Name'], img['FileName'] ) for path in self.image_meta['ExternalConfigs']: @@ -159,12 +167,12 @@ class KSWriter(): out['packages'] = conf['ExtraPackages'] else: print "Creating %s (%s.ks)" %(conf['Name'], conf['FileName'] ) - self.process_files(conf, repos) + self.process_files(conf, self.repos) break else: if conf.has_key('Active') and conf['Active']: print "Creating %s (%s.ks)" %(conf['Name'], conf['FileName'] ) - self.process_files(conf, repos) + self.process_files(conf, self.repos) else: print "%s is inactive, not generate %s this time" %(conf['Name'], conf['FileName'] ) else: diff --git a/packaging/kickstarter.spec b/packaging/kickstarter.spec index 765501f..7552f5d 100644 --- a/packaging/kickstarter.spec +++ b/packaging/kickstarter.spec @@ -1,7 +1,7 @@ %{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} Name: kickstarter Summary: Create kickstart files for image creation -Version: 0.15 +Version: 0.16 Release: 1 Group: System/Base License: GPLv2 diff --git a/tools/kickstarter b/tools/kickstarter index 861bdd4..4ba10cb 100755 --- a/tools/kickstarter +++ b/tools/kickstarter @@ -81,8 +81,10 @@ if __name__ == '__main__': help="configuration meta file") parser.add_option("-o", "--outdir", type="string", dest="outdir", default=".", help="outdir") - parser.add_option("-r", "--repos", type="string", dest="repofile", + parser.add_option("-r", "--repos", action="append", type="string", dest="repofile", help="repo meta file") + parser.add_option("-e", "--external", action="append", type="string", dest="external", + help="Additional external configuration files") parser.add_option("-i", "--index", type="string", dest="indexfile", help="generate index file") parser.add_option("-C", "--config", type="string", dest="config", default=None, -- 2.7.4