[edk2-devel] [Patch] BaseTools: use shutil.copyfile instead shutil.copy2

Bob Feng bob.c.feng at intel.com
Wed Jul 28 11:45:23 UTC 2021


In Split tool, the copy file actions only need to
copy file content but not need to copy file metadata.

copy2() copies the file metadata that causes split
unit test failed under edk2-basetools CI environment.

So this patch changes the call of copy2() to copyfile().

Signed-off-by: Bob Feng <bob.c.feng at intel.com>
Cc: Liming Gao <gaoliming at byosoft.com.cn>
Cc: Yuwei Chen <yuwei.chen at intel.com>
---
 BaseTools/Source/Python/Split/Split.py | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/BaseTools/Source/Python/Split/Split.py b/BaseTools/Source/Python/Split/Split.py
index e223a72a94..e70d5c22c4 100644
--- a/BaseTools/Source/Python/Split/Split.py
+++ b/BaseTools/Source/Python/Split/Split.py
@@ -146,18 +146,18 @@ def splitFile(inputfile, position, outputdir=None, outputfile1=None, outputfile2
         logger.error("Can't make dir: %s" % outputfolder)
         raise(e)
 
     if position <= 0:
         if outputfile2 != os.path.abspath(inputfile):
-            shutil.copy2(os.path.abspath(inputfile), outputfile2)
+            shutil.copyfile(os.path.abspath(inputfile), outputfile2)
         with open(outputfile1, "wb") as fout:
             fout.write(b'')
     else:
         inputfilesize = getFileSize(inputfile)
         if position >= inputfilesize:
             if outputfile1 != os.path.abspath(inputfile):
-                shutil.copy2(os.path.abspath(inputfile), outputfile1)
+                shutil.copyfile(os.path.abspath(inputfile), outputfile1)
             with open(outputfile2, "wb") as fout:
                 fout.write(b'')
         else:
             try:
                 tempdir = tempfile.mkdtemp()
@@ -169,12 +169,12 @@ def splitFile(inputfile, position, outputdir=None, outputfile1=None, outputfile2
                         fout1.write(content1)
 
                     content2 = fin.read(inputfilesize - position)
                     with open(tempfile2, "wb") as fout2:
                         fout2.write(content2)
-                shutil.copy2(tempfile1, outputfile1)
-                shutil.copy2(tempfile2, outputfile2)
+                shutil.copyfile(tempfile1, outputfile1)
+                shutil.copyfile(tempfile2, outputfile2)
             except Exception as e:
                 logger.error("Split file failed")
                 raise(e)
             finally:
                 if os.path.exists(tempdir):
-- 
2.29.1.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#78282): https://edk2.groups.io/g/devel/message/78282
Mute This Topic: https://groups.io/mt/84503147/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-






More information about the edk2-devel-archive mailing list