From be82f264fe8f3670c76cb5e172c1d659cfa5f823 Mon Sep 17 00:00:00 2001 From: "Robin H. Johnson" Date: Mon, 24 Dec 2007 03:42:37 -0800 Subject: Allow passing in a file for the admin key, and overriding the default key name. --- gitosis/init.py | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/gitosis/init.py b/gitosis/init.py index ffc0215..cb21cbd 100644 --- a/gitosis/init.py +++ b/gitosis/init.py @@ -21,7 +21,7 @@ from gitosis import app log = logging.getLogger('gitosis.init') def read_ssh_pubkey(fp=None): #pragma: no cover - """Read an SSH public key from stdin.""" + """Read an SSH public key from stdin or file.""" if fp is None: fp = sys.stdin line = fp.readline() @@ -92,7 +92,20 @@ class Main(app.App): parser = super(Main, self).create_parser() parser.set_usage('%prog [OPTS]') parser.set_description( - 'Initialize a user account for use with gitosis') + 'Initialize a user account for use with gitosis' + ) + parser.set_defaults( + adminkey=None, + adminname=None, + ) + parser.add_option('--adminkey', + metavar='FILE', + help='Admin SSH public key FILE location', + ) + parser.add_option('--adminname', + metavar='STRING', + help='Name for administrator public key file', + ) return parser def read_config(self, options, cfg): @@ -111,8 +124,11 @@ class Main(app.App): os.umask(0022) log.info('Reading SSH public key...') - pubkey = read_ssh_pubkey() - user = sshkey.extract_user(pubkey) + pubkey = read_ssh_pubkey(options.adminkey) + if options.adminname is None: + user = sshkey.extract_user(pubkey) + else: + user = options.adminname if user is None: log.error('Cannot parse user from SSH public key.') sys.exit(1) -- cgit v1.2.3