summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnas Nashif <anas.nashif@intel.com>2012-11-09 15:22:49 -0800
committerAnas Nashif <anas.nashif@intel.com>2012-11-09 15:22:49 -0800
commitf462271004233eae59f3af3b38dd771ed1679734 (patch)
tree0048e606a9ca6294679d383c6935c1699ee39386
parentb47bb95b736f7e4f345f69193b66f6a17adc31bc (diff)
downloadkickstarter-f462271004233eae59f3af3b38dd771ed1679734.tar.gz
kickstarter-f462271004233eae59f3af3b38dd771ed1679734.tar.bz2
kickstarter-f462271004233eae59f3af3b38dd771ed1679734.zip
accept multiple repo arguments
-rw-r--r--demo/repos.yaml6
-rw-r--r--kswriter/KSWriter.py26
-rw-r--r--packaging/kickstarter.spec2
-rwxr-xr-xtools/kickstarter4
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,