root/svnpostcommitcreateversionscript/0.9/post-commit.trac-create-version

Revision 307, 1.0 kB (checked in by dserodio, 3 years ago)

SvnPostCommitCreateVersionScript:

Inclusion of post-commit.trac-create-version script

  • Property svn:executable set to *
Line 
1 #!/usr/bin/env python
2 # -*- coding: utf-8 -*-
3 #
4 # This script should be invoked from the subversion post-commit hook like this:
5 #
6 #  REPOS="$1"
7 #  REV="$2"
8 #  $REPOS/hooks/post-commit.trac-create-version "$REPOS" "$REV"
9 #
10 # Daniel Serodio <dserodio gmail>
11
12 import re
13 import sys
14 import os
15
16 TRAC_ENV_ROOT = '/var/lib/trac'
17 versions_re = re.compile(r'^A\W*(\w+)/tags/RELEASE_([^/]+)')
18
19 def main():
20     if len(sys.argv) != 3:
21         print >> sys.stderr, 'Usage: %s <repository> <revision>' % sys.argv[0]
22         sys.exit(1)
23
24     repos = sys.argv[1]
25     rev = sys.argv[2]
26     changed_files = os.popen("svnlook changed %s %s" % (repos, rev)).readlines()
27
28     for file in changed_files:
29         match = versions_re.search(file)
30         if match:
31             project = match.group(1)
32             version = match.group(2)
33             trac_env = "%s/%s" % (TRAC_ENV_ROOT, project)
34             os.popen("trac-admin %s version add %s now" % (trac_env, version))
35     sys.exit(0)
36
37 if __name__ == '__main__':
38     main()
Note: See TracBrowser for help on using the browser.