[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 18 11:15:15 UTC 2012
Module: openembedded-core.git
Branch: master
Commit: 08542718504d2b53d140a9e6be73c84cc0e047e0
URL: http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=08542718504d2b53d140a9e6be73c84cc0e047e0
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