summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-10-14 20:21:18 -0700
committerZac Medico <zmedico@gentoo.org>2011-10-14 20:21:18 -0700
commit1d170ec97f6c9db495ba9cbe9256623e1b946d86 (patch)
treee10c0e76f439b3710eca977302ceadbb5c5111e0
parent9c9145a9e3c2d8d1bcebf791ce2188add656fee2 (diff)
downloadportage-1d170ec97f6c9db495ba9cbe9256623e1b946d86.tar.gz
portage-1d170ec97f6c9db495ba9cbe9256623e1b946d86.tar.bz2
portage-1d170ec97f6c9db495ba9cbe9256623e1b946d86.zip
repoman: simplify digestgen and gpgsign loops
We can re-use the vcs_files_to_cps() function from commit 9c9145a9e3c2d8d1bcebf791ce2188add656fee2.
-rwxr-xr-xbin/repoman84
1 files changed, 11 insertions, 73 deletions
diff --git a/bin/repoman b/bin/repoman
index 4a157e536..ebe06f8ad 100755
--- a/bin/repoman
+++ b/bin/repoman
@@ -2648,87 +2648,25 @@ else:
portage.util.write_atomic(x, b''.join(mylines),
mode='wb')
+ if repolevel == 1:
+ print(green("RepoMan sez:"), "\"You're rather crazy... "
+ "doing the entire repository.\"\n")
+
if vcs in ('cvs', 'svn') and (myupdates or myremoved):
- myfiles = myupdates + myremoved
- for x in range(len(myfiles)-1, -1, -1):
- if myfiles[x].count("/") < 4-repolevel:
- del myfiles[x]
- mydone=[]
- if repolevel==3: # In a package dir
- repoman_settings["O"] = startdir
+
+ for x in sorted(vcs_files_to_cps(
+ chain(myupdates, myremoved, mymanifests))):
+ repoman_settings["O"] = os.path.join(repodir, x)
digestgen(mysettings=repoman_settings, myportdb=portdb)
- elif repolevel==2: # In a category dir
- for x in myfiles:
- xs=x.split("/")
- if len(xs) < 4-repolevel:
- continue
- if xs[0]==".":
- xs=xs[1:]
- if xs[0] in mydone:
- continue
- mydone.append(xs[0])
- repoman_settings["O"] = os.path.join(startdir, xs[0])
- if not os.path.isdir(repoman_settings["O"]):
- continue
- digestgen(mysettings=repoman_settings, myportdb=portdb)
- elif repolevel==1: # repo-cvsroot
- print(green("RepoMan sez:"), "\"You're rather crazy... doing the entire repository.\"\n")
- for x in myfiles:
- xs=x.split("/")
- if len(xs) < 4-repolevel:
- continue
- if xs[0]==".":
- xs=xs[1:]
- if "/".join(xs[:2]) in mydone:
- continue
- mydone.append("/".join(xs[:2]))
- repoman_settings["O"] = os.path.join(startdir, xs[0], xs[1])
- if not os.path.isdir(repoman_settings["O"]):
- continue
- digestgen(mysettings=repoman_settings, myportdb=portdb)
- else:
- print(red("I'm confused... I don't know where I am!"))
- sys.exit(1)
signed = False
if sign_manifests:
signed = True
- myfiles = myupdates + myremoved + mymanifests
try:
- if repolevel==3: # In a package dir
- repoman_settings["O"] = "."
+ for x in sorted(vcs_files_to_cps(
+ chain(myupdates, myremoved, mymanifests))):
+ repoman_settings["O"] = os.path.join(repodir, x)
gpgsign(os.path.join(repoman_settings["O"], "Manifest"))
- elif repolevel==2: # In a category dir
- mydone=[]
- for x in myfiles:
- xs=x.split("/")
- if len(xs) < 4-repolevel:
- continue
- if xs[0]==".":
- xs=xs[1:]
- if xs[0] in mydone:
- continue
- mydone.append(xs[0])
- repoman_settings["O"] = os.path.join(".", xs[0])
- if not os.path.isdir(repoman_settings["O"]):
- continue
- gpgsign(os.path.join(repoman_settings["O"], "Manifest"))
- elif repolevel==1: # repo-cvsroot
- print(green("RepoMan sez:"), "\"You're rather crazy... doing the entire repository.\"\n")
- mydone=[]
- for x in myfiles:
- xs=x.split("/")
- if len(xs) < 4-repolevel:
- continue
- if xs[0]==".":
- xs=xs[1:]
- if "/".join(xs[:2]) in mydone:
- continue
- mydone.append("/".join(xs[:2]))
- repoman_settings["O"] = os.path.join(".", xs[0], xs[1])
- if not os.path.isdir(repoman_settings["O"]):
- continue
- gpgsign(os.path.join(repoman_settings["O"], "Manifest"))
except portage.exception.PortageException as e:
portage.writemsg("!!! %s\n" % str(e))
portage.writemsg("!!! Disabled FEATURES='sign'\n")