diff options
-rwxr-xr-x | lock-repo.py | 30 |
1 files changed, 19 insertions, 11 deletions
diff --git a/lock-repo.py b/lock-repo.py index f651d3a..e3de55a 100755 --- a/lock-repo.py +++ b/lock-repo.py | |||
@@ -11,26 +11,34 @@ Mercurial Shared SSH Repo Lock Script | |||
11 | import os | 11 | import os |
12 | import repolib | 12 | import repolib |
13 | 13 | ||
14 | def main(argv): | ||
15 | log = repolib.get_logger('validate-login') | ||
16 | 14 | ||
17 | if ('SSH_HG_REPO' not in os.environ or | 15 | def check_repo(env, log): |
18 | 'SSH_HG_USER' not in os.environ): | 16 | repo = repolib.Repository(env['SSH_HG_REPO']) |
19 | log.error("Failed to execute pre-lock checks") | 17 | repo.load_from_hgrc() |
18 | |||
19 | if not repo.can_be_written_by(env['SSH_HG_USER']): | ||
20 | log.error("You can not write to this repository.") | ||
20 | return 1 | 21 | return 1 |
21 | 22 | ||
23 | return 0 | ||
24 | |||
25 | |||
26 | def main(argv): | ||
27 | log = repolib.get_logger('validate-login') | ||
28 | |||
22 | try: | 29 | try: |
23 | repo = repolib.Repository(os.environ['SSH_HG_REPO']) | 30 | return check_repo(os.environ, log) |
24 | repo.load_from_hgrc() | 31 | |
25 | except IOError: | 32 | except IOError: |
26 | log.error("Could not load repository config") | 33 | log.error("Could not load repository config.") |
34 | log.error("Failed to execute pre-lock checks.") | ||
27 | return 1 | 35 | return 1 |
28 | 36 | ||
29 | if not repo.can_be_written_by(os.environ['SSH_HG_USER']): | 37 | except KeyError: |
30 | log.error("You can not write to this repository") | 38 | log.error("Incomplete or corrupted environment.") |
39 | log.error("Failed to execute pre-lock checks.") | ||
31 | return 1 | 40 | return 1 |
32 | 41 | ||
33 | return 0 | ||
34 | 42 | ||
35 | if __name__ == "__main__": | 43 | if __name__ == "__main__": |
36 | import sys | 44 | import sys |