mirror of https://github.com/acidanthera/audk.git
77 lines
2.4 KiB
Python
77 lines
2.4 KiB
Python
## @file
|
|
# Define a dictionary structure
|
|
#
|
|
# Copyright (c) 2007 - 2014, 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 EdkLogger
|
|
from DataType import *
|
|
from Common.LongFilePathSupport import OpenLongFilePath as open
|
|
|
|
## Convert a text file to a dictionary
|
|
#
|
|
# Convert a text file to a dictionary of (name:value) pairs.
|
|
#
|
|
# @retval 0 Convert successful
|
|
# @retval 1 Open file failed
|
|
#
|
|
def ConvertTextFileToDictionary(FileName, Dictionary, CommentCharacter, KeySplitCharacter, ValueSplitFlag, ValueSplitCharacter):
|
|
try:
|
|
F = open(FileName, 'r')
|
|
Keys = []
|
|
for Line in F:
|
|
if Line.startswith(CommentCharacter):
|
|
continue
|
|
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 0
|
|
except:
|
|
EdkLogger.info('Open file failed')
|
|
return 1
|
|
|
|
## Print the dictionary
|
|
#
|
|
# Print all items of dictionary one by one
|
|
#
|
|
# @param Dict: The dictionary to be printed
|
|
#
|
|
def printDict(Dict):
|
|
if Dict != None:
|
|
KeyList = Dict.keys()
|
|
for Key in KeyList:
|
|
if Dict[Key] != '':
|
|
print Key + ' = ' + str(Dict[Key])
|
|
|
|
## Print the dictionary
|
|
#
|
|
# Print the items of dictionary which matched with input key
|
|
#
|
|
# @param list: The dictionary to be printed
|
|
# @param key: The key of the item to be printed
|
|
#
|
|
def printList(Key, List):
|
|
if type(List) == type([]):
|
|
if len(List) > 0:
|
|
if Key.find(TAB_SPLIT) != -1:
|
|
print "\n" + Key
|
|
for Item in List:
|
|
print Item
|