commit: 474c437ce28b9d882aa4813dab289704b77a3b46
Author: Brian Dolbec gentoo org>
AuthorDate: Fri Dec 25 17:00:48 2015 +
Commit: Brian Dolbec gentoo org>
CommitDate: Fri Dec 25 17:00:48 2015 +
URL:https://gitweb.gentoo.org/proj/gentoo-keys.git/commit/?id=474c437c
gkeys-gpg: Make singing and other than verify actions work
gkeys/bin/gkeys-gpg | 8
gkeys/gkeysgpg/actions.py | 39 +++
gkeys/gkeysgpg/cli.py | 26 +-
3 files changed, 32 insertions(+), 41 deletions(-)
diff --git a/gkeys/bin/gkeys-gpg b/gkeys/bin/gkeys-gpg
index 3bed18f..f064b14 100755
--- a/gkeys/bin/gkeys-gpg
+++ b/gkeys/bin/gkeys-gpg
@@ -28,6 +28,14 @@ import os
import sys
+if '--verify' not in sys.argv:
+# we are not verifying now, just call out to the normal
+# gpg with args exactly as we were called with
+sys.argv[0] = '/usr/bin/gpg'
+os.execvp('/usr/bin/gpg', sys.argv)
+sys.exit(1)
+
+
# This block ensures that ^C interrupts are handled quietly.
try:
import signal
diff --git a/gkeys/gkeysgpg/actions.py b/gkeys/gkeysgpg/actions.py
index f83ce86..51f6a6a 100644
--- a/gkeys/gkeysgpg/actions.py
+++ b/gkeys/gkeysgpg/actions.py
@@ -12,6 +12,7 @@
from __future__ import print_function
+import re
import sys
if sys.version_info[0] >= 3:
@@ -26,7 +27,7 @@ from snakeoil.demandload import demandload
from gkeys.actions import Actions as gkeyActions
from gkeys.actionbase import ActionBase
-from gkeys.base import Args
+from pyGPG.gpg import GPG
demandload(
"json:load",
@@ -36,15 +37,6 @@ demandload(
Action_Map = OrderedDict([
-('sign', {
-'func': 'sign',
-'options': ['nick', 'name', 'fingerprint', ],
-'desc': '''Sign a file''',
-'long_desc': '''Sign a file with the designated gpg key.
-The default sign settings can be set in gpg.conf. These settings can be
-overridden on the command line using the 'nick', 'name', 'fingerprint'
options''',
-'example': '''gkeys-gpg --sign foo''',
-}),
('verify', {
'func': 'verify',
'options': [],
@@ -59,7 +51,7 @@ Action_Map = OrderedDict([
}),
])
-Available_Actions = ['sign', 'verify']
+Available_Actions = ['verify']
class Actions(ActionBase):
@@ -156,31 +148,6 @@ class Actions(ActionBase):
return (results.returncode, results)
-def sign(self, args, argv):
-'''Sign a file using gnupg's gpg command, replacing the current
process'''
-cmd = ['usr/bin/gpg']
-cmd.extend(argv)
-for stream in (sys.__stdout__, sys.__stderr__):
-stream.flush()
-
-try:
-pid = os.fork()
-if pid == 0:
-# A second fork is required in order to create an
-# "orphan" process that will be reaped by init.
-pid = os.fork()
-if pid == 0:
-os.setsid()
-os._exit(0)
-
-os.waitpid(pid, 0)
-os.execv(cmd[0], cmd)
-except Exception:
-traceback.print_exc()
-finally:
-os._exit(1)
-
-
def _committer_search(self, data):
username = None
nick = None
diff --git a/gkeys/gkeysgpg/cli.py b/gkeys/gkeysgpg/cli.py
index c5d08ec..cdc984c 100644
--- a/gkeys/gkeysgpg/cli.py
+++ b/gkeys/gkeysgpg/cli.py
@@ -45,7 +45,8 @@ class Main(CliBase):
'description': 'Gentoo-keys gpg command wrapper',
'epilog': '''CAUTION: adding UNTRUSTED keys can be HAZARDOUS to
your system!'''
}
-self.cli_config['Base_Options'].extend(["dash", "statusfd"])
+self.cli_config['Base_Options'].extend(["armor", "clearsign", "dash",
+"detachsign", "statusfd", "user"])
self.cli_config['Base_Options'].extend(KEY_OPTIONS)
self.cli_config['Base_Options'].extend(["category"])
self.version = __version__
@@ -101,23 +102,38 @@ class Main(CliBase):
help='fill me in')
@staticmethod
+def _option_armor(parser=None):
+parser.add_argument('-a', '--armor', dest='armor',
+action='store_true',
+help='Create ASCII armored output. The default is to create the
binary OpenPGP format.')
+
+@staticmethod
def _option_clearsign(parser=None):
-parser.add_argument('--clearsign', dest='clearsign', default=None,
+parser.add_argument('--clearsign', dest='clearsign',
+action='store_true', default=None,
help='make a clear text signature')
@staticmethod
def _option_detachsign(parser=None):
-parser.add_argument('-b', '--detach-sign', dest='detachsign',
default=None,
+parser.add_argument('-b', '--detach-sign', dest='detachsign',
+action='store_true', default=None,
help='make a detached signature')
@staticmethod
def _option_sign(parser=None):