|
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() |
|---|