author | victorp@symbian.org |
Mon, 17 Aug 2009 11:45:57 +0100 | |
changeset 33 | 260e59c012bc |
parent 21 | f55ca49f7f44 |
permissions | -rw-r--r-- |
21
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
1 |
# filecheck.py - changeset filename check for mercurial |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
2 |
# |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
3 |
# should be configured as pretxnchangegroup to vet incoming changesets |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
4 |
# and as pretxncommit to vet local commit |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
5 |
# |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
6 |
# will receive a group of changesets from provided node to tip |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
7 |
|
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
8 |
from mercurial import util |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
9 |
from mercurial.i18n import _ |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
10 |
import re |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
11 |
|
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
12 |
badpatterns = ('.*\.ttt\s*$','c.ttf','.*\.ttf\s*$','.*\.bbb\s*$', |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
13 |
'.*\.bbb\s*$','.*\.ccc\s*$','.*\.ddd\s*$','.*\.eee\s*$','.*\.fff\s*$','.*\.ggg\s*$') |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
14 |
|
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
15 |
badexpr=[] |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
16 |
runonce=0 |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
17 |
|
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
18 |
def init(): |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
19 |
global badexpr |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
20 |
for p in badpatterns: |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
21 |
badexpr.append((re.compile((p),re.IGNORECASE))) |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
22 |
|
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
23 |
def deny(f): |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
24 |
global runonce |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
25 |
if (not runonce): |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
26 |
init() |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
27 |
runonce =1 |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
28 |
|
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
29 |
for pat in badexpr: |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
30 |
if(pat.match(f)): |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
31 |
return(1) |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
32 |
|
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
33 |
return(0) |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
34 |
|
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
35 |
def push_hook(ui, repo, hooktype, node=None, source=None, **kwargs): |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
36 |
if hooktype != 'pretxnchangegroup': |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
37 |
raise util.Abort(_('config error - hook type "%s" cannot stop ' |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
38 |
'incoming changesets') % hooktype) |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
39 |
|
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
40 |
# iterate over all the added changesets between node and tip |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
41 |
for rev in xrange(repo[node], len(repo)): |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
42 |
ctx = repo[rev] |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
43 |
for f in ctx.files(): |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
44 |
if deny(f): |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
45 |
ui.debug(_('filecheck: file %s not allowed \n') % (f)) |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
46 |
raise util.Abort(_('filecheck: access denied for changeset %s file %s blocked') % (ctx,f)) |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
47 |
ui.debug(_('filecheck: allowing changeset %s\n') % ctx) |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
48 |
|
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
49 |
def commit_hook(ui, repo, hooktype, node=None, source=None, **kwargs): |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
50 |
# iterate over all the files in added changeset |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
51 |
ctx = repo[node] |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
52 |
for f in ctx.files(): |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
53 |
if deny(f): |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
54 |
ui.debug(_('filecheck: file %s not allowed \n') % (f)) |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
55 |
raise util.Abort(_('filecheck: access denied for changeset %s file %s blocked') % (ctx,f)) |
f55ca49f7f44
Added initial versions of filecheck and hg tags to bugzilla version hooks
tahirm@symbian.org
parents:
diff
changeset
|
56 |
ui.debug(_('filecheck: allowing changeset %s\n') % ctx) |