New mode: manifest-check - Checks Manifests for missing or incorrect digests
authorZac Medico <zmedico@gentoo.org>
Mon, 17 May 2010 00:05:20 +0000 (17:05 -0700)
committerZac Medico <zmedico@gentoo.org>
Mon, 17 May 2010 00:05:20 +0000 (17:05 -0700)
bin/repoman
man/repoman.1

index 7a4eafb20aa71644af894e3d53217ac7e8bffc18..14d442dc7e216fc5f0794b7fe7642ed7ed982a6d 100755 (executable)
@@ -150,6 +150,7 @@ def ParseArgs(args, qahelp):
                'full' : 'Scan directory tree and print all issues (not a summary)',
                'help' : 'Show this screen',
                'manifest' : 'Generate a Manifest (fetches files if necessary)',
+               'manifest-check' : 'Check Manifests for missing or incorrect digests',
                'scan' : 'Scan directory tree for QA issues' 
        }
 
@@ -331,6 +332,7 @@ qahelp={
        "ebuild.majorsyn":"This ebuild has a major syntax error that may cause the ebuild to fail partially or fully",
        "ebuild.minorsyn":"This ebuild has a minor syntax error that contravenes gentoo coding style",
        "ebuild.badheader":"This ebuild has a malformed header",
+       "manifest.bad":"Manifest has missing or incorrect digests",
        "metadata.missing":"Missing metadata.xml files",
        "metadata.bad":"Bad metadata.xml files",
        "metadata.warning":"Warnings in metadata.xml files",
@@ -1000,6 +1002,14 @@ for x in scanlist:
                checkdir_relative = os.path.join(catdir, checkdir_relative)
        checkdir_relative = os.path.join(".", checkdir_relative)
 
+       if options.mode == 'manifest-check':
+               repoman_settings['O'] = checkdir
+               repoman_settings['PORTAGE_QUIET'] = '1'
+               if not portage.digestcheck([], repoman_settings, strict=1):
+                       stats["manifest.bad"] += 1
+                       fails["manifest.bad"].append(os.path.join(x, 'Manifest'))
+               continue
+
        if options.mode == "manifest" or \
          options.mode in ('commit', 'fix') and not options.pretend:
                auto_assumed = set()
index 9d8f299d429dad62cb6ae7c4ddb515fec87c9dcf..aec8b7adbcc1c5347440ca708c0c7e9b4d8f5dd0 100644 (file)
@@ -79,6 +79,9 @@ Fix simple QA issues (stray digests, missing digests)
 Generate a Manifest (fetches distfiles if necessary). See the \fB\-\-force\fR
 option if you would like to replace existing distfiles digests.
 .TP
+.B manifest-check
+Check Manifests for missing or incorrect digests
+.TP
 .B commit
 Scan directory tree for QA issues; if OK, commit via cvs
 .SH QA KEYWORDS
@@ -298,6 +301,9 @@ Ebuild inherits autotools but does not call eautomake, eautoconf or eautoreconf
 With virtual/jdk in DEPEND you must inherit a java eclass. Refer to
 \fIhttp://www.gentoo.org/proj/en/java/java\-devel.xml\fR for more information.
 .TP
+.B manifest.bad
+Manifest has missing or incorrect digests
+.TP
 .B metadata.bad
 Bad metadata.xml files
 .TP