summaryrefslogtreecommitdiff
path: root/lock-repo.py
diff options
context:
space:
mode:
Diffstat (limited to 'lock-repo.py')
-rwxr-xr-xlock-repo.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/lock-repo.py b/lock-repo.py
new file mode 100755
index 0000000..f651d3a
--- /dev/null
+++ b/lock-repo.py
@@ -0,0 +1,37 @@
1#!/usr/bin/env python
2# vim: set filencoding=utf8
3"""
4Mercurial Shared SSH Repo Lock Script
5
6@author: Mike Crute (mcrute@gmail.com)
7@organization: SoftGroup Hosting
8@date: February 23, 2011
9"""
10
11import os
12import repolib
13
14def main(argv):
15 log = repolib.get_logger('validate-login')
16
17 if ('SSH_HG_REPO' not in os.environ or
18 'SSH_HG_USER' not in os.environ):
19 log.error("Failed to execute pre-lock checks")
20 return 1
21
22 try:
23 repo = repolib.Repository(os.environ['SSH_HG_REPO'])
24 repo.load_from_hgrc()
25 except IOError:
26 log.error("Could not load repository config")
27 return 1
28
29 if not repo.can_be_written_by(os.environ['SSH_HG_USER']):
30 log.error("You can not write to this repository")
31 return 1
32
33 return 0
34
35if __name__ == "__main__":
36 import sys
37 sys.exit(main(sys.argv[1:]))