From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: intel.com, ip: 192.55.52.88, mailfrom: shenglei.zhang@intel.com) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by groups.io with SMTP; Mon, 01 Jul 2019 18:02:26 -0700 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 01 Jul 2019 18:02:25 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.63,441,1557212400"; d="scan'208";a="168632566" Received: from shenglei-dev.ccr.corp.intel.com ([10.239.158.52]) by orsmga006.jf.intel.com with ESMTP; 01 Jul 2019 18:02:24 -0700 From: "Zhang, Shenglei" To: devel@edk2.groups.io Cc: "Fan, Zhiju" , Liming Gao , Bob Feng , Ard Biesheuvel , Leif Lindholm , Michael D Kinney Subject: [PATCH] Platform/Intel:Change the way of getting the env file content Date: Tue, 2 Jul 2019 09:02:20 +0800 Message-Id: <20190702010220.12692-1-shenglei.zhang@intel.com> X-Mailer: git-send-email 2.18.0.windows.1 From: "Fan, Zhiju" The env file content can not be retrieved by using the original method, so we change the way to read the content. And we change the env file to original format. This patch is going to fix the issue. Cc: Liming Gao Cc: Bob Feng Cc: Ard Biesheuvel Cc: Leif Lindholm Cc: Michael D Kinney Signed-off-by: Zhiju.Fan --- Platform/Intel/Tools/GenBiosId/BiosId.env | 1 - Platform/Intel/Tools/GenBiosId/GenBiosId.py | 33 ++++++++++++--------- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/Platform/Intel/Tools/GenBiosId/BiosId.env b/Platform/Intel/Tools/GenBiosId/BiosId.env index dfdeeb3107..614a66ddb8 100644 --- a/Platform/Intel/Tools/GenBiosId/BiosId.env +++ b/Platform/Intel/Tools/GenBiosId/BiosId.env @@ -18,7 +18,6 @@ # SPDX-License-Identifier: BSD-2-Clause-Patent # ## -[config] BOARD_ID = KBLRVP3 BOARD_REV = 1 BOARD_EXT = 000 diff --git a/Platform/Intel/Tools/GenBiosId/GenBiosId.py b/Platform/Intel/Tools/GenBiosId/GenBiosId.py index 7e9d115f05..31abb24d31 100644 --- a/Platform/Intel/Tools/GenBiosId/GenBiosId.py +++ b/Platform/Intel/Tools/GenBiosId/GenBiosId.py @@ -16,7 +16,7 @@ import struct import datetime import argparse import platform - +from collections import OrderedDict try: from configparser import ConfigParser except: @@ -24,8 +24,6 @@ except: # Config message _BIOS_Signature = "$IBIOSI$" -_SectionKeyName = '__name__' -_SectionName = 'config' _ConfigItem = { "BOARD_ID": {'Value': '', 'Length': 7}, @@ -121,20 +119,26 @@ def CheckOptions(Options): EdkLogger("GenBiosId", FILE_NOT_FOUND, ExtraData="Input file not found") return InputFile, OutputFile, OutputTextFile +# Read input file and get config +def ReadInputFile(InputFile): + InputDict = OrderedDict() + with open(InputFile) as File: + FileLines = File.readlines() + for Line in FileLines: + if Line.strip().startswith('#'): + continue + if '=' in Line: + Key, Value = Line.split('=') + InputDict[Key.strip()] = Value.strip() + return InputDict + # Parse the input file and extract the information -def ParserInputFile(InputFile): - cf = ConfigParser() - cf.optionxform = str - cf.read(InputFile) - if _SectionName not in cf._sections: - EdkLogger("GenBiosId", FORMAT_NOT_SUPPORTED, ExtraData=_ConfigSectionNotDefine) - for Item in cf._sections[_SectionName]: - if Item == _SectionKeyName: - continue +def ParserInputFile(InputDict): + for Item in InputDict: if Item not in _ConfigItem: EdkLogger("GenBiosId", FORMAT_INVALID, ExtraData=_ConfigItemInvalid % Item) - _ConfigItem[Item]['Value'] = cf._sections[_SectionName][Item] + _ConfigItem[Item]['Value'] = InputDict[Item] if len(_ConfigItem[Item]['Value']) != _ConfigItem[Item]['Length']: EdkLogger("GenBiosId", FORMAT_INVALID, ExtraData=_ConfigLenInvalid % Item) for Item in _ConfigItem: @@ -168,7 +172,8 @@ def PrintOutputFile(OutputFile, OutputTextFile, Id_Str): def Main(): Options = MyOptionParser() InputFile, OutputFile, OutputTextFile = CheckOptions(Options) - Id_Str = ParserInputFile(InputFile) + InputDict = ReadInputFile(InputFile) + Id_Str = ParserInputFile(InputDict) PrintOutputFile(OutputFile, OutputTextFile, Id_Str) return 0 -- 2.18.0.windows.1