public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Jaben Carsey <jaben.carsey@intel.com>
To: edk2-devel@lists.01.org
Cc: Liming Gao <liming.gao@intel.com>, Yonghong Zhu <yonghong.zhu@intel.com>
Subject: [PATCH v2 1/1] BaseTools: remove EdkIIWorkspace as its not used.
Date: Thu, 19 Apr 2018 08:12:44 -0700	[thread overview]
Message-ID: <ef6c6eb9e7c9c17e3f34beaec47d1f85f1af0e75.1524150605.git.jaben.carsey@intel.com> (raw)
In-Reply-To: <cover.1524150605.git.jaben.carsey@intel.com>

v2 - update makefile too.

Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
---
 BaseTools/Source/Python/Common/EdkIIWorkspace.py | 317 --------------------
 BaseTools/Source/Python/Makefile                 |   1 -
 2 files changed, 318 deletions(-)

diff --git a/BaseTools/Source/Python/Common/EdkIIWorkspace.py b/BaseTools/Source/Python/Common/EdkIIWorkspace.py
deleted file mode 100644
index d75b9f8025b3..000000000000
--- a/BaseTools/Source/Python/Common/EdkIIWorkspace.py
+++ /dev/null
@@ -1,317 +0,0 @@
-## @file
-# This is the base class for applications that operate on an EDK II Workspace 
-#
-# Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
-# This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution.  The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-
-##
-# Import Modules
-#
-import Common.LongFilePathOs as os, sys, time
-from DataType import *
-from Common.LongFilePathSupport import OpenLongFilePath as open
-from Common.MultipleWorkspace import MultipleWorkspace as mws
-
-## EdkIIWorkspace
-#
-# Collect WorkspaceDir from the environment, the Verbose command line flag, and detect an icon bitmap file.
-# 
-# @var StartTime:       Time of build system starting
-# @var PrintRunTime:    Printable time of build system running
-# @var PrintRunStatus:  Printable status of build system running
-# @var RunStatus:       Status of build system running
-#
-class EdkIIWorkspace:
-    def __init__(self):
-        self.StartTime = time.time()
-        self.PrintRunTime = False
-        self.PrintRunStatus = False
-        self.RunStatus = ''
-        
-        #
-        # Check environment valiable 'WORKSPACE'
-        #
-        if os.environ.get('WORKSPACE') is None:
-            print 'ERROR: WORKSPACE not defined.    Please run EdkSetup from the EDK II install directory.'
-            return False
-
-        self.CurrentWorkingDir = os.getcwd()
-        
-        self.WorkspaceDir = os.path.realpath(os.environ.get('WORKSPACE'))
-        (Drive, Path) = os.path.splitdrive(self.WorkspaceDir)
-        if Drive == '':
-            (Drive, CwdPath) = os.path.splitdrive(self.CurrentWorkingDir)
-            if Drive != '':
-                self.WorkspaceDir = Drive + Path
-        else:
-            self.WorkspaceDir = Drive.upper() + Path
-
-        self.WorkspaceRelativeWorkingDir = self.WorkspaceRelativePath (self.CurrentWorkingDir)
-            
-        try:
-            #
-            # Load TianoCoreOrgLogo, used for GUI tool
-            #
-            self.Icon = wx.Icon(self.WorkspaceFile('tools/Python/TianoCoreOrgLogo.gif'), wx.BITMAP_TYPE_GIF)
-        except:
-            self.Icon = None
-            
-        self.Verbose = False
-        for Arg in sys.argv:
-            if Arg.lower() == '-v':
-                self.Verbose = True
-    
-    ## Close build system
-    #
-    # Close build system and print running time and status
-    #
-    def Close(self):
-        if self.PrintRunTime:
-            Seconds = int(time.time() - self.StartTime)
-            if Seconds < 60:
-                print 'Run Time: %d seconds' % (Seconds)
-            else:
-                Minutes = Seconds / 60
-                Seconds = Seconds % 60
-                if Minutes < 60:
-                    print 'Run Time: %d minutes %d seconds' % (Minutes, Seconds)
-                else:
-                    Hours = Minutes / 60
-                    Minutes = Minutes % 60
-                    print 'Run Time: %d hours %d minutes %d seconds' % (Hours, Minutes, Seconds)
-        if self.RunStatus != '':
-            print self.RunStatus
-
-    ## Convert to a workspace relative filename
-    #
-    # Convert a full path filename to a workspace relative filename.
-    #
-    # @param FileName:  The filename to be Converted
-    #
-    # @retval None    Workspace dir is not found in the full path
-    # @retval string  The relative filename
-    #
-    def WorkspaceRelativePath(self, FileName):
-        FileName = os.path.realpath(FileName)
-        if FileName.find(self.WorkspaceDir) != 0:
-            return None
-        return FileName.replace (self.WorkspaceDir, '').strip('\\').strip('/')
-
-    ## Convert to a full path filename
-    #
-    # Convert a workspace relative filename to a full path filename.
-    #
-    # @param FileName:  The filename to be Converted
-    #
-    # @retval string  The full path filename
-    #
-    def WorkspaceFile(self, FileName):
-        return os.path.realpath(mws.join(self.WorkspaceDir,FileName))
-
-    ## Convert to a real path filename
-    #
-    # Convert ${WORKSPACE} to real path
-    #
-    # @param FileName:  The filename to be Converted
-    #
-    # @retval string  The full path filename
-    #
-    def WorkspacePathConvert(self, FileName):
-        return os.path.realpath(FileName.replace(TAB_WORKSPACE, self.WorkspaceDir))
-
-    ## Convert XML into a DOM
-    #
-    # Parse an XML file into a DOM and return the DOM.
-    #
-    # @param FileName:  The filename to be parsed
-    #
-    # @retval XmlParseFile (self.WorkspaceFile(FileName))
-    #
-    def XmlParseFile (self, FileName):
-        if self.Verbose:
-            print FileName
-        return XmlParseFile (self.WorkspaceFile(FileName))
-
-    ## Convert a XML section
-    #
-    # Parse a section of an XML file into a DOM(Document Object Model) and return the DOM.
-    #
-    # @param FileName:    The filename to be parsed
-    # @param SectionTag:  The tag name of the section to be parsed
-    #
-    # @retval XmlParseFileSection (self.WorkspaceFile(FileName), SectionTag)
-    #
-    def XmlParseFileSection (self, FileName, SectionTag):
-        if self.Verbose:
-            print FileName
-        return XmlParseFileSection (self.WorkspaceFile(FileName), SectionTag)
-
-    ## Save a XML file
-    #
-    # Save a DOM(Document Object Model) into an XML file.
-    #
-    # @param Dom:       The Dom to be saved
-    # @param FileName:  The filename
-    #
-    # @retval XmlSaveFile (Dom, self.WorkspaceFile(FileName))
-    #
-    def XmlSaveFile (self, Dom, FileName):
-        if self.Verbose:
-            print FileName
-        return XmlSaveFile (Dom, self.WorkspaceFile(FileName))
-
-    ## Convert Text File To Dictionary
-    #
-    # Convert a workspace relative text file to a dictionary of (name:value) pairs.
-    #
-    # @param FileName:             Text filename
-    # @param Dictionary:           Dictionary to store data
-    # @param CommentCharacter:     Comment char, be used to ignore comment content
-    # @param KeySplitCharacter:    Key split char, between key name and key value. Key1 = Value1, '=' is the key split char
-    # @param ValueSplitFlag:       Value split flag, be used to decide if has multiple values
-    # @param ValueSplitCharacter:  Value split char, be used to split multiple values. Key1 = Value1|Value2, '|' is the value split char
-    #
-    # @retval ConvertTextFileToDictionary(self.WorkspaceFile(FileName), Dictionary, CommentCharacter, KeySplitCharacter, ValueSplitFlag, ValueSplitCharacter)
-    #
-    def ConvertTextFileToDictionary(self, FileName, Dictionary, CommentCharacter, KeySplitCharacter, ValueSplitFlag, ValueSplitCharacter):
-        if self.Verbose:
-            print FileName
-        return ConvertTextFileToDictionary(self.WorkspaceFile(FileName), Dictionary, CommentCharacter, KeySplitCharacter, ValueSplitFlag, ValueSplitCharacter)
-
-    ## Convert Dictionary To Text File
-    #
-    # Convert a dictionary of (name:value) pairs to a workspace relative text file.
-    #
-    # @param FileName:             Text filename
-    # @param Dictionary:           Dictionary to store data
-    # @param CommentCharacter:     Comment char, be used to ignore comment content
-    # @param KeySplitCharacter:    Key split char, between key name and key value. Key1 = Value1, '=' is the key split char
-    # @param ValueSplitFlag:       Value split flag, be used to decide if has multiple values
-    # @param ValueSplitCharacter:  Value split char, be used to split multiple values. Key1 = Value1|Value2, '|' is the value split char
-    #
-    # @retval ConvertDictionaryToTextFile(self.WorkspaceFile(FileName), Dictionary, CommentCharacter, KeySplitCharacter, ValueSplitFlag, ValueSplitCharacter)
-    #
-    def ConvertDictionaryToTextFile(self, FileName, Dictionary, CommentCharacter, KeySplitCharacter, ValueSplitFlag, ValueSplitCharacter):
-        if self.Verbose:
-            print FileName
-        return ConvertDictionaryToTextFile(self.WorkspaceFile(FileName), Dictionary, CommentCharacter, KeySplitCharacter, ValueSplitFlag, ValueSplitCharacter)
-
-## Convert Text File To Dictionary
-#
-# Convert a text file to a dictionary of (name:value) pairs.
-#
-# @param FileName:             Text filename
-# @param Dictionary:           Dictionary to store data
-# @param CommentCharacter:     Comment char, be used to ignore comment content
-# @param KeySplitCharacter:    Key split char, between key name and key value. Key1 = Value1, '=' is the key split char
-# @param ValueSplitFlag:       Value split flag, be used to decide if has multiple values
-# @param ValueSplitCharacter:  Value split char, be used to split multiple values. Key1 = Value1|Value2, '|' is the value split char
-#
-# @retval True  Convert successfully
-# @retval False Open file failed
-#
-def ConvertTextFileToDictionary(FileName, Dictionary, CommentCharacter, KeySplitCharacter, ValueSplitFlag, ValueSplitCharacter):
-    try:
-        F = open(FileName, 'r')
-    except:
-        return False
-    Keys = []
-    for Line in F:
-        LineList = Line.split(KeySplitCharacter, 1)
-        if len(LineList) >= 2:
-            Key = LineList[0].split()
-            if len(Key) == 1 and Key[0][0] != CommentCharacter and Key[0] not in Keys:
-                if ValueSplitFlag:
-                    Dictionary[Key[0]] = LineList[1].replace('\\', '/').split(ValueSplitCharacter)
-                else:
-                    Dictionary[Key[0]] = LineList[1].strip().replace('\\', '/')
-                Keys += [Key[0]]
-    F.close()
-    return True
-
-## Convert Dictionary To Text File
-#
-# Convert a dictionary of (name:value) pairs to a text file.
-#
-# @param FileName:             Text filename
-# @param Dictionary:           Dictionary to store data
-# @param CommentCharacter:     Comment char, be used to ignore comment content
-# @param KeySplitCharacter:    Key split char, between key name and key value. Key1 = Value1, '=' is the key split char
-# @param ValueSplitFlag:       Value split flag, be used to decide if has multiple values
-# @param ValueSplitCharacter:  Value split char, be used to split multiple values. Key1 = Value1|Value2, '|' is the value split char
-#
-# @retval True  Convert successfully
-# @retval False Open file failed
-#
-def ConvertDictionaryToTextFile(FileName, Dictionary, CommentCharacter, KeySplitCharacter, ValueSplitFlag, ValueSplitCharacter):
-    try:
-        F = open(FileName, 'r')
-        Lines = []
-        Lines = F.readlines()
-        F.close()
-    except:
-        Lines = []
-    Keys = Dictionary.keys()
-    MaxLength = max(map(len,Keys))
-    Index = 0
-    for Line in Lines:
-        LineList = Line.split(KeySplitCharacter, 1)
-        if len(LineList) >= 2:
-            Key = LineList[0].split()
-            if len(Key) == 1 and Key[0][0] != CommentCharacter and Key[0] in Dictionary:
-                if ValueSplitFlag:
-                    Line = '%-*s %c %s\n' % (MaxLength, Key[0], KeySplitCharacter, ' '.join(Dictionary[Key[0]]))
-                else:
-                    Line = '%-*s %c %s\n' % (MaxLength, Key[0], KeySplitCharacter, Dictionary[Key[0]])
-                Lines.pop(Index)
-                if Key[0] in Keys:
-                    Lines.insert(Index, Line)
-                    Keys.remove(Key[0])
-        Index += 1
-    for RemainingKey in Keys:
-        if ValueSplitFlag:
-            Line = '%-*s %c %s\n' % (MaxLength, RemainingKey, KeySplitCharacter, ' '.join(Dictionary[RemainingKey]))
-        else:
-            Line = '%-*s %c %s\n' % (MaxLength, RemainingKey, KeySplitCharacter, Dictionary[RemainingKey])
-        Lines.append(Line)
-    try:
-        F = open(FileName, 'w')
-    except:
-        return False
-    F.writelines(Lines)
-    F.close()
-    return True
-
-## Create a new directory
-#
-# @param Directory:           Directory to be created
-#
-def CreateDirectory(Directory):
-    if not os.access(Directory, os.F_OK):
-        os.makedirs (Directory)
-
-## Create a new file
-#
-# @param Directory:  Directory to be created
-# @param FileName:   Filename to be created
-# @param Mode:       The mode of open file, defautl is 'w'
-#
-def CreateFile(Directory, FileName, Mode='w'):
-    CreateDirectory (Directory)
-    return open(os.path.join(Directory, FileName), Mode)
-
-##
-#
-# This acts like the main() function for the script, unless it is 'import'ed into another
-# script.
-#
-if __name__ == '__main__':
-    # Nothing to do here. Could do some unit tests
-    pass
\ No newline at end of file
diff --git a/BaseTools/Source/Python/Makefile b/BaseTools/Source/Python/Makefile
index a51207d3d831..4fda6d7e0c84 100644
--- a/BaseTools/Source/Python/Makefile
+++ b/BaseTools/Source/Python/Makefile
@@ -37,7 +37,6 @@ APPLICATIONS=$(BIN_DIR)\build.exe $(BIN_DIR)\GenFds.exe $(BIN_DIR)\Trim.exe $(BI
 COMMON_PYTHON=$(BASE_TOOLS_PATH)\Source\Python\Common\BuildToolError.py \
               $(BASE_TOOLS_PATH)\Source\Python\Common\Database.py \
               $(BASE_TOOLS_PATH)\Source\Python\Common\DataType.py \
-              $(BASE_TOOLS_PATH)\Source\Python\Common\EdkIIWorkspace.py \
               $(BASE_TOOLS_PATH)\Source\Python\Common\EdkLogger.py \
               $(BASE_TOOLS_PATH)\Source\Python\Common\Expression.py \
               $(BASE_TOOLS_PATH)\Source\Python\Common\GlobalData.py \
-- 
2.16.2.windows.1



       reply	other threads:[~2018-04-19 15:12 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <cover.1524150605.git.jaben.carsey@intel.com>
2018-04-19 15:12 ` Jaben Carsey [this message]
     [not found]   ` <cover.1524150680.git.jaben.carsey@intel.com>
2018-04-19 15:12     ` [PATCH v2 1/1] BaseTools: remove PlatformClass as it's not used Jaben Carsey
2018-04-23  3:13       ` Zhu, Yonghong
2018-04-23  3:13   ` [PATCH v2 1/1] BaseTools: remove EdkIIWorkspace as its " Zhu, Yonghong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ef6c6eb9e7c9c17e3f34beaec47d1f85f1af0e75.1524150605.git.jaben.carsey@intel.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox