hush: Add rudimentary support for PS1 and PS2

Add trivial support for changing the U-Boot command prompt string
by setting PS1 and PS2 environment variables. Only static variables
are supported.

Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Heiko Schocher <hs@denx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
diff --git a/README b/README
index 83d2874..2492364 100644
--- a/README
+++ b/README
@@ -2905,6 +2905,14 @@
 		Enable editing and History functions for interactive
 		command line input operations
 
+- Command Line PS1/PS2 support:
+		CONFIG_CMDLINE_PS_SUPPORT
+
+		Enable support for changing the command prompt string
+		at run-time. Only static string is supported so far.
+		The string is obtained from environment variables PS1
+		and PS2.
+
 - Default Environment:
 		CONFIG_EXTRA_ENV_SETTINGS
 
diff --git a/common/cli_hush.c b/common/cli_hush.c
index cbaf22e..00861e2 100644
--- a/common/cli_hush.c
+++ b/common/cli_hush.c
@@ -978,12 +978,22 @@
 static int uboot_cli_readline(struct in_str *i)
 {
 	char *prompt;
+	char __maybe_unused *ps_prompt = NULL;
 
 	if (i->promptmode == 1)
 		prompt = CONFIG_SYS_PROMPT;
 	else
 		prompt = CONFIG_SYS_PROMPT_HUSH_PS2;
 
+#ifdef CONFIG_CMDLINE_PS_SUPPORT
+	if (i->promptmode == 1)
+		ps_prompt = getenv("PS1");
+	else
+		ps_prompt = getenv("PS2");
+	if (ps_prompt)
+		prompt = ps_prompt;
+#endif
+
 	return cli_readline(prompt);
 }
 #endif