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",
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...")
return True
return False
-
+dofail = 0
arch_caches={}
arch_xmatch_caches = {}
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:
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"):