52 self._baseurl = cp.get('web', 'baseurl') |
52 self._baseurl = cp.get('web', 'baseurl') |
53 if cp.has_section('paths'): |
53 if cp.has_section('paths'): |
54 paths = cleannames(cp.items('paths')) |
54 paths = cleannames(cp.items('paths')) |
55 for prefix, root in paths: |
55 for prefix, root in paths: |
56 roothead, roottail = os.path.split(root) |
56 roothead, roottail = os.path.split(root) |
57 if roottail != '*': |
57 # "foo = /bar/*" makes every subrepo of /bar/ to be |
|
58 # mounted as foo/subrepo |
|
59 # and "foo = /bar/**" does even recurse inside the |
|
60 # subdirectories, remember to use it without working dir. |
|
61 try: |
|
62 recurse = {'*': False, '**': True}[roottail] |
|
63 except KeyError: |
58 self.repos.append((prefix, root)) |
64 self.repos.append((prefix, root)) |
59 continue |
65 continue |
60 # "foo = /bar/*" makes every subrepo of /bar/ to be |
|
61 # mounted as foo/subrepo |
|
62 roothead = os.path.normpath(roothead) |
66 roothead = os.path.normpath(roothead) |
63 for path in util.walkrepos(roothead, followsym=True): |
67 for path in util.walkrepos(roothead, followsym=True, |
|
68 recurse=recurse): |
64 path = os.path.normpath(path) |
69 path = os.path.normpath(path) |
65 name = util.pconvert(path[len(roothead):]).strip('/') |
70 name = util.pconvert(path[len(roothead):]).strip('/') |
66 if prefix: |
71 if prefix: |
67 name = prefix + '/' + name |
72 name = prefix + '/' + name |
68 self.repos.append((name, path)) |
73 self.repos.append((name, path)) |