def dump_file_hashes(conf): output = conf.system.dependency_cache o = { 'conf': conf.dict(), 'time': datetime.datetime.utcnow().strftime("%s"), 'files': { } } files = expand_tree(os.path.join(conf.paths.projectroot, conf.paths.source), None) fmap = o['files'] for fn in files: if os.path.exists(fn): fmap[fn] = md5_file(fn) output_dir = os.path.dirname(output) if not os.path.exists(output_dir): os.makedirs(output_dir) with open(output, 'w') as f: json.dump(o, f) logger.info('wrote dependency cache to: {0}'.format(output))
def needs_rebuild(t, d): if dep_map is None: return check_dependency(t, d) elif d in dep_map: fn_hash = md5_file(d) else: return check_dependency(t, d) if dep_map[d] == fn_hash: return False else: return True