From: Paul Nasrat Date: Wed, 19 Jul 2006 12:29:47 +0000 (+0000) Subject: Tolerate unknown files in repodata dirs - Ville Skyttä X-Git-Tag: upstream/0.9.9~240 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7443aed52801116fb81f45bd4297f08731376e32;p=tools%2Fcreaterepo.git Tolerate unknown files in repodata dirs - Ville Skyttä --- diff --git a/genpkgmetadata.py b/genpkgmetadata.py index d4e612d..c58d6b3 100755 --- a/genpkgmetadata.py +++ b/genpkgmetadata.py @@ -27,6 +27,7 @@ import rpm import libxml2 import string import fnmatch +import shutil import dumpMetadata from dumpMetadata import _gzipOpen @@ -552,6 +553,31 @@ def main(args): errorprint(_('Error was %s') % e) sys.exit(1) + # Move everything else back from olddir (eg. repoview files) + olddir = os.path.join(cmds['outputdir'], cmds['olddir']) + finaldir = os.path.join(cmds['outputdir'], cmds['finaldir']) + for file in os.listdir(olddir): + oldfile = os.path.join(olddir, file) + finalfile = os.path.join(finaldir, file) + if os.path.exists(finalfile): + # Hmph? Just leave it alone, then. + try: + if os.path.isdir(oldfile): + shutil.rmtree(oldfile) + else: + os.remove(oldfile) + except OSError, e: + errorprint(_('Could not remove old non-metadata file: %s') % oldfile) + errorprint(_('Error was %s') % e) + sys.exit(1) + else: + try: + os.rename(oldfile, finalfile) + except OSError, e: + errorprint(_('Could not restore old non-metadata file: %s -> %s') % (oldfile, finalfile)) + errorprint(_('Error was %s') % e) + sys.exit(1) + #XXX: fix to remove tree as we mung basedir try: os.rmdir(os.path.join(cmds['outputdir'], cmds['olddir']))