From 25c827c055a0bd179c32d81293d30f1090b6275e Mon Sep 17 00:00:00 2001 From: VG Date: Sat, 29 Oct 2016 12:06:56 +0200 Subject: Better ls behaviour (allow completion) --- gitcmd | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gitcmd b/gitcmd index 53cd3d8..c751b9a 100755 --- a/gitcmd +++ b/gitcmd @@ -5,6 +5,9 @@ import os def printerr(*l, **d): return print(*l, **d, file=sys.stderr) def fail(*l, **d): printerr(*l, **d); raise SystemExit(1) +def lsexit_repositories(repositories_ro, repositories_rw): + print('\n'.join(repositories_ro + repositories_rw or ['Empty list'])) + raise SystemExit(0) try: user = sys.argv[1] @@ -29,8 +32,7 @@ try: repository = ssh_original_command[1].split('.git')[0].strip("'") except IndexError: if command == 'ls': - print('\n'.join(repositories_ro + repositories_rw or ['Empty list'])) - raise SystemExit(0) + lsexit_repositories(repositories_ro, repositories_rw) fail('Invalid repository name or git usage') except KeyError: fail('Bad boy, git only access authorized.') @@ -43,5 +45,7 @@ if command == 'git-upload-pack' and repository in repositories_ro: elif command == 'git-receive-pack' and repository in repositories_rw: os.execv('/usr/bin/git-receive-pack', ['/usr/bin/git-receive-pack', repository]) +elif command == 'ls': + lsexit_repositories(repositories_ro, []) else: fail('Bad git command or inexistant repository or access denied') -- cgit v1.2.3