From 466edeb78359da01422e165fbd81285091c74c03 Mon Sep 17 00:00:00 2001 From: Rama Krishnan Raghupathy Date: Wed, 30 Dec 2015 20:16:02 -0800 Subject: Enable Incremental build For Generated Files --- src/scripts/Utilities.py | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 src/scripts/Utilities.py (limited to 'src/scripts') diff --git a/src/scripts/Utilities.py b/src/scripts/Utilities.py new file mode 100644 index 0000000000..0de1cafdbd --- /dev/null +++ b/src/scripts/Utilities.py @@ -0,0 +1,48 @@ +from filecmp import dircmp +import shutil +import os + +def walk_recursively_and_update(dcmp): + #for different Files Copy from right to left + for name in dcmp.diff_files: + srcpath = dcmp.right + "/" + name + destpath = dcmp.left + "/" + name + print "Updating %s" % (destpath) + if os.path.isfile(srcpath): + shutil.copyfile(srcpath, destpath) + else : + raise Exception("path: " + srcpath + "is neither a file or folder") + + #copy right only files + for name in dcmp.right_only: + srcpath = dcmp.right + "/" + name + destpath = dcmp.left + "/" + name + print "Updating %s" % (destpath) + if os.path.isfile(srcpath): + shutil.copyfile(srcpath, destpath) + elif os.path.isdir(srcpath): + shutil.copytree(srcpath, destpath) + else : + raise Exception("path: " + srcpath + "is neither a file or folder") + + #delete left only files + for name in dcmp.left_only: + path = dcmp.left + "/" + name + print "Deleting " % (path) + if os.path.isfile(path): + os.remove(path) + elif os.path.isdir(path): + shutil.rmtree(path) + else : + raise Exception("path: " + path + "is neither a file or folder") + + #call recursively + for sub_dcmp in dcmp.subdirs.values(): + walk_recursively_and_update(sub_dcmp) + +def UpdateDirectory(destpath,srcpath): + + if not os.path.exists(destpath): + os.makedirs(destpath) + dcmp = dircmp(destpath,srcpath) + walk_recursively_and_update(dcmp) -- cgit v1.2.3