mercurial/hgweb/hgwebdir_mod.py
changeset 9723 a235644a0b93
parent 9363 8635b33eaade
child 9724 40ef3bf3e04a
equal deleted inserted replaced
9722:4d9dea174b84 9723:a235644a0b93
    18 
    18 
    19 def cleannames(items):
    19 def cleannames(items):
    20     return [(util.pconvert(name).strip('/'), path) for name, path in items]
    20     return [(util.pconvert(name).strip('/'), path) for name, path in items]
    21 
    21 
    22 def findrepos(paths):
    22 def findrepos(paths):
    23     repos = {}
    23     repos = []
    24     for prefix, root in cleannames(paths):
    24     for prefix, root in cleannames(paths):
    25         roothead, roottail = os.path.split(root)
    25         roothead, roottail = os.path.split(root)
    26         # "foo = /bar/*" makes every subrepo of /bar/ to be
    26         # "foo = /bar/*" makes every subrepo of /bar/ to be
    27         # mounted as foo/subrepo
    27         # mounted as foo/subrepo
    28         # and "foo = /bar/**" also recurses into the subdirectories,
    28         # and "foo = /bar/**" also recurses into the subdirectories,
    29         # remember to use it without working dir.
    29         # remember to use it without working dir.
    30         try:
    30         try:
    31             recurse = {'*': False, '**': True}[roottail]
    31             recurse = {'*': False, '**': True}[roottail]
    32         except KeyError:
    32         except KeyError:
    33             repos[prefix] = root
    33             repos.append((prefix, root))
    34             continue
    34             continue
    35         roothead = os.path.normpath(roothead)
    35         roothead = os.path.normpath(roothead)
    36         for path in util.walkrepos(roothead, followsym=True, recurse=recurse):
    36         for path in util.walkrepos(roothead, followsym=True, recurse=recurse):
    37             path = os.path.normpath(path)
    37             path = os.path.normpath(path)
    38             name = util.pconvert(path[len(roothead):]).strip('/')
    38             name = util.pconvert(path[len(roothead):]).strip('/')
    39             if prefix:
    39             if prefix:
    40                 name = prefix + '/' + name
    40                 name = prefix + '/' + name
    41             repos[name] = path
    41             repos.append((name, path))
    42     return repos.items()
    42     return repos
    43 
    43 
    44 class hgwebdir(object):
    44 class hgwebdir(object):
    45     refreshinterval = 20
    45     refreshinterval = 20
    46 
    46 
    47     def __init__(self, conf, baseui=None):
    47     def __init__(self, conf, baseui=None):