Commit 0ac2fa10 authored by Xavier Thompson's avatar Xavier Thompson

Use os.walk in main.py

parent e8c85e47
......@@ -132,7 +132,7 @@ class SymlinkNode:
result[self.path] = self.data
def main(path='.'):
def main2(path='.'):
global scheduler
scheduler = Scheduler()
......@@ -147,6 +147,54 @@ def main(path='.'):
json.dump(result, sys.stdout, indent=2, separators=(',', ': '))
def task(path):
try:
stat_result = os.stat(path)
if stat.S_ISREG(stat_result.st_mode):
data = compute_hash(path)
else:
data = {}
data['stat'] = stat_to_dict(stat_result)
return data
except Exception:
return {}
def walk(path):
class Getter:
def __init__(self, data):
self.data = data
def get(self):
return self.data
result = {}
for dirpath, _, filenames in os.walk(path):
result[dirpath] = Getter({
'stat': stat_to_dict(os.stat(dirpath)),
})
for filename in filenames:
filepath = os.path.join(dirpath, filename)
result[filepath] = scheduler.submit(task, filepath)
return result
def main(path='.'):
global scheduler
scheduler = Scheduler()
result = walk(path)
scheduler.join()
result = {k : v.get() for k, v in result.items()}
json.dump(result, sys.stdout, indent=2, separators=(',', ': '))
if __name__ == "__main__":
if len(sys.argv) == 2:
main(sys.argv[1])
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment