diff options
author | Lukas Fleischer <lfleischer@archlinux.org> | 2016-09-20 08:45:43 +0200 |
---|---|---|
committer | Lukas Fleischer <lfleischer@archlinux.org> | 2016-09-29 22:07:06 +0200 |
commit | 3a352435e95207fd395a9dbd19227da57f243047 (patch) | |
tree | dff69f9587b9d21cd89ed68d6f41a25398d25fa5 | |
parent | 603b5b5db916da7d2a44e9e89587d62859840287 (diff) |
git-auth: Move entry point to a main() method
Move the main program logic of git-auth to a main() method such that it
can be used as a module and easily be invoked by setuptools wrapper
scripts.
Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
-rwxr-xr-x | git-interface/git-auth.py | 54 |
1 files changed, 29 insertions, 25 deletions
diff --git a/git-interface/git-auth.py b/git-interface/git-auth.py index 45fd577..d3b0188 100755 --- a/git-interface/git-auth.py +++ b/git-interface/git-auth.py @@ -23,36 +23,40 @@ def format_command(env_vars, command, ssh_opts, ssh_key): return msg -valid_keytypes = config.get('auth', 'valid-keytypes').split() -username_regex = config.get('auth', 'username-regex') -git_serve_cmd = config.get('auth', 'git-serve-cmd') -ssh_opts = config.get('auth', 'ssh-options') +def main(): + valid_keytypes = config.get('auth', 'valid-keytypes').split() + username_regex = config.get('auth', 'username-regex') + git_serve_cmd = config.get('auth', 'git-serve-cmd') + ssh_opts = config.get('auth', 'ssh-options') -keytype = sys.argv[1] -keytext = sys.argv[2] -if keytype not in valid_keytypes: - exit(1) + keytype = sys.argv[1] + keytext = sys.argv[2] + if keytype not in valid_keytypes: + exit(1) -conn = db.Connection() + conn = db.Connection() -cur = conn.execute("SELECT Users.Username, Users.AccountTypeID FROM Users " + - "INNER JOIN SSHPubKeys ON SSHPubKeys.UserID = Users.ID " - "WHERE SSHPubKeys.PubKey = ? AND Users.Suspended = 0", - (keytype + " " + keytext,)) + cur = conn.execute("SELECT Users.Username, Users.AccountTypeID FROM Users " + "INNER JOIN SSHPubKeys ON SSHPubKeys.UserID = Users.ID " + "WHERE SSHPubKeys.PubKey = ? AND Users.Suspended = 0", + (keytype + " " + keytext,)) -row = cur.fetchone() -if not row or cur.fetchone(): - exit(1) + row = cur.fetchone() + if not row or cur.fetchone(): + exit(1) -user, account_type = row -if not re.match(username_regex, user): - exit(1) + user, account_type = row + if not re.match(username_regex, user): + exit(1) + env_vars = { + 'AUR_USER': user, + 'AUR_PRIVILEGED': '1' if account_type > 1 else '0', + } + key = keytype + ' ' + keytext -env_vars = { - 'AUR_USER': user, - 'AUR_PRIVILEGED': '1' if account_type > 1 else '0', -} -key = keytype + ' ' + keytext + print(format_command(env_vars, git_serve_cmd, ssh_opts, key)) -print(format_command(env_vars, git_serve_cmd, ssh_opts, key)) + +if __name__ == '__main__': + main() |