1 |
commit: 4a7e7e54a6b6ce280a221a0b039bebafd9d49701 |
2 |
Author: Brian Dolbec <dolsen <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sat Dec 27 21:51:17 2014 +0000 |
4 |
Commit: Brian Dolbec <dolsen <AT> gentoo <DOT> org> |
5 |
CommitDate: Tue Dec 30 21:42:26 2014 +0000 |
6 |
URL: http://sources.gentoo.org/gitweb/?p=proj/gentoo-keys.git;a=commit;h=4a7e7e54 |
7 |
|
8 |
gkeys: Add keys and uid options to actions and seed handling |
9 |
|
10 |
Add code to auto-update existing installed gkey.seeds files with the additional data. |
11 |
|
12 |
--- |
13 |
gkeys/gkeys/actions.py | 32 ++++++++++++++++---------------- |
14 |
gkeys/gkeys/base.py | 11 +++++++++++ |
15 |
gkeys/gkeys/seed.py | 6 ++++++ |
16 |
gkeys/gkeys/seedhandler.py | 5 +++++ |
17 |
4 files changed, 38 insertions(+), 16 deletions(-) |
18 |
|
19 |
diff --git a/gkeys/gkeys/actions.py b/gkeys/gkeys/actions.py |
20 |
index 9baecaa..4a4f0eb 100644 |
21 |
--- a/gkeys/gkeys/actions.py |
22 |
+++ b/gkeys/gkeys/actions.py |
23 |
@@ -44,24 +44,24 @@ Available_Actions = General_Actions + Key_Actions + Seed_Actions |
24 |
|
25 |
Action_Options = { |
26 |
'list-cats': [], |
27 |
- 'list-seed': ['nick', 'name', 'keydir', 'fingerprint', 'category', '1file'], |
28 |
- 'add-seed': ['nick', 'name', 'keydir', 'fingerprint', 'category'], |
29 |
- 'remove-seed': ['nick', 'name', 'keydir', 'fingerprint', 'category'], |
30 |
- 'move-seed': ['nick', 'name', 'keydir', 'fingerprint', 'category', 'dest'], |
31 |
- 'fetch-seed': ['nick', 'name', 'keydir', 'fingerprint', 'category', 'keyring'], |
32 |
+ 'list-seed': ['nick', 'name', 'keydir', 'keys', 'fingerprint', 'category', '1file'], |
33 |
+ 'add-seed': ['nick', 'name', 'keydir', 'keys', 'fingerprint', 'category', 'uid'], |
34 |
+ 'remove-seed': ['nick', 'name', 'keydir', 'keys', 'fingerprint', 'category'], |
35 |
+ 'move-seed': ['nick', 'name', 'keydir', 'keys', 'fingerprint', 'category', 'dest'], |
36 |
+ 'fetch-seed': ['nick', 'name', 'keydir', 'keys', 'fingerprint', 'category', 'keyring'], |
37 |
'list-seedfiles': [], |
38 |
- 'list-key': ['nick', 'name', 'keydir', 'fingerprint', 'category', 'keyring', 'gpgsearch', 'keyid'], |
39 |
- 'install-key': ['nick', 'name', 'keydir', 'fingerprint', 'category', 'keyring', '1file'], |
40 |
- 'remove-key': ['nick', 'name', 'keydir', 'fingerprint', 'category', 'keyring'], |
41 |
- 'move-key': ['nick', 'name', 'keydir', 'fingerprint', 'category', 'keyring', 'dest'], |
42 |
- 'installed': ['nick', 'name', 'keydir', 'fingerprint', 'category', 'keyring'], |
43 |
- 'import-key': ['nick', 'name', 'keydir', 'fingerprint', 'category', 'keyring'], |
44 |
- 'key-search': ['nick', '1name', 'keydir', 'fingerprint', 'keyid', 'category', 'exact', 'all'], |
45 |
- 'verify': ['dest', 'nick', 'name', 'keydir', 'fingerprint', 'category', '1file', 'signature', 'timestamp'], |
46 |
- 'check-key': ['nick', 'name', 'keydir', 'fingerprint', 'category', 'keyring', 'keyid'], |
47 |
+ 'list-key': ['nick', 'name', 'keydir', 'keys', 'fingerprint', 'category', 'keyring', 'gpgsearch', 'keyid'], |
48 |
+ 'install-key': ['nick', 'name', 'keydir', 'keys', 'fingerprint', 'category', 'keyring', '1file'], |
49 |
+ 'remove-key': ['nick', 'name', 'keydir', 'keys', 'fingerprint', 'category', 'keyring'], |
50 |
+ 'move-key': ['nick', 'name', 'keydir', 'keys', 'fingerprint', 'category', 'keyring', 'dest'], |
51 |
+ 'installed': ['nick', 'name', 'keydir', 'keys', 'fingerprint', 'category', 'keyring'], |
52 |
+ 'import-key': ['nick', 'name', 'keydir', 'keys', 'fingerprint', 'category', 'keyring'], |
53 |
+ 'key-search': ['nick', '1name', 'keydir', 'keys', 'fingerprint', 'keyid', 'category', 'exact', 'all'], |
54 |
+ 'verify': ['dest', 'nick', 'name', 'keydir', 'keys', 'fingerprint', 'category', '1file', 'signature', 'timestamp'], |
55 |
+ 'check-key': ['nick', 'name', 'keydir', 'keys', 'fingerprint', 'category', 'keyring', 'keyid'], |
56 |
'sign': ['nick', 'name', 'keydir', 'fingerprint', 'file', 'keyring'], |
57 |
- 'spec-check': ['nick', 'name', 'keydir', 'fingerprint', 'category', 'keyring', 'keyid'], |
58 |
- 'refresh-key': ['nick', 'name', 'keydir', 'fingerprint', 'category', 'keyring', 'keyid'], |
59 |
+ 'spec-check': ['nick', 'name', 'keydir', 'keys', 'fingerprint', 'category', 'keyring', 'keyid'], |
60 |
+ 'refresh-key': ['nick', 'name', 'keydir', 'keys', 'fingerprint', 'category', 'keyring', 'keyid'], |
61 |
'---general---': [], |
62 |
'----seeds----': [], |
63 |
'----keys-----': [], |
64 |
|
65 |
diff --git a/gkeys/gkeys/base.py b/gkeys/gkeys/base.py |
66 |
index 541a12c..2c0e114 100644 |
67 |
--- a/gkeys/gkeys/base.py |
68 |
+++ b/gkeys/gkeys/base.py |
69 |
@@ -85,6 +85,12 @@ class CliBase(object): |
70 |
help='The name of the keyring to use for verification, etc.') |
71 |
|
72 |
@staticmethod |
73 |
+ def _option_keys(parser=None): |
74 |
+ parser.add_argument('-K', '--keys', dest='keys', nargs='*', |
75 |
+ default=None, |
76 |
+ help='The name of the keyring to use for verification, etc.') |
77 |
+ |
78 |
+ @staticmethod |
79 |
def _option_nick(parser=None): |
80 |
parser.add_argument('-n', '--nick', dest='nick', default=None, |
81 |
help='The nick associated with the the key') |
82 |
@@ -167,6 +173,11 @@ class CliBase(object): |
83 |
action='store_true', default=False, |
84 |
help='Just Do It') |
85 |
|
86 |
+ @staticmethod |
87 |
+ def _option_uid(parser=None): |
88 |
+ parser.add_argument('-u', '--uid', dest='uid', nargs='*', default=None, |
89 |
+ help='The user ID, gpg key uid') |
90 |
+ |
91 |
|
92 |
def parse_args(self, args): |
93 |
'''Parse a list of aruments |
94 |
|
95 |
diff --git a/gkeys/gkeys/seed.py b/gkeys/gkeys/seed.py |
96 |
index 16fe0fd..67354f3 100644 |
97 |
--- a/gkeys/gkeys/seed.py |
98 |
+++ b/gkeys/gkeys/seed.py |
99 |
@@ -57,6 +57,12 @@ class Seeds(object): |
100 |
self._error(err) |
101 |
return False |
102 |
for seed in list(seedlines.items()): |
103 |
+ # GKEY class change auto-update |
104 |
+ if not 'uid' in list(seed[1]): |
105 |
+ seed[1]['uid'] = [] |
106 |
+ if not 'keys' in list(seed[1]): |
107 |
+ seed[1]['keys'] = seed[1]['fingerprint'][:] |
108 |
+ |
109 |
#try: |
110 |
self.seeds[seed[0]] = GKEY(**seed[1]) |
111 |
#except Exception as err: |
112 |
|
113 |
diff --git a/gkeys/gkeys/seedhandler.py b/gkeys/gkeys/seedhandler.py |
114 |
index 33ed787..a9fb720 100644 |
115 |
--- a/gkeys/gkeys/seedhandler.py |
116 |
+++ b/gkeys/gkeys/seedhandler.py |
117 |
@@ -111,6 +111,11 @@ class SeedHandler(object): |
118 |
if seed: |
119 |
for nick in sorted(seed): |
120 |
key = seed[nick] |
121 |
+ # GKEY class change auto-update |
122 |
+ if not 'uid' in list(key): |
123 |
+ key['uid'] = [] |
124 |
+ if not 'keys' in list(key): |
125 |
+ key['keys'] = key['fingerprint'][:] |
126 |
seeds.add(nick, GKEY(**key)) |
127 |
except OSError as error: |
128 |
self.logger.debug("SeedHandler: load_category; OSError for %s" % catdir) |