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