From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=2a00:1450:4010:c07::22c; helo=mail-lf0-x22c.google.com; envelope-from=arvindprasanna@gmail.com; receiver=edk2-devel@lists.01.org Received: from mail-lf0-x22c.google.com (mail-lf0-x22c.google.com [IPv6:2a00:1450:4010:c07::22c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id E26AB21ED1C77 for ; Tue, 13 Mar 2018 09:03:09 -0700 (PDT) Received: by mail-lf0-x22c.google.com with SMTP id p74-v6so222512lfd.3 for ; Tue, 13 Mar 2018 09:09:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=RfFxSTOyv7JcbCEtDAO3434kEBQWVqjC9gXxMn6nLWI=; b=Lj3z7Hl/S39yahiOrjcDSYYtf5L5/ii4f+nj9Zz/AJv2aiF1pRlCiMAF2GSMXzMkfI RR5A/K0wQWyJ76n1Zmk9fz7WXDCI934q+zowbe2IVpQvW/NsYLlrIpbDs8mxdiLlGixT CckNrS7qFf1JKEW/rNx3hksAmb3MObEP9DEmr/25f/QJLHPYXESnE0ToIr23ddv8bJEw j1KOU8W+4bwBL5trvZnxQFZZjTfWSi87y4c0mLiv3wBgIz0nqdctIBIj4dJjLsWuSSWD Nhs9nkWPmgTYCeBrduu9KbRMFcKDhtHmKc8xPjhCvbB9mZ3KKXnaXiqdBvBGt2En9/NF I3kQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=RfFxSTOyv7JcbCEtDAO3434kEBQWVqjC9gXxMn6nLWI=; b=ZTnUufnWS3aYXMiaX7NbrILuss/Hh+cPqJpEbrLOt6QSvUwPgMYCR3UtKWpmR1FRZd 1Z4NoFhulCrcWbx8FGETk78SpOZdO1HcjnJHvG2sxjiAKKRcehM6VUvtam2izaynnOhO tstS86UQKIUP250pi6L19KL/tijcwi3PnEpOjy4DpB2N9AFDbtpfez8ytjIXCLi2DCoX pzC+9E0LL5gglIltdeC8kOZ+OqbU06/o3kbV0Rq5ppejR8YUbh2+Tc656JxvGRkCzPUs rxQoNba185p4+UfsLD/lh07V8g6SM2LcLhKabL2MbyufjZuWvAgOd1jYSq2jKRkPWOgT 3siA== X-Gm-Message-State: AElRT7EkQMXsELpxqHKwQlaYEnGb13fZ6VkC+fhP5f+PXHHb0wZexY05 butjeHNvQhDBHxtUx6vBlW8i/1sWjcNkLG/ROpI= X-Google-Smtp-Source: AG47ELuXeQbhfGSX5sW2O3n4dw8+xGXVKl2OmoB6FbjTphcheyM+r/QAiWFyph8ObbJy9kKA7K2hpkOhvUSZiv5mocw= X-Received: by 2002:a19:d7c5:: with SMTP id q66-v6mr874347lfi.89.1520957369131; Tue, 13 Mar 2018 09:09:29 -0700 (PDT) MIME-Version: 1.0 Received: by 10.179.75.154 with HTTP; Tue, 13 Mar 2018 09:09:28 -0700 (PDT) In-Reply-To: <4A89E2EF3DFEDB4C8BFDE51014F606A14E1E5EB8@SHSMSX104.ccr.corp.intel.com> References: <1520919486-9859-1-git-send-email-arvindprasanna@gmail.com> <4A89E2EF3DFEDB4C8BFDE51014F606A14E1E5EB8@SHSMSX104.ccr.corp.intel.com> From: Arvind Prasanna Date: Tue, 13 Mar 2018 12:09:28 -0400 Message-ID: To: "Gao, Liming" Cc: "edk2-devel@lists.01.org" X-Content-Filtered-By: Mailman/MimeDel 2.1.23 Subject: Re: [PATCH v2] edksetup.sh: Update help section regarding positional parameters X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Mar 2018 16:03:10 -0000 Content-Type: text/plain; charset="UTF-8" Hi Liming: Thank you for your reply. Yes, I agree that it is OK to pass supported positional parameters through a sourcing script. I will reword my patch considering this. Thanks! -Arvind. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- I want to include the same example from the v1 chain for the record here: Here is a simple example that highlights the issue: $ ls -l total 8 drwxrwxr-x 49 arvind arvind 4096 Mar 12 12:35 edk2 -rwxrwxr-x 1 arvind arvind 113 Mar 12 12:37 sourcing_script.sh $ cat sourcing_script.sh #!/bin/bash echo "I have been passed $# arguments" EDK2_PATH=${PWD}/../edk2 cd ${EDK2_PATH} source edksetup.sh Case 1) Let us call sourcing_script.sh with no arguments $ ./sourcing_script.sh I have been passed 0 arguments Loading previous configuration from /home/arvind/edk2/Conf/BuildEnv.sh WORKSPACE: /home/arvind/edk2 EDK_TOOLS_PATH: /home/arvind/edk2/BaseTools CONF_PATH: /home/arvind/edk2/Conf Everything looks good. Case 2) Let us call sourcing_script.sh with say two arguments $ ./sourcing_script.sh arg1 arg2 I have been passed 2 arguments Usage: edksetup.sh [Options] The system environment variable, WORKSPACE, is always set to the current working directory. Options: --help, -h, -? Print this help screen and exit. --reconfig Overwrite the WORKSPACE/Conf/*.txt files with the template files from the BaseTools/Conf directory. Please note: This script must be 'sourced' so the environment can be changed. . edksetup.sh source edksetup.sh This is the case I intend to bring out. I have not passed any arguments (intentionally) to edksetup.sh. but it always defaults to the help case with the current edksetup.sh script. In edksetup.sh in line 120, it counts the number of positional parameters "I=$#" and then does a switch-case on these arguments. In case 2, these arguments are "arg1" and "arg2" which has nothing to do with edksetup.sh. If I were to clear all the positional arguments passed to sourcing_script.sh, using "shift $#" prior to sourcing edk2setup.sh, it works as expected. I do not want to fix anything in the code as this might not be a common case but I would like to let the user know that all the positional parameters that exist in the caller script will affect sourcing edksetup.sh. On Tue, Mar 13, 2018 at 9:44 AM, Gao, Liming wrote: > Arvind: > The caller script may set the supported parameters by edksetup.sh. So, > the notes may be updated not to set the unknown parameter. > > Thanks > Liming > > -----Original Message----- > > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of > Arvind Prasanna > > Sent: Tuesday, March 13, 2018 1:44 PM > > To: Arvind Prasanna > > Cc: edk2-devel@lists.01.org; Gao, Liming > > Subject: Re: [edk2] [PATCH v2] edksetup.sh: Update help section > regarding positional parameters > > > > Please ignore this and follow my original email thread. Git did not chain > > this as I had expected. > > > > - Arvind. > > > > > > > > On Tue, Mar 13, 2018 at 1:38 AM, Arvind Prasanna < > arvindprasanna@gmail.com> > > wrote: > > > > > It is possible to source edksetup.sh from another script. If the > > > calling/sourcing script has any positional parameters set, those are > > > incorrectly accounted for in edksetup.sh while sourcing it resulting in > > > the the help section always being shown. This patch updates the help > > > section advising the user about these set positional parameters so they > > > can be unset prior to sourcing edksetup.sh. > > > > > > Contributed-under: TianoCore Contribution Agreement 1.1 > > > Signed-off-by: Arvind Prasanna > > > > > > Changes in v2: > > > - Fixed a typo. > > > - Minor rewording. > > > --- > > > edksetup.sh | 2 ++ > > > 1 file changed, 2 insertions(+) > > > > > > diff --git a/edksetup.sh b/edksetup.sh > > > index 93d6525..e85fbf2 100755 > > > --- a/edksetup.sh > > > +++ b/edksetup.sh > > > @@ -42,6 +42,8 @@ function HelpMsg() > > > echo Please note: This script must be \'sourced\' so the environment > > > can be changed. > > > echo ". $SCRIPTNAME" > > > echo "source $SCRIPTNAME" > > > + echo "If this script is being sourced from another script, please > > > ensure that the" > > > + echo "sourcing script has no set positional parameters." > > > } > > > > > > function SetWorkspace() > > > -- > > > 2.7.4 > > > > > > > > _______________________________________________ > > edk2-devel mailing list > > edk2-devel@lists.01.org > > https://lists.01.org/mailman/listinfo/edk2-devel >