[Rpm-metadata] 2 commits - createrepo/__init__.py genpkgmetadata.py
skvidal at osuosl.org
skvidal at osuosl.org
Wed Feb 10 19:33:53 UTC 2010
createrepo/__init__.py | 26 ++++++++++++++++++++++----
genpkgmetadata.py | 3 ++-
2 files changed, 24 insertions(+), 5 deletions(-)
New commits:
commit 08c74e12b25d4dc6758afa4b8aa2779875a23bea
Merge: 566f6b3... 900caa2...
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Wed Feb 10 14:34:09 2010 -0500
Merge branch 'master' of ssh://createrepo.baseurl.org/srv/projects/createrepo/git/createrepo
* 'master' of ssh://createrepo.baseurl.org/srv/projects/createrepo/git/createrepo:
Make *Emacs unsuspicious about trailing whitespace.
Fix --exclude -> --excludes typo.
Add missing spaces in various help strings.
commit 566f6b3056901f2d20f37bac4292565fd055b60a
Author: Seth Vidal <skvidal at fedoraproject.org>
Date: Wed Feb 10 14:31:58 2010 -0500
add --read-pkgs-list option to output list of pkgs actually read.
completely optional and only really useful with --update or a --cachedir for what
pkgs DID get read/parsed.
diff --git a/createrepo/__init__.py b/createrepo/__init__.py
index 4ec2d51..0c0c7d8 100644
--- a/createrepo/__init__.py
+++ b/createrepo/__init__.py
@@ -100,7 +100,9 @@ class MetaDataConfig(object):
self.revision = str(int(time.time()))
self.content_tags = [] # flat list of strings (like web 2.0 tags)
self.distro_tags = []# [(cpeid(None allowed), human-readable-string)]
-
+ self.read_pkgs_list = None # filepath/name to write out list of pkgs
+ # read in this run of createrepo
+
class SimpleMDCallBack(object):
def errorlog(self, thing):
print >> sys.stderr, thing
@@ -130,6 +132,7 @@ class MetaDataGenerator:
self.current_pkg = 0
self.files = []
self.rpmlib_reqs = {}
+ self.read_pkgs = []
if not self.conf.directory and not self.conf.directories:
raise MDError, "No directory given on which to run."
@@ -368,7 +371,8 @@ class MetaDataGenerator:
self.closeMetadataDocs()
except (IOError, OSError), e:
raise MDError, _('Cannot access/write repodata files: %s') % e
-
+
+
def openMetadataDocs(self):
if self.conf.database_only:
self.setup_sqlite_dbs()
@@ -520,10 +524,12 @@ class MetaDataGenerator:
# we can use deltas:
if self.conf.deltas:
self._do_delta_rpm_package(po)
-
+ self.read_pkgs.append(pkg)
+
else:
po = pkg
-
+ self.read_pkgs.append(po.localpath)
+
if self.conf.database_only:
pass # disabled right now for sanity reasons (mine)
#po.do_sqlite_dump(self.md_sqlite)
@@ -1075,6 +1081,18 @@ class MetaDataGenerator:
% self.conf.olddir)
self.errorlog(_('Error was %s') % e)
self.errorlog(_('Please clean up this directory manually.'))
+
+ # write out the read_pkgs_list file with self.read_pkgs
+ if self.conf.read_pkgs_list:
+ try:
+ fo = open(self.conf.read_pkgs_list, 'w')
+ fo.write('\n'.join(self.read_pkgs))
+ fo.flush()
+ fo.close()
+ except (OSError, IOError), e:
+ self.errorlog(_('Could not write out readpkgs list: %s')
+ % self.conf.read_pkgs_list)
+ self.errorlog(_('Error was %s') % e)
def setup_sqlite_dbs(self, initdb=True):
"""sets up the sqlite dbs w/table schemas and db_infos"""
diff --git a/genpkgmetadata.py b/genpkgmetadata.py
index 9d755af..1be769e 100755
--- a/genpkgmetadata.py
+++ b/genpkgmetadata.py
@@ -110,7 +110,8 @@ def parse_args(args, conf):
action="append", help="paths to look for older pkgs to delta against")
parser.add_option("--num-deltas", default=1, dest='num_deltas', type='int',
help="the number of older versions to make deltas against")
-
+ parser.add_option("--read-pkgs-list", default=None, dest='read_pkgs_list',
+ help="output the paths to the pkgs actually read useful with --update")
(opts, argsleft) = parser.parse_args(args)
if len(argsleft) > 1 and not opts.split:
More information about the Rpm-metadata
mailing list