diff options
author | Zac Medico <zmedico@gentoo.org> | 2007-05-19 04:36:36 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2007-05-19 04:36:36 +0000 |
commit | 9386e474d578576f0b49b5c8e7f5dc047e0236c4 (patch) | |
tree | 4c46cddd2c00d377efb11e263f3d5eb6648a2354 | |
parent | a71e316d12be0ad5d28d193f4f9954194f8b6665 (diff) | |
download | portage-9386e474d578576f0b49b5c8e7f5dc047e0236c4.tar.gz portage-9386e474d578576f0b49b5c8e7f5dc047e0236c4.tar.bz2 portage-9386e474d578576f0b49b5c8e7f5dc047e0236c4.zip |
For bug #176539, add a "manifest" target to repoman so that there's a simple way to just generate a Manifest.
svn path=/main/trunk/; revision=6554
-rwxr-xr-x | bin/repoman | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/bin/repoman b/bin/repoman index e67817cff..b87180cc2 100755 --- a/bin/repoman +++ b/bin/repoman @@ -93,6 +93,7 @@ signal.signal(signal.SIGINT,exithandler) shortmodes={"ci":"commit"} modeshelp={ "scan" : "Scan directory tree for QA issues (default)", +"manifest" : "Generate a Manifest (fetches files if necessary)", "fix" : "Fix simple QA issues (stray digests, missing digests)", "full" : "Scan directory tree for QA issues (full listing)", "help" : "Show this screen", @@ -498,7 +499,9 @@ for x in range(0,repolevel-1): def caterror(mycat): err(mycat+" is not an official category. Skipping QA checks in this directory.\nPlease ensure that you add "+catdir+" to "+repodir+"/profiles/categories\nif it is a new category.") -if "--pretend" in myoptions: +if mymode == "manifest": + pass +elif "--pretend" in myoptions: print green("\nRepoMan does a once-over of the neighborhood...") elif quiet < 1: print green("\nRepoMan scours the neighborhood...") @@ -722,7 +725,7 @@ def x11_deprecation_check(depstr): return True return False - +dofail = 0 arch_caches={} arch_xmatch_caches = {} for x in scanlist: @@ -733,6 +736,14 @@ for x in scanlist: dadded=[] catdir,pkgdir=x.split("/") checkdir=repodir+"/"+x + + if mymode == "manifest": + repoman_settings["O"] = checkdir + if not portage.digestgen([], repoman_settings, myportdb=portdb): + print "Unable to generate manifest." + dofail = 1 + continue + checkdirlist=os.listdir(checkdir) ebuildlist=[] for y in checkdirlist: @@ -1387,6 +1398,9 @@ for x in scanlist: stats["ebuild.allmasked"]+=1 fails["ebuild.allmasked"].append(x) +if mymode == "manifest": + sys.exit(dofail) + #Pickle and save results for instant reuse in last and lfull if os.access(portage.const.CACHE_PATH, os.W_OK): for myobj, fname in (stats, "repo.stats"), (fails, "repo.fails"): |