forked from defterai/StarCitizenModding
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathgen_files_index.py
44 lines (37 loc) · 1.15 KB
/
gen_files_index.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/bin/python
import os
import sys
import base64
import codecs
import hashlib
from functools import partial
def FileSize(filename):
return os.stat(filename).st_size
def FileMD5(filename):
with open(filename, mode='rb') as f:
d = hashlib.md5()
for buf in iter(partial(f.read, 128), b''):
d.update(buf)
return d.digest()
def AppendFile(indexFile, filename):
print(f'Add file: {filename}')
fileSize = FileSize(filename)
fileHash = FileMD5(filename)
fileBase64Hash = base64.b64encode(fileHash).decode()
indexFile.write(f'{filename}:{fileSize}:{fileBase64Hash}\r\n')
def AppendDirectory(indexFile, path):
for root, subdirs, files in os.walk(path):
for filename in files:
AppendFile(indexFile, os.path.join(root, filename))
def main(args):
print('Create files index...')
try:
with codecs.open('index.txt', 'w', 'utf-8') as indexFile:
AppendDirectory(indexFile, 'data')
except Exception as err:
print(f'Create files index failed:\n{err}')
return 1
print("Done")
return 0
if __name__ == "__main__":
sys.exit(main(sys.argv))