Attach the patch. Thank Bob and Eric. Best Regards Heng
> -----Original Message----- > From: Dong, Eric <[email protected]> > Sent: Wednesday, April 15, 2020 9:07 AM > To: Feng, Bob C <[email protected]>; Luo, Heng <[email protected]>; > [email protected] > Cc: Ni, Ray <[email protected]>; Gao, Liming <[email protected]>; Chan, > Amy <[email protected]> > Subject: RE: [PATCH] Platform/Intel/Tools: Add scripts to set > PACKAGES_PATH environment > > Thanks bob. > > > Heng, > > Please help to update the patch and send it to me, I will help to push it. > > Thanks, > Eric > > > -----Original Message----- > > From: Feng, Bob C > > Sent: Wednesday, April 15, 2020 9:05 AM > > To: Luo, Heng <[email protected]>; [email protected] > > Cc: Ni, Ray <[email protected]>; Dong, Eric <[email protected]>; Gao, > > Liming <[email protected]>; Chan, Amy <[email protected]> > > Subject: RE: [PATCH] Platform/Intel/Tools: Add scripts to set > > PACKAGES_PATH environment > > > > A typo in the Readme.md. Others are fine for me. > > **:+The old PACKAGES_PATH will be replaced by new one.s > > > > After fix that typo, > > Reviewed-by: Bob Feng <[email protected]> > > > > -----Original Message----- > > From: Luo, Heng <[email protected]> > > Sent: Friday, April 10, 2020 9:06 AM > > To: [email protected] > > Cc: Ni, Ray <[email protected]>; Dong, Eric <[email protected]>; Gao, > > Liming <[email protected]>; Feng, Bob C <[email protected]>; > > Chan, Amy <[email protected]> > > Subject: [PATCH] Platform/Intel/Tools: Add scripts to set > > PACKAGES_PATH environment > > > > Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2656 > > > > 1. Add GetPackagesPath.py, it will be used to get package pathes from > > special directories. A sub directory is a qualified package path > > when an EDKII Package can be found under it. > > 2. Add AppendPackagesPath.bat and AppendPackagesPath.sh, these scripts > > call GetPackagesPath.py to collect all package paths under specified > > directories and append them to PACKAGES_PATH environment variable. > > > > Cc: Ray Ni <[email protected]> > > Cc: Eric Dong <[email protected]> > > Cc: Liming Gao <[email protected]> > > Cc: Bob Feng <[email protected]> > > Cc: Amy Chan <[email protected]> > > Signed-off-by: Heng Luo <[email protected]> > > --- > > Platform/Intel/Tools/AppendPackagesPath/AppendPackagesPath.bat | 33 > > +++++++++++++++++++++++++++++++++ > > Platform/Intel/Tools/AppendPackagesPath/AppendPackagesPath.sh | 42 > > ++++++++++++++++++++++++++++++++++++++++++ > > Platform/Intel/Tools/AppendPackagesPath/GetPackagesPath.py | 98 > > ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > > ++++++++++++++++++++++++++++++++++++++++ > > Platform/Intel/Tools/AppendPackagesPath/Readme.md | 28 > > ++++++++++++++++++++++++++++ > > 4 files changed, 201 insertions(+) > > > > diff --git > > a/Platform/Intel/Tools/AppendPackagesPath/AppendPackagesPath.bat > > b/Platform/Intel/Tools/AppendPackagesPath/AppendPackagesPath.bat > > new file mode 100644 > > index 0000000000..da15d9c451 > > --- /dev/null > > +++ > b/Platform/Intel/Tools/AppendPackagesPath/AppendPackagesPath.bat > > @@ -0,0 +1,33 @@ > > +@REM @file+@REM Windows batch file to set PACKAGES_PATH > > environment+@REM+@REM Copyright (c) 2020, Intel Corporation. All > > environment+rights > > reserved.<BR>+@REM SPDX-License-Identifier: BSD-2-Clause- > > Patent+@REM+@REM This script calls GetPackagesPath.py to collect all > > package paths under+@REM specified directories and appends them to > > PACKAGES_PATH environment+@REM variable. A sub directory is a > > qualified package path when an EDKII+@REM Package can be found under > > it.++@echo off+@if /I "%1"=="" @goto Usage+@if /I "%1"=="-h" @goto > > Usage+@if /I "%1"=="--help" @goto Usage+@if /I "%1"=="/?" @goto > > Usage++for /f %%i in ('python %~dp0\GetPackagesPath.py %*') do (+ if > > defined PACKAGES_PATH (+ set > > "PACKAGES_PATH=%PACKAGES_PATH%;%%i"+ ) else (+ set > > "PACKAGES_PATH=%%i"+ )+)+@goto End++:Usage+@echo Usage: > > AppendPackagesPath.bat directory [directory ...]+@echo Copyright(c) 2020, > > Intel Corporation. All rights reserved.+@echo Options:+@echo --help, -h > > Print this help screen and exit++:Enddiff --git > > a/Platform/Intel/Tools/AppendPackagesPath/AppendPackagesPath.sh > > b/Platform/Intel/Tools/AppendPackagesPath/AppendPackagesPath.sh > > new file mode 100644 > > index 0000000000..599c8d073b > > --- /dev/null > > +++ b/Platform/Intel/Tools/AppendPackagesPath/AppendPackagesPath.sh > > @@ -0,0 +1,42 @@ > > +#!/bin/bash > > + > > +# > > +# Copyright (c) 2020, Intel Corporation. All rights reserved.<BR> # > > +SPDX-License-Identifier: BSD-2-Clause-Patent # # This script calls > > +GetPackagesPath.py to collect all package paths under # specified > > +directories and appends them to PACKAGES_PATH environment # variable. > > A > > +sub directory is a qualified package path when an EDKII # Package can > > +be found under it. > > +# > > +# Note: This script must be \'sourced\' so the environment can be > changed: > > +# source SetPackagesPath.sh > > +# . AppendPackagesPath.sh > > + > > +function Usage() > > +{ > > + echo "Usage: source AppendPackagesPath.sh directory [directory ...]" > > + echo "Copyright(c) 2020, Intel Corporation. All rights reserved." > > + echo "Options:" > > + echo " --help, -h Print this help screen and exit" > > + echo "Please note: This script must be \'sourced\' so the > > +environment can > > be changed." > > + echo ". AppendPackagesPath.sh" > > + echo "source AppendPackagesPath.sh" > > +} > > + > > +function SetEnv() > > +{ > > + local tool_path=$(dirname "$BASH_SOURCE") > > + local paths=$(python $tool_path/GetPackagesPath.py $@) > > + if [ "$PACKAGES_PATH" ]; then > > + PACKAGES_PATH=$PACKAGES_PATH:$paths > > + else > > + PACKAGES_PATH=$paths > > + fi > > +} > > + > > +if [ $# -eq 0 -o "$1" == "-h" -o "$1" == "--help" -o "$1" == "/?" ]; then > > + Usage > > +else > > + SetEnv $@ > > +fi > > diff --git > > a/Platform/Intel/Tools/AppendPackagesPath/GetPackagesPath.py > > b/Platform/Intel/Tools/AppendPackagesPath/GetPackagesPath.py > > new file mode 100644 > > index 0000000000..31ed44cfa3 > > --- /dev/null > > +++ b/Platform/Intel/Tools/AppendPackagesPath/GetPackagesPath.py > > @@ -0,0 +1,98 @@ > > +## @file+# Get all recursive package paths from special > > +directories.+#+# > > Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>+# > > SPDX- > > License-Identifier: BSD-2-Clause-Patent+#++import os+import > > glob+import > > argparse++#+# Globals for help information+#+__prog__ = > > 'GetPackagesPath.py'+__copyright__ = 'Copyright (c) 2020, Intel > Corporation. > > All rights reserved.'+__description__ = 'Gets all recursive package paths in > > specified directory.\n'++def __get_packages_path(root):+ """ Gets all > > recursive package paths in specified directory.+ A directory is a > > package > > path if it satisfies conditions below:+ 1. it is a directory+ > > 2. it is not > an > > EDK II Package. An EDK II Package (directory) is+ a directory that > > contains an EDK II package declaration (DEC) file.+ 3. it contains > > at least > > one first level EDK II Package.+ Note: A directory is not package > > path but > > its subdirectory could be.+ Example: edk2-platforms/Features is not > > package path+ but edk2-platforms/Features/Intel is.++ :param > > root: > > The specified directory to find package paths in it,+ the caller > > should > > ensure it is an valid directory+ :type root: String+ > > :returns: Return all > > recursive package paths+ :rtype: String list+ """++ paths = []+ > > contain_package = False+ for filename in os.listdir(root):+ # > > skip files > > whose name starts with ".", such as ".git"+ if > > filename.startswith('.'):+ > > continue+ filepath = os.path.join(root, filename)+ if > > os.path.isdir(filepath):+ if glob.glob(os.path.join(filepath, > > '*.dec')):+ > > # it is an EDK II Package+ contain_package = True+ > > else:+ > > # get package paths for subdirectory if it is not package+ > > paths = > > paths + __get_packages_path(filepath)++ if contain_package:+ # > > root > is > > a package path because it contains EDK II Package+ # in first level > > folder, > > inset it to head of list+ paths.insert(0, root)++ # return > > package paths+ > > return paths++def get_packages_path(directories):+ """ For each direcory > > in directories, gets all recursive package paths+ in this directory > > and > joins > > them into one string.++ :param directories: the list of > directory+ :type > > directories: String list+ :returns: Return string of package > paths+ :rtype: > > String+ """++ packages_path = ''+ for directory in directories:+ > > directory = os.path.abspath(directory)+ if (not > > os.path.exists(directory)) > > or (not os.path.isdir(directory)):+ continue++ if > > glob.glob(os.path.join(directory, '*.dec')):+ # it is an EDK II > > Package+ > > continue++ paths = __get_packages_path(directory)+ for path in > > paths:+ if packages_path == '':+ packages_path = > > path+ > > else:+ packages_path += os.pathsep + path+ return > > packages_path++if __name__ == '__main__':+ # Create command line > > argument parser object+ parser = argparse.ArgumentParser(+ > > prog=__prog__,+ description=__description__ + __copyright__,+ > > conflict_handler='resolve'+ )+ parser.add_argument('directory', > > nargs='+',+ help='Specified directory where package packages are > > got > > from')+ args = parser.parse_args()+ > > print(get_packages_path(args.directory))diff --git > > a/Platform/Intel/Tools/AppendPackagesPath/Readme.md > > b/Platform/Intel/Tools/AppendPackagesPath/Readme.md > > new file mode 100644 > > index 0000000000..66aebee7cf > > --- /dev/null > > +++ b/Platform/Intel/Tools/AppendPackagesPath/Readme.md > > @@ -0,0 +1,28 @@ > > ++# How to use AppendPackagesPath++## Overview++This script calls > > GetPackagesPath.py to collect all package paths under specified > > directories and appends them to PACKAGES_PATH environment variable. A > > sub directory is a qualified package path when an EDKII Package can be > > found under it.++**Notice**:+The old PACKAGES_PATH will be replaced by > > new one.s++## The usage of the tool++### Windows++Usage: > > AppendPackagesPath.bat directory [directory ...]+Copyright(c) 2020, Intel > > Corporation. All rights reserved.+Options:+ --help, -h Print this help > screen > > and exit++### Ubuntu++Usage: source AppendPackagesPath.sh directory > > [directory ...]+Copyright(c) 2020, Intel Corporation. All rights > > reserved.+Options:+ --help, -h Print this help screen and exit+Please > note: > > This script must be \'sourced\' so the environment can be changed.+. > > AppendPackagesPath.sh+source AppendPackagesPath.sh-- > > 2.24.0.windows.2 > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#57389): https://edk2.groups.io/g/devel/message/57389 Mute This Topic: https://groups.io/mt/72911539/21656 Group Owner: [email protected] Unsubscribe: https://edk2.groups.io/g/devel/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
0001-Platform-Intel-Tools-Add-scripts-to-set-PACKAGES_PAT.patch
Description: 0001-Platform-Intel-Tools-Add-scripts-to-set-PACKAGES_PAT.patch
