diff options
author | Ori Bernstein <ori@eigenstate.org> | 2021-06-14 00:00:37 +0000 |
---|---|---|
committer | Ori Bernstein <ori@eigenstate.org> | 2021-06-14 00:00:37 +0000 |
commit | a73a964e51247ed169d322c725a3a18859f109a3 (patch) | |
tree | 3f752d117274d444bda44e85609aeac1acf313f3 /sys/lib/python/hgext/hgwebfs.py | |
parent | e64efe273fcb921a61bf27d33b230c4e64fcd425 (diff) |
python, hg: tow outside the environment.
they've served us well, and can ride off into the sunset.
Diffstat (limited to 'sys/lib/python/hgext/hgwebfs.py')
-rw-r--r-- | sys/lib/python/hgext/hgwebfs.py | 105 |
1 files changed, 0 insertions, 105 deletions
diff --git a/sys/lib/python/hgext/hgwebfs.py b/sys/lib/python/hgext/hgwebfs.py deleted file mode 100644 index 9ae26b959..000000000 --- a/sys/lib/python/hgext/hgwebfs.py +++ /dev/null @@ -1,105 +0,0 @@ -''' webfs support ''' - -import mercurial.url -import re -import os - -class Webconn: - def __init__(self, mnt, req): - while True: - try: - self.open(mnt, req) - return - except IOError, e: - try: - errstr = e.strerror - params = errstr[errstr.index("needkey ")+8:] - if params.find("!password?") < 0: - raise e - if os.spawnl(os.P_WAIT, "/boot/factotum", "getkey", "-g", params) != 0: - raise e - except: - raise e - - def open(self, mnt, req): - if type(req) == str: - self.url = req - else: - self.url = req.get_full_url() - if self.url[0:5] == 'file:': - path = self.url[5:] - while path[0:2] == '//': - path = path[1:] - self.dir = '/dev/null' - self.body = open(path, 'r', 0) - return - ctl = open(mnt+'/clone', 'r+', 0) - try: - self.dir = mnt+'/'+ctl.readline().rstrip('\n') - ctl.seek(0) - ctl.write('url '+self.url) - m = 'User-Agent: mercurial/proto-1.0\r\n'; - ctl.seek(0) - ctl.write('headers '+m) - for h in req.headers: - ctl.seek(0) - ctl.write('headers '+h+': '+req.headers[h]+'\r\n') - - if req.has_data(): - data = req.get_data() - post = open(self.dir+'/postbody', 'w', 0); - try: - data.seek(0) - while True: - buf = data.read(4096) - if len(buf) == 0: - break - post.write(buf) - finally: - post.close() - self.body = open(self.dir+'/body', 'r', 0) - finally: - ctl.close() - - def read(self, amt=-1): - return self.body.read(amt); - - def close(self): - self.body.close() - self.body = None - self.dir = None - - def geturl(self): - return self.url - - def getheader(self, key): - name = re.sub(r'[^a-z]+', '', key.lower()) - try: - f = open(self.dir+'/'+name, 'r', 0) - try: - hdr = f.read() - finally: - f.close() - return hdr - except: - return None - -class Webopener: - def __init__(self): - self.handlers = [] - - def add_handler(self, handler): - return - - def open(self, req, data=None): - return Webconn('/mnt/web', req) - - def close(self): - pass - - -def webopener(ui, authinfo=None): - return Webopener(); - -mercurial.url.has_https = 1 -mercurial.url.opener = webopener |