##// END OF EJS Templates
statichttprepo: make the opener a subclass of abstractopener
Dan Villiom Podlaski Christiansen -
r14091:0aa60e4e default
parent child Browse files
Show More
@@ -9,7 +9,7 b''
9 9
10 10 from i18n import _
11 11 import changelog, byterange, url, error
12 import localrepo, manifest, util, store
12 import localrepo, manifest, util, scmutil, store
13 13 import urllib, urllib2, errno
14 14
15 15 class httprangereader(object):
@@ -67,17 +67,17 b' def build_opener(ui, authinfo):'
67 67 urlopener = url.opener(ui, authinfo)
68 68 urlopener.add_handler(byterange.HTTPRangeHandler())
69 69
70 def opener(base):
71 """return a function that opens files over http"""
72 p = base
73 def o(path, mode="r", atomictemp=None):
70 class statichttpopener(scmutil.abstractopener):
71 def __init__(self, base):
72 self.base = base
73
74 def __call__(self, path, mode="r", atomictemp=None):
74 75 if mode not in ('r', 'rb'):
75 76 raise IOError('Permission denied')
76 f = "/".join((p, urllib.quote(path)))
77 f = "/".join((self.base, urllib.quote(path)))
77 78 return httprangereader(f, urlopener)
78 return o
79 79
80 return opener
80 return statichttpopener
81 81
82 82 class statichttprepository(localrepo.localrepository):
83 83 def __init__(self, ui, path):
General Comments 0
You need to be logged in to leave comments. Login now