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)

Reply via email to