diff options
author | Lars Wirzenius <liw@liw.fi> | 2011-04-12 14:20:08 +0100 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2011-04-12 14:20:08 +0100 |
commit | 16003161a7a2ff0d09fbb908ff4e933062ffb7f8 (patch) | |
tree | c23b5db5a5fc51a269ad0532748f9a37029aacf2 | |
parent | f2c3c3cf2dffc3a41735efd1aaa7916d9c40a3a5 (diff) | |
download | obnam-16003161a7a2ff0d09fbb908ff4e933062ffb7f8.tar.gz |
Refactor top eliminate duplicated code.
-rw-r--r-- | obnamlib/plugins/encryption_plugin.py | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/obnamlib/plugins/encryption_plugin.py b/obnamlib/plugins/encryption_plugin.py index eee56152..f3da8947 100644 --- a/obnamlib/plugins/encryption_plugin.py +++ b/obnamlib/plugins/encryption_plugin.py @@ -120,14 +120,20 @@ class EncryptionPlugin(obnamlib.ObnamPlugin): keyid = 'no key' print client, keyid - def list_keys(self, args): - repo = self.app.open_repository() + def _find_keys_and_toplevels(self, repo): toplevels = repo.fs.listdir('.') keys = dict() + tops = dict() for toplevel in toplevels: userkeys = self.read_keyring(repo, toplevel) for keyid in userkeys.keyids(): keys[keyid] = keys.get(keyid, []) + [toplevel] + tops[toplevel] = tops.get(toplevel, []) + [keyid] + return keys, tops + + def list_keys(self, args): + repo = self.app.open_repository() + keys, tops = self._find_keys_and_toplevels(repo) for keyid in keys: print 'key: %s' % keyid for toplevel in keys[keyid]: @@ -135,14 +141,7 @@ class EncryptionPlugin(obnamlib.ObnamPlugin): def list_toplevels(self, args): repo = self.app.open_repository() - toplevels = repo.fs.listdir('.') - keys = dict() - tops = dict() - for toplevel in toplevels: - userkeys = self.read_keyring(repo, toplevel) - for keyid in userkeys.keyids(): - keys[keyid] = keys.get(keyid, []) + [toplevel] - tops[toplevel] = tops.get(toplevel, []) + [keyid] + keys, tops = self._find_keys_and_toplevels(repo) for toplevel in tops: print 'toplevel: %s' % toplevel for keyid in tops[toplevel]: |