[oe-commits] Richard Purdie : scripts/cp-noerror: Copy the code from shutils.copytree, update not to error if the mkdir fails

git at git.openembedded.org git at git.openembedded.org
Thu Oct 11 13:17:06 UTC 2012


Module: openembedded-core.git
Branch: master-next
Commit: 8617d13d45e961b1bb17c49744be8d2f8023931b
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=8617d13d45e961b1bb17c49744be8d2f8023931b

Author: Richard Purdie <richard.purdie at linuxfoundation.org>
Date:   Fri Oct  5 15:09:02 2012 +0000

scripts/cp-noerror: Copy the code from shutils.copytree, update not to error if the mkdir fails

Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>

---

 scripts/cp-noerror |   30 +++++++++++++++++++++++++++++-
 1 files changed, 29 insertions(+), 1 deletions(-)

diff --git a/scripts/cp-noerror b/scripts/cp-noerror
index fdb3d2d..f0cd243 100755
--- a/scripts/cp-noerror
+++ b/scripts/cp-noerror
@@ -5,10 +5,38 @@
 #
 
 import sys
+import os
 import shutil
 
+def copytree(src, dst, symlinks=False, ignore=None):
+    """Based on shutil.copytree"""
+    names = os.listdir(src)
+    try:
+        os.makedirs(dst)
+    except OSError: 
+        # Already exists
+        pass
+    errors = []
+    for name in names:
+        srcname = os.path.join(src, name)
+        dstname = os.path.join(dst, name)
+        try:
+            shutil.copy2(srcname, dstname)
+        # catch the Error from the recursive copytree so that we can
+        # continue with other files
+        except shutil.Error, err:
+            errors.extend(err.args[0])
+        except EnvironmentError, why:
+            errors.append((srcname, dstname, str(why)))
+    try:
+        shutil.copystat(src, dst)
+    except OSError, why:
+        errors.extend((src, dst, str(why)))
+    if errors:
+        raise shutil.Error, errors
+
 try:
-    shutil.copytree(sys.argv[1], sys.argv[2])
+    copytree(sys.argv[1], sys.argv[2])
 except shutil.Error:
    pass
 





More information about the Openembedded-commits mailing list