Skip to content

Commit

Permalink
BaseTools:Add the Judgment Method of "--exclude"
Browse files Browse the repository at this point in the history
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=1944

--exclude cannot be used under certain circumstances
1.The value of the parameter USES an absolute path
2.The value of Exclude parameters is based on the value
  of the Path parameter
Neither of these approaches currently works

This patch is going to fix that issue.

Cc: Liming Gao <[email protected]>
Cc: Bob Feng <[email protected]>
Signed-off-by: Zhiju.Fan <[email protected]>
Reviewed-by: Liming Gao <[email protected]>
  • Loading branch information
zhijufan authored and lgao4 committed Aug 8, 2019
1 parent 96603b4 commit 35ec418
Showing 1 changed file with 17 additions and 1 deletion.
18 changes: 17 additions & 1 deletion BaseTools/Scripts/FormatDosFiles.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@

__prog__ = 'FormatDosFiles'
__version__ = '%s Version %s' % (__prog__, '0.10 ')
__copyright__ = 'Copyright (c) 2018, Intel Corporation. All rights reserved.'
__copyright__ = 'Copyright (c) 2018-2019, Intel Corporation. All rights reserved.'
__description__ = 'Convert source files to meet the EDKII C Coding Standards Specification.\n'
DEFAULT_EXT_LIST = ['.h', '.c', '.nasm', '.nasmb', '.asm', '.S', '.inf', '.dec', '.dsc', '.fdf', '.uni', '.asl', '.aslc', '.vfr', '.idf', '.txt', '.bat', '.py']

Expand All @@ -46,10 +46,26 @@ def FormatFile(FilePath, Args):
def FormatFilesInDir(DirPath, ExtList, Args):

FileList = []
ExcludeDir = DirPath
for DirPath, DirNames, FileNames in os.walk(DirPath):
if Args.Exclude:
DirNames[:] = [d for d in DirNames if d not in Args.Exclude]
FileNames[:] = [f for f in FileNames if f not in Args.Exclude]
Continue = False
for Path in Args.Exclude:
if not os.path.isdir(Path) and not os.path.isfile(Path):
Path = os.path.join(ExcludeDir, Path)
if os.path.isdir(Path) and Path.endswith(DirPath):
DirNames[:] = []
Continue = True
elif os.path.isfile(Path):
FilePaths = FileNames
for ItemPath in FilePaths:
FilePath = os.path.join(DirPath, ItemPath)
if Path.endswith(FilePath):
FileNames.remove(ItemPath)
if Continue:
continue
for FileName in [f for f in FileNames if any(f.endswith(ext) for ext in ExtList)]:
FileList.append(os.path.join(DirPath, FileName))
for File in FileList:
Expand Down

0 comments on commit 35ec418

Please sign in to comment.