Print this page
3166 feed generation needs performance improvement
3306 feed returns invalid last-modified header

@@ -28,10 +28,11 @@
 import os
 import sys
 import cherrypy
 
 import pkg.catalog as catalog
+import pkg.fmri as fmri
 import pkg.indexer as indexer
 import pkg.server.query_engine as query_e
 
 from pkg.misc import SERVER_DEFAULT_MEM_USE_KB
 from pkg.misc import emsg

@@ -258,5 +259,22 @@
                 if not self.query_engine:
                         self.query_engine = \
                             query_e.ServerQueryEngine(self.index_root)
                 query = query_e.Query(token, case_sensitive=False)
                 return self.query_engine.search(query)
+
+        @staticmethod
+        def read_catalog(catalog, dir, auth=None):
+                """Read the catalog file in "dir" and combine it with the
+                existing data in "catalog"."""
+
+                catf = file(os.path.join(dir, "catalog"))
+                for line in catf:
+                        if not line.startswith("V pkg") and \
+                            not line.startswith("C pkg"):
+                                continue
+
+                        f = fmri.PkgFmri(line[7:])
+                        ServerCatalog.cache_fmri(catalog, f, auth)
+
+                catf.close()
+