accept multiple repo arguments
authorAnas Nashif <anas.nashif@intel.com>
Fri, 9 Nov 2012 23:22:49 +0000 (15:22 -0800)
committerAnas Nashif <anas.nashif@intel.com>
Fri, 9 Nov 2012 23:22:49 +0000 (15:22 -0800)
demo/repos.yaml
kswriter/KSWriter.py
packaging/kickstarter.spec
tools/kickstarter

index 38928c9..23feeea 100644 (file)
@@ -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
index 5e840ac..a48dde8 100644 (file)
@@ -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:
index 765501f..7552f5d 100644 (file)
@@ -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
index 861bdd4..4ba10cb 100755 (executable)
@@ -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,