aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xgitcmd8
1 files 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')