hgext/largefiles/lfutil.py
changeset 19005 1b84047e7d16
parent 19002 5083baa6cbf8
child 19010 e071d161b266
equal deleted inserted replaced
19004:6614e5e24e66 19005:1b84047e7d16
   307     for data in util.filechunkiter(fd, 128 * 1024):
   307     for data in util.filechunkiter(fd, 128 * 1024):
   308         hasher.update(data)
   308         hasher.update(data)
   309     fd.close()
   309     fd.close()
   310     return hasher.hexdigest()
   310     return hasher.hexdigest()
   311 
   311 
   312 class limitreader(object):
       
   313     def __init__(self, f, limit):
       
   314         self.f = f
       
   315         self.limit = limit
       
   316 
       
   317     def read(self, length):
       
   318         if self.limit == 0:
       
   319             return ''
       
   320         length = length > self.limit and self.limit or length
       
   321         self.limit -= length
       
   322         return self.f.read(length)
       
   323 
       
   324     def close(self):
       
   325         pass
       
   326 
       
   327 def writehash(hash, filename, executable):
   312 def writehash(hash, filename, executable):
   328     util.makedirs(os.path.dirname(filename))
   313     util.makedirs(os.path.dirname(filename))
   329     util.writefile(filename, hash + '\n')
   314     util.writefile(filename, hash + '\n')
   330     os.chmod(filename, getmode(executable))
   315     os.chmod(filename, getmode(executable))
   331 
   316