##// END OF EJS Templates
match: add always, never, and exact methods
Matt Mackall -
r6596:7fe4610c default
parent child Browse files
Show More
@@ -1,36 +1,51 b''
1 1 import util
2 2
3 3 class match(object):
4 4 def __init__(self, root, cwd, patterns, include, exclude, default):
5 5 self._patterns = patterns
6 6 self._root = root
7 7 self._cwd = cwd
8 8 self._include = include
9 9 self._exclude = exclude
10 10 f, mf, ap = util.matcher(root, cwd, patterns, include, exclude,
11 11 self.src(), default)
12 12 self._files = f
13 13 self._fmap = dict.fromkeys(f)
14 14 self._matchfn = mf
15 15 self._anypats = ap
16 16 def src(self):
17 17 return None
18 18 def __call__(self, fn):
19 19 return self._matchfn(fn)
20 20 def __iter__(self):
21 21 for f in self._files:
22 22 yield f
23 23 def bad(self, f, msg):
24 24 return True
25 25 def dir(self, f):
26 26 pass
27 27 def missing(self, f):
28 28 pass
29 29 def exact(self, f):
30 30 return f in self._fmap
31 31 def rel(self, f):
32 32 return util.pathto(self._root, self._cwd, f)
33 33 def files(self):
34 34 return self._files
35 35 def anypats(self):
36 36 return self._anypats
37
38 def always(root, cwd):
39 return match(root, cwd, [], None, None, 'relpath')
40
41 def never(root, cwd):
42 m = match(root, cwd, [], None, None, 'relpath')
43 m._matchfn = lambda f: False
44 return m
45
46 def exact(root, cwd, files):
47 m = always(root, cwd)
48 m._files = files
49 m._fmap = dict.fromkeys(files)
50 m._matchfn = m._fmap.has_key
51 return m
General Comments 0
You need to be logged in to leave comments. Login now