From bbbf1d91708fd4b350c2abe62958b71790464049 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sun, 9 Apr 2006 09:00:39 +0000 Subject: [PATCH] Encapsulate type guessing logic in a new Manifest method. svn path=/main/trunk/; revision=3106 --- pym/portage.py | 10 +--------- pym/portage_manifest.py | 13 +++++++++++++ 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/pym/portage.py b/pym/portage.py index dc8f2c0b7..5b2c278f4 100644 --- a/pym/portage.py +++ b/pym/portage.py @@ -2077,18 +2077,10 @@ def digestgen(myarchives,mysettings,db=None,overwrite=1,manifestonly=0): for f in myarchives: # the whole type evaluation is only for the case that myarchives isn't a # DIST file as create() determines the type on its own - mytype = mf.guessType(f) - if mytype == "AUX": - f = f[5:] - elif mytype is None: - continue - myrealtype = mf.findFile(f) - if myrealtype != None: - mytype = myrealtype writemsg(">>> Creating Manifest for %s\n" % mysettings["O"]) try: writemsg(">>> Adding digests for file %s\n" % f) - mf.updateFileHashes(mytype, f, checkExisting=False, reuseExisting=not os.path.exists(os.path.join(mysettings["DISTDIR"], f))) + mf.updateHashesGuessType(f, checkExisting=False, reuseExisting=not os.path.exists(os.path.join(mysettings["DISTDIR"], f))) except portage_exception.FileNotFound, e: writemsg("!!! File %s doesn't exist, can't update Manifest\n" % str(e)) return 0 diff --git a/pym/portage_manifest.py b/pym/portage_manifest.py index 8cfb43a82..073f7de56 100644 --- a/pym/portage_manifest.py +++ b/pym/portage_manifest.py @@ -389,6 +389,19 @@ class Manifest(object): for f in self._getCpvDistfiles(cpv): self.updateFileHashes("DIST", f, ignoreMissingFiles=ignoreMissingFiles) + def updateHashesGuessType(self, fname, *args, **kwargs): + """ Regenerate hashes for the given file (guesses the type and then + calls updateFileHashes).""" + mytype = self.guessType(fname) + if mytype == "AUX": + fname = fname[len("files" + os.sep):] + elif mytype is None: + return + myrealtype = self.findFile(fname) + if myrealtype is not None: + mytype = myrealtype + return self.updateFileHashes(mytype, fname, *args, **kwargs) + def getFileData(self, ftype, fname, key): """ Return the value of a specific (type,filename,key) triple, mainly useful to get the size for distfiles.""" -- 2.26.2