Re: [edk2-devel] [PATCH] [edk2-stable201908] BaseTools: Support long file path in windows for misc functions

2019-08-23 Thread Bob Feng
Pushed at 6dd9aa40193cc905cda5f97d07e30ffbd5299439

-Original Message-
From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of Bob Feng
Sent: Thursday, August 22, 2019 11:14 AM
To: devel@edk2.groups.io; Shi, Steven 
Cc: Gao, Liming 
Subject: Re: [edk2-devel] [PATCH] [edk2-stable201908] BaseTools: Support long 
file path in windows for misc functions

Patch looks good.

Reviewed-by: Bob Feng 


-Original Message-
From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of Steven Shi
Sent: Thursday, August 22, 2019 10:44 AM
To: devel@edk2.groups.io
Cc: Gao, Liming ; Feng, Bob C ; 
Shi, Steven 
Subject: [edk2-devel] [PATCH] [edk2-stable201908] BaseTools: Support long file 
path in windows for misc functions

From: "Shi, Steven" 

BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2103

Current CopyFileOnChange() and SaveFileOnChange() in 
BaseTools\Source\Python\Common\Misc.py don't use the dedicated long file path 
API to handle the file path strings and cannot support the long file path copy 
and save in windows. This patch enhances them to support the long file path 
copy and save correctly.

Cc: Liming Gao 
Cc: Bob Feng 
Signed-off-by: Steven Shi 
---
 BaseTools/Source/Python/Common/Misc.py | 12 +++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/BaseTools/Source/Python/Common/Misc.py 
b/BaseTools/Source/Python/Common/Misc.py
index 4799635cc4..15ae6a9e40 100755
--- a/BaseTools/Source/Python/Common/Misc.py
+++ b/BaseTools/Source/Python/Common/Misc.py
@@ -34,6 +34,8 @@ from Common.BuildToolError import *  from 
CommonDataClass.DataClass import *  from Common.Parsing import 
GetSplitValueList  from Common.LongFilePathSupport import OpenLongFilePath as 
open
+from Common.LongFilePathSupport import CopyLongFilePath as CopyLong 
+from Common.LongFilePathSupport import LongFilePath as LongFilePath
 from Common.MultipleWorkspace import MultipleWorkspace as mws  from 
CommonDataClass.Exceptions import BadExpression  from Common.caching import 
cached_property @@ -450,6 +452,9 @@ def RemoveDirectory(Directory, 
Recursively=False):
 #
 def SaveFileOnChange(File, Content, IsBinaryFile=True, FileLock=None):
 
+# Convert to long file path format
+File = LongFilePath(File)
+
 if os.path.exists(File):
 if IsBinaryFile:
 try:
@@ -530,6 +535,11 @@ def SaveFileOnChange(File, Content, IsBinaryFile=True, 
FileLock=None):
 #   @retval False No copy really happen
 #
 def CopyFileOnChange(SrcFile, Dst, FileLock=None):
+
+# Convert to long file path format
+SrcFile = LongFilePath(SrcFile)
+Dst = LongFilePath(Dst)
+
 if not os.path.exists(SrcFile):
 return False
 
@@ -561,7 +571,7 @@ def CopyFileOnChange(SrcFile, Dst, FileLock=None):
 # copy the src to a temp file in the dst same folder firstly, then
 # replace or rename the temp file to the destination file.
 with tempfile.NamedTemporaryFile(dir=DirName, delete=False) as tf:
-shutil.copy(SrcFile, tf.name)
+CopyLong(SrcFile, tf.name)
 tempname = tf.name
 try:
 if hasattr(os, 'replace'):
--
2.17.1








-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#46257): https://edk2.groups.io/g/devel/message/46257
Mute This Topic: https://groups.io/mt/32986119/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



Re: [edk2-devel] [PATCH] [edk2-stable201908] BaseTools: Support long file path in windows for misc functions

2019-08-21 Thread Bob Feng
Patch looks good.

Reviewed-by: Bob Feng 


-Original Message-
From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of Steven Shi
Sent: Thursday, August 22, 2019 10:44 AM
To: devel@edk2.groups.io
Cc: Gao, Liming ; Feng, Bob C ; 
Shi, Steven 
Subject: [edk2-devel] [PATCH] [edk2-stable201908] BaseTools: Support long file 
path in windows for misc functions

From: "Shi, Steven" 

BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2103

Current CopyFileOnChange() and SaveFileOnChange() in 
BaseTools\Source\Python\Common\Misc.py don't use the dedicated long file path 
API to handle the file path strings and cannot support the long file path copy 
and save in windows. This patch enhances them to support the long file path 
copy and save correctly.

Cc: Liming Gao 
Cc: Bob Feng 
Signed-off-by: Steven Shi 
---
 BaseTools/Source/Python/Common/Misc.py | 12 +++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/BaseTools/Source/Python/Common/Misc.py 
b/BaseTools/Source/Python/Common/Misc.py
index 4799635cc4..15ae6a9e40 100755
--- a/BaseTools/Source/Python/Common/Misc.py
+++ b/BaseTools/Source/Python/Common/Misc.py
@@ -34,6 +34,8 @@ from Common.BuildToolError import *  from 
CommonDataClass.DataClass import *  from Common.Parsing import 
GetSplitValueList  from Common.LongFilePathSupport import OpenLongFilePath as 
open
+from Common.LongFilePathSupport import CopyLongFilePath as CopyLong 
+from Common.LongFilePathSupport import LongFilePath as LongFilePath
 from Common.MultipleWorkspace import MultipleWorkspace as mws  from 
CommonDataClass.Exceptions import BadExpression  from Common.caching import 
cached_property @@ -450,6 +452,9 @@ def RemoveDirectory(Directory, 
Recursively=False):
 #
 def SaveFileOnChange(File, Content, IsBinaryFile=True, FileLock=None):
 
+# Convert to long file path format
+File = LongFilePath(File)
+
 if os.path.exists(File):
 if IsBinaryFile:
 try:
@@ -530,6 +535,11 @@ def SaveFileOnChange(File, Content, IsBinaryFile=True, 
FileLock=None):
 #   @retval False No copy really happen
 #
 def CopyFileOnChange(SrcFile, Dst, FileLock=None):
+
+# Convert to long file path format
+SrcFile = LongFilePath(SrcFile)
+Dst = LongFilePath(Dst)
+
 if not os.path.exists(SrcFile):
 return False
 
@@ -561,7 +571,7 @@ def CopyFileOnChange(SrcFile, Dst, FileLock=None):
 # copy the src to a temp file in the dst same folder firstly, then
 # replace or rename the temp file to the destination file.
 with tempfile.NamedTemporaryFile(dir=DirName, delete=False) as tf:
-shutil.copy(SrcFile, tf.name)
+CopyLong(SrcFile, tf.name)
 tempname = tf.name
 try:
 if hasattr(os, 'replace'):
--
2.17.1





-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#46195): https://edk2.groups.io/g/devel/message/46195
Mute This Topic: https://groups.io/mt/32986119/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-



[edk2-devel] [PATCH] [edk2-stable201908] BaseTools: Support long file path in windows for misc functions

2019-08-21 Thread Steven Shi
From: "Shi, Steven" 

BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2103

Current CopyFileOnChange() and SaveFileOnChange() in
BaseTools\Source\Python\Common\Misc.py don't use the dedicated
long file path API to handle the file path strings and cannot
support the long file path copy and save in windows. This patch
enhances them to support the long file path copy and save
correctly.

Cc: Liming Gao 
Cc: Bob Feng 
Signed-off-by: Steven Shi 
---
 BaseTools/Source/Python/Common/Misc.py | 12 +++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/BaseTools/Source/Python/Common/Misc.py 
b/BaseTools/Source/Python/Common/Misc.py
index 4799635cc4..15ae6a9e40 100755
--- a/BaseTools/Source/Python/Common/Misc.py
+++ b/BaseTools/Source/Python/Common/Misc.py
@@ -34,6 +34,8 @@ from Common.BuildToolError import *
 from CommonDataClass.DataClass import *
 from Common.Parsing import GetSplitValueList
 from Common.LongFilePathSupport import OpenLongFilePath as open
+from Common.LongFilePathSupport import CopyLongFilePath as CopyLong
+from Common.LongFilePathSupport import LongFilePath as LongFilePath
 from Common.MultipleWorkspace import MultipleWorkspace as mws
 from CommonDataClass.Exceptions import BadExpression
 from Common.caching import cached_property
@@ -450,6 +452,9 @@ def RemoveDirectory(Directory, Recursively=False):
 #
 def SaveFileOnChange(File, Content, IsBinaryFile=True, FileLock=None):
 
+# Convert to long file path format
+File = LongFilePath(File)
+
 if os.path.exists(File):
 if IsBinaryFile:
 try:
@@ -530,6 +535,11 @@ def SaveFileOnChange(File, Content, IsBinaryFile=True, 
FileLock=None):
 #   @retval False No copy really happen
 #
 def CopyFileOnChange(SrcFile, Dst, FileLock=None):
+
+# Convert to long file path format
+SrcFile = LongFilePath(SrcFile)
+Dst = LongFilePath(Dst)
+
 if not os.path.exists(SrcFile):
 return False
 
@@ -561,7 +571,7 @@ def CopyFileOnChange(SrcFile, Dst, FileLock=None):
 # copy the src to a temp file in the dst same folder firstly, then
 # replace or rename the temp file to the destination file.
 with tempfile.NamedTemporaryFile(dir=DirName, delete=False) as tf:
-shutil.copy(SrcFile, tf.name)
+CopyLong(SrcFile, tf.name)
 tempname = tf.name
 try:
 if hasattr(os, 'replace'):
-- 
2.17.1


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#46194): https://edk2.groups.io/g/devel/message/46194
Mute This Topic: https://groups.io/mt/32986119/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-