public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Liming Gao" <liming.gao@intel.com>
To: "Zhang, Shenglei" <shenglei.zhang@intel.com>,
	"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: "Fan, ZhijuX" <zhijux.fan@intel.com>,
	"Feng, Bob C" <bob.c.feng@intel.com>,
	Ard Biesheuvel <ard.biesheuvel@linaro.org>,
	"Leif Lindholm" <leif.lindholm@linaro.org>,
	"Kinney, Michael D" <michael.d.kinney@intel.com>
Subject: Re: [PATCH] Platform/Intel:Change the way of getting the env file content
Date: Tue, 2 Jul 2019 13:27:14 +0000	[thread overview]
Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14E4A12A8@SHSMSX104.ccr.corp.intel.com> (raw)
In-Reply-To: <20190702010220.12692-1-shenglei.zhang@intel.com>

Reviewed-by: Liming Gao <liming.gao@intel.com>

> -----Original Message-----
> From: Zhang, Shenglei
> Sent: Tuesday, July 2, 2019 9:02 AM
> To: devel@edk2.groups.io
> Cc: Fan, ZhijuX <zhijux.fan@intel.com>; Gao, Liming <liming.gao@intel.com>; Feng, Bob C <bob.c.feng@intel.com>; Ard Biesheuvel
> <ard.biesheuvel@linaro.org>; Leif Lindholm <leif.lindholm@linaro.org>; Kinney, Michael D <michael.d.kinney@intel.com>
> Subject: [PATCH] Platform/Intel:Change the way of getting the env file content
> 
> From: "Fan, Zhiju" <zhijux.fan@intel.com>
> 
> 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 <liming.gao@intel.com>
> Cc: Bob Feng <bob.c.feng@intel.com>
> Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
> Cc: Leif Lindholm <leif.lindholm@linaro.org>
> Cc: Michael D Kinney <michael.d.kinney@intel.com>
> Signed-off-by: Zhiju.Fan <zhijux.fan@intel.com>
> ---
>  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


      reply	other threads:[~2019-07-02 13:27 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-02  1:02 [PATCH] Platform/Intel:Change the way of getting the env file content Zhang, Shenglei
2019-07-02 13:27 ` Liming Gao [this message]

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=4A89E2EF3DFEDB4C8BFDE51014F606A14E4A12A8@SHSMSX104.ccr.corp.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