Shell/alias: Print detailed error when deleting alias

STR_GEN_ERR_NOT_FOUND is added and currently is only
used by alias command. This string template can be used
by other commands as well.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Tapan Shah <tapandshah@hpe.com>
(cherry picked from commit 937bc66e1e555e74acdeba766b12c06fd506e408)
diff --git a/ShellPkg/Library/UefiShellLevel3CommandsLib/Alias.c b/ShellPkg/Library/UefiShellLevel3CommandsLib/Alias.c
index 7277bd4..daf46a9 100644
--- a/ShellPkg/Library/UefiShellLevel3CommandsLib/Alias.c
+++ b/ShellPkg/Library/UefiShellLevel3CommandsLib/Alias.c
@@ -153,10 +153,13 @@
       Status = gEfiShellProtocol->SetAlias(Param1, NULL, TRUE, FALSE);

       if (EFI_ERROR(Status)) {

         if (Status == EFI_ACCESS_DENIED) {

-          ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_ERR_AD), gShellLevel3HiiHandle, L"alias");  

+          ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_ERR_AD), gShellLevel3HiiHandle, L"alias");

           ShellStatus = SHELL_ACCESS_DENIED;

+        } else if (Status == EFI_NOT_FOUND) {

+          ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_ERR_NOT_FOUND), gShellLevel3HiiHandle, L"alias", Param1);

+          ShellStatus = SHELL_NOT_FOUND;

         } else {

-          ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_ERR_UK), gShellLevel3HiiHandle, L"alias", Status);  

+          ShellPrintHiiEx(-1, -1, NULL, STRING_TOKEN (STR_GEN_ERR_UK), gShellLevel3HiiHandle, L"alias", Status);

           ShellStatus = SHELL_DEVICE_ERROR;

         }

       }

diff --git a/ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.uni b/ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.uni
index b027c67..db346b2 100644
--- a/ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.uni
+++ b/ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.uni
@@ -2,7 +2,7 @@
 //

 // (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>

 // (C) Copyright 2013-2015 Hewlett-Packard Development Company, L.P.<BR>

-// Copyright (c) 2009 - 2013, Intel Corporation. All rights reserved. <BR>

+// Copyright (c) 2009 - 2017, 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

@@ -32,6 +32,7 @@
 #string STR_GEN_PROBLEM           #language en-US "%H%s%N: Unknown flag - '%H%s%N'\r\n"

 #string STR_GEN_NO_VALUE          #language en-US "%H%s%N: Missing argument for flag - '%H%s%N'\r\n"

 #string STR_GEN_ERR_AD            #language en-US "%H%s%N: Access denied.\r\n"

+#string STR_GEN_ERR_NOT_FOUND     #language en-US "%H%s%N: '%H%s%N' does not exist.\r\n"

 #string STR_GEN_ERR_UK            #language en-US "%H%s%N: Status: %r\r\n"

 #string STR_GEN_PARAM_CON         #language en-US "%H%s%N: Parameters conflict\r\n"

 #string STR_GEN_PARAM_CONFLICT    #language en-US "%H%s%N: Flags conflict with - '%H%s%N' and '%H%s%N'\r\n"