diff options
author | jaben carsey <jaben.carsey@intel.com> | 2013-06-27 16:11:39 +0000 |
---|---|---|
committer | jcarsey <jcarsey@6f19259b-4bc3-4df7-8a09-765794883524> | 2013-06-27 16:11:39 +0000 |
commit | ca79c798217775368b6c6a0d0720f221ed2a62ef (patch) | |
tree | e72f19d3589f85d3ef496cc06d3804b19ecd7180 /ShellPkg/Application/Shell/Shell.c | |
parent | 4986bbaf1151d1cccc1f2589bd13a86b539676b2 (diff) | |
download | edk2-platforms-ca79c798217775368b6c6a0d0720f221ed2a62ef.tar.xz |
ShellPkg: make automatically created shells quit automatically
This creates a new parameter to this shell implementation “_exit” that causes the shell to automatically exit after running the initial specified command line. This also automatically uses that command in the Execute() API.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: jaben carsey <jaben.carsey@intel.com>
Reviewed-by: Samer El-Haj-Mahmoud <elhaj@hp.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14444 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'ShellPkg/Application/Shell/Shell.c')
-rw-r--r-- | ShellPkg/Application/Shell/Shell.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/ShellPkg/Application/Shell/Shell.c b/ShellPkg/Application/Shell/Shell.c index b6b54efb5e..00c7bb58cf 100644 --- a/ShellPkg/Application/Shell/Shell.c +++ b/ShellPkg/Application/Shell/Shell.c @@ -1,7 +1,7 @@ /** @file
This is THE shell (application)
- Copyright (c) 2009 - 2012, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2009 - 2013, 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
@@ -381,7 +381,7 @@ UefiMain ( Status = DoStartupScript(ShellInfoObject.ImageDevPath, ShellInfoObject.FileDevPath);
}
- if (!ShellCommandGetExit() && (PcdGet8(PcdShellSupportLevel) >= 3 || PcdGetBool(PcdShellForceConsole)) && !EFI_ERROR(Status) && !ShellInfoObject.ShellInitSettings.BitUnion.Bits.NoConsoleIn) {
+ if (!ShellInfoObject.ShellInitSettings.BitUnion.Bits.Exit && !ShellCommandGetExit() && (PcdGet8(PcdShellSupportLevel) >= 3 || PcdGetBool(PcdShellForceConsole)) && !EFI_ERROR(Status) && !ShellInfoObject.ShellInitSettings.BitUnion.Bits.NoConsoleIn) {
//
// begin the UI waiting loop
//
@@ -642,6 +642,7 @@ STATIC CONST SHELL_PARAM_ITEM mShellParamList[] = { {L"-noversion", TypeFlag},
{L"-startup", TypeFlag},
{L"-delay", TypeValue},
+ {L"-_exit", TypeFlag},
{NULL, TypeMax}
};
@@ -749,6 +750,7 @@ ProcessCommandLine( ShellInfoObject.ShellInitSettings.BitUnion.Bits.NoMap = ShellCommandLineGetFlag(Package, L"-nomap");
ShellInfoObject.ShellInitSettings.BitUnion.Bits.NoVersion = ShellCommandLineGetFlag(Package, L"-noversion");
ShellInfoObject.ShellInitSettings.BitUnion.Bits.Delay = ShellCommandLineGetFlag(Package, L"-delay");
+ ShellInfoObject.ShellInitSettings.BitUnion.Bits.Exit = ShellCommandLineGetFlag(Package, L"-_exit");
ShellInfoObject.ShellInitSettings.Delay = 5;
|