commit: 4a7e7e54a6b6ce280a221a0b039bebafd9d49701
Author: Brian Dolbec <dolsen <AT> gentoo <DOT> org>
AuthorDate: Sat Dec 27 21:51:17 2014 +0000
Commit: Brian Dolbec <dolsen <AT> gentoo <DOT> org>
CommitDate: Tue Dec 30 21:42:26 2014 +0000
URL:
http://sources.gentoo.org/gitweb/?p=proj/gentoo-keys.git;a=commit;h=4a7e7e54
gkeys: Add keys and uid options to actions and seed handling
Add code to auto-update existing installed gkey.seeds files with the additional
data.
---
gkeys/gkeys/actions.py | 32 ++++++++++++++++----------------
gkeys/gkeys/base.py | 11 +++++++++++
gkeys/gkeys/seed.py | 6 ++++++
gkeys/gkeys/seedhandler.py | 5 +++++
4 files changed, 38 insertions(+), 16 deletions(-)
diff --git a/gkeys/gkeys/actions.py b/gkeys/gkeys/actions.py
index 9baecaa..4a4f0eb 100644
--- a/gkeys/gkeys/actions.py
+++ b/gkeys/gkeys/actions.py
@@ -44,24 +44,24 @@ Available_Actions = General_Actions + Key_Actions +
Seed_Actions
Action_Options = {
'list-cats': [],
- 'list-seed': ['nick', 'name', 'keydir', 'fingerprint', 'category',
'1file'],
- 'add-seed': ['nick', 'name', 'keydir', 'fingerprint', 'category'],
- 'remove-seed': ['nick', 'name', 'keydir', 'fingerprint', 'category'],
- 'move-seed': ['nick', 'name', 'keydir', 'fingerprint', 'category', 'dest'],
- 'fetch-seed': ['nick', 'name', 'keydir', 'fingerprint', 'category',
'keyring'],
+ 'list-seed': ['nick', 'name', 'keydir', 'keys', 'fingerprint', 'category',
'1file'],
+ 'add-seed': ['nick', 'name', 'keydir', 'keys', 'fingerprint', 'category',
'uid'],
+ 'remove-seed': ['nick', 'name', 'keydir', 'keys', 'fingerprint',
'category'],
+ 'move-seed': ['nick', 'name', 'keydir', 'keys', 'fingerprint', 'category',
'dest'],
+ 'fetch-seed': ['nick', 'name', 'keydir', 'keys', 'fingerprint',
'category', 'keyring'],
'list-seedfiles': [],
- 'list-key': ['nick', 'name', 'keydir', 'fingerprint', 'category',
'keyring', 'gpgsearch', 'keyid'],
- 'install-key': ['nick', 'name', 'keydir', 'fingerprint', 'category',
'keyring', '1file'],
- 'remove-key': ['nick', 'name', 'keydir', 'fingerprint', 'category',
'keyring'],
- 'move-key': ['nick', 'name', 'keydir', 'fingerprint', 'category',
'keyring', 'dest'],
- 'installed': ['nick', 'name', 'keydir', 'fingerprint', 'category',
'keyring'],
- 'import-key': ['nick', 'name', 'keydir', 'fingerprint', 'category',
'keyring'],
- 'key-search': ['nick', '1name', 'keydir', 'fingerprint', 'keyid',
'category', 'exact', 'all'],
- 'verify': ['dest', 'nick', 'name', 'keydir', 'fingerprint', 'category',
'1file', 'signature', 'timestamp'],
- 'check-key': ['nick', 'name', 'keydir', 'fingerprint', 'category',
'keyring', 'keyid'],
+ 'list-key': ['nick', 'name', 'keydir', 'keys', 'fingerprint', 'category',
'keyring', 'gpgsearch', 'keyid'],
+ 'install-key': ['nick', 'name', 'keydir', 'keys', 'fingerprint',
'category', 'keyring', '1file'],
+ 'remove-key': ['nick', 'name', 'keydir', 'keys', 'fingerprint',
'category', 'keyring'],
+ 'move-key': ['nick', 'name', 'keydir', 'keys', 'fingerprint', 'category',
'keyring', 'dest'],
+ 'installed': ['nick', 'name', 'keydir', 'keys', 'fingerprint', 'category',
'keyring'],
+ 'import-key': ['nick', 'name', 'keydir', 'keys', 'fingerprint',
'category', 'keyring'],
+ 'key-search': ['nick', '1name', 'keydir', 'keys', 'fingerprint', 'keyid',
'category', 'exact', 'all'],
+ 'verify': ['dest', 'nick', 'name', 'keydir', 'keys', 'fingerprint',
'category', '1file', 'signature', 'timestamp'],
+ 'check-key': ['nick', 'name', 'keydir', 'keys', 'fingerprint', 'category',
'keyring', 'keyid'],
'sign': ['nick', 'name', 'keydir', 'fingerprint', 'file', 'keyring'],
- 'spec-check': ['nick', 'name', 'keydir', 'fingerprint', 'category',
'keyring', 'keyid'],
- 'refresh-key': ['nick', 'name', 'keydir', 'fingerprint', 'category',
'keyring', 'keyid'],
+ 'spec-check': ['nick', 'name', 'keydir', 'keys', 'fingerprint',
'category', 'keyring', 'keyid'],
+ 'refresh-key': ['nick', 'name', 'keydir', 'keys', 'fingerprint',
'category', 'keyring', 'keyid'],
'---general---': [],
'----seeds----': [],
'----keys-----': [],
diff --git a/gkeys/gkeys/base.py b/gkeys/gkeys/base.py
index 541a12c..2c0e114 100644
--- a/gkeys/gkeys/base.py
+++ b/gkeys/gkeys/base.py
@@ -85,6 +85,12 @@ class CliBase(object):
help='The name of the keyring to use for verification, etc.')
@staticmethod
+ def _option_keys(parser=None):
+ parser.add_argument('-K', '--keys', dest='keys', nargs='*',
+ default=None,
+ help='The name of the keyring to use for verification, etc.')
+
+ @staticmethod
def _option_nick(parser=None):
parser.add_argument('-n', '--nick', dest='nick', default=None,
help='The nick associated with the the key')
@@ -167,6 +173,11 @@ class CliBase(object):
action='store_true', default=False,
help='Just Do It')
+ @staticmethod
+ def _option_uid(parser=None):
+ parser.add_argument('-u', '--uid', dest='uid', nargs='*', default=None,
+ help='The user ID, gpg key uid')
+
def parse_args(self, args):
'''Parse a list of aruments
diff --git a/gkeys/gkeys/seed.py b/gkeys/gkeys/seed.py
index 16fe0fd..67354f3 100644
--- a/gkeys/gkeys/seed.py
+++ b/gkeys/gkeys/seed.py
@@ -57,6 +57,12 @@ class Seeds(object):
self._error(err)
return False
for seed in list(seedlines.items()):
+ # GKEY class change auto-update
+ if not 'uid' in list(seed[1]):
+ seed[1]['uid'] = []
+ if not 'keys' in list(seed[1]):
+ seed[1]['keys'] = seed[1]['fingerprint'][:]
+
#try:
self.seeds[seed[0]] = GKEY(**seed[1])
#except Exception as err:
diff --git a/gkeys/gkeys/seedhandler.py b/gkeys/gkeys/seedhandler.py
index 33ed787..a9fb720 100644
--- a/gkeys/gkeys/seedhandler.py
+++ b/gkeys/gkeys/seedhandler.py
@@ -111,6 +111,11 @@ class SeedHandler(object):
if seed:
for nick in sorted(seed):
key = seed[nick]
+ # GKEY class change auto-update
+ if not 'uid' in list(key):
+ key['uid'] = []
+ if not 'keys' in list(key):
+ key['keys'] = key['fingerprint'][:]
seeds.add(nick, GKEY(**key))
except OSError as error:
self.logger.debug("SeedHandler: load_category; OSError for %s" %
catdir)