mark 'blockchain_headers' file as sparse on windows
based on fyookball/electrum@647a6cc26d
This commit is contained in:
@@ -675,9 +675,10 @@ class Network(PrintError):
|
|||||||
length = 80 * len(constants.net.CHECKPOINTS) * 2016
|
length = 80 * len(constants.net.CHECKPOINTS) * 2016
|
||||||
if not os.path.exists(filename) or os.path.getsize(filename) < length:
|
if not os.path.exists(filename) or os.path.getsize(filename) < length:
|
||||||
with open(filename, 'wb') as f:
|
with open(filename, 'wb') as f:
|
||||||
if length>0:
|
if length > 0:
|
||||||
f.seek(length-1)
|
f.seek(length-1)
|
||||||
f.write(b'\x00')
|
f.write(b'\x00')
|
||||||
|
util.ensure_sparse_file(filename)
|
||||||
with b.lock:
|
with b.lock:
|
||||||
b.update_size()
|
b.update_size()
|
||||||
|
|
||||||
|
|||||||
@@ -383,6 +383,16 @@ def android_check_data_dir():
|
|||||||
return data_dir
|
return data_dir
|
||||||
|
|
||||||
|
|
||||||
|
def ensure_sparse_file(filename):
|
||||||
|
# On modern Linux, no need to do anything.
|
||||||
|
# On Windows, need to explicitly mark file.
|
||||||
|
if os.name == "nt":
|
||||||
|
try:
|
||||||
|
os.system('fsutil sparse setflag "{}" 1'.format(filename))
|
||||||
|
except Exception as e:
|
||||||
|
print_error('error marking file {} as sparse: {}'.format(filename, e))
|
||||||
|
|
||||||
|
|
||||||
def get_headers_dir(config):
|
def get_headers_dir(config):
|
||||||
return android_headers_dir() if 'ANDROID_DATA' in os.environ else config.path
|
return android_headers_dir() if 'ANDROID_DATA' in os.environ else config.path
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user