From ee4f544d839722c92e83ff96f5c3c38749b3af8e Mon Sep 17 00:00:00 2001 From: Arfrever Frehtes Taifersar Arahesis Date: Sun, 3 Apr 2011 19:28:58 +0200 Subject: Support PORTAGE_GPG_SIGNING_COMMAND variable. --- bin/repoman | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) (limited to 'bin') diff --git a/bin/repoman b/bin/repoman index 8f363722d..946275319 100755 --- a/bin/repoman +++ b/bin/repoman @@ -2419,23 +2419,26 @@ else: # Setup the GPG commands def gpgsign(filename): - if "PORTAGE_GPG_KEY" not in repoman_settings: + if "PORTAGE_GPG_KEY" not in repoman_settings and "${PORTAGE_GPG_KEY}" in repoman_settings["PORTAGE_GPG_SIGNING_COMMAND"]: raise portage.exception.MissingParameter("PORTAGE_GPG_KEY is unset!") - if "PORTAGE_GPG_DIR" not in repoman_settings: + if "PORTAGE_GPG_DIR" not in repoman_settings and "${PORTAGE_GPG_DIR}" in repoman_settings["PORTAGE_GPG_SIGNING_COMMAND"]: repoman_settings["PORTAGE_GPG_DIR"] = os.path.expanduser("~/.gnupg") logging.info("Automatically setting PORTAGE_GPG_DIR to '%s'" % repoman_settings["PORTAGE_GPG_DIR"]) - repoman_settings["PORTAGE_GPG_DIR"] = os.path.expanduser(repoman_settings["PORTAGE_GPG_DIR"]) - if not os.access(repoman_settings["PORTAGE_GPG_DIR"], os.X_OK): - raise portage.exception.InvalidLocation( - "Unable to access directory: PORTAGE_GPG_DIR='%s'" % \ - repoman_settings["PORTAGE_GPG_DIR"]) - gpgcmd = "gpg --sign --clearsign --yes" - gpgcmd += " --default-key " + repoman_settings["PORTAGE_GPG_KEY"] - gpgcmd += " --homedir " + repoman_settings["PORTAGE_GPG_DIR"] + if "${PORTAGE_GPG_DIR}" in repoman_settings["PORTAGE_GPG_SIGNING_COMMAND"]: + repoman_settings["PORTAGE_GPG_DIR"] = os.path.expanduser(repoman_settings["PORTAGE_GPG_DIR"]) + if not os.access(repoman_settings["PORTAGE_GPG_DIR"], os.X_OK): + raise portage.exception.InvalidLocation( + "Unable to access directory: PORTAGE_GPG_DIR='%s'" % \ + repoman_settings["PORTAGE_GPG_DIR"]) + gpgvars = {"FILE": filename} + for var in ("PORTAGE_GPG_DIR", "PORTAGE_GPG_KEY"): + if "${%s}" % var in repoman_settings["PORTAGE_GPG_SIGNING_COMMAND"]: + gpgvars[var] = repoman_settings[var] + gpgcmd = portage.util.varexpand(repoman_settings["PORTAGE_GPG_SIGNING_COMMAND"], mydict=gpgvars) if options.pretend: - print("("+gpgcmd+" "+filename+")") + print("("+gpgcmd+")") else: - rValue = os.system(gpgcmd+" "+filename) + rValue = os.system(gpgcmd) if rValue == os.EX_OK: os.rename(filename+".asc", filename) else: -- cgit v1.2.3-1-g7c22