On 3/21/25 7:43 PM, Christoph Niedermaier wrote:
Add parameter "-l" for printing available environment targets. The
active target is marked with an asterisk. This is done by adding
the function env_select_print_list().

If "env select" is called without a target parameter the result is
"Select Environment on <NULL>: driver not found". Replace this not
so useful output by showing the env usage message instead.

Signed-off-by: Christoph Niedermaier <cniederma...@dh-electronics.com>
---
Cc: Marek Vasut <ma...@denx.de>
Cc: Patrick Delaunay <patrick.delau...@foss.st.com>
Cc: Joe Hershberger <joe.hershber...@ni.com>
Cc: Tom Rini <tr...@konsulko.com>
---
V2: - Showing available environment targets by parameter "-l"
     - Showing env usage message if env select is called without a target
---
  cmd/nvedit.c  | 19 ++++++++++++++++++-
  env/env.c     | 16 ++++++++++++++++
  include/env.h |  7 +++++++
  3 files changed, 41 insertions(+), 1 deletion(-)

diff --git a/cmd/nvedit.c b/cmd/nvedit.c
index 1f259801293..de64094db4d 100644
--- a/cmd/nvedit.c
+++ b/cmd/nvedit.c
@@ -499,6 +499,23 @@ static int do_env_load(struct cmd_tbl *cmdtp, int flag, 
int argc,
  static int do_env_select(struct cmd_tbl *cmdtp, int flag, int argc,
                         char *const argv[])
  {
+       if (!argv[1])
+               return CMD_RET_USAGE;
+
+       while (argc > 1 && **(argv + 1) == '-') {
Two higher level things:

- Can you first convert cmd/nvedit.h to use include/getopt.h and then
  use getopt() here too ? This hand rolled arg parsing is repulsive,
  the multiple ad-hoc copies of that are even worse.
- Please write a test for this, see test/cmd/ , maybe Simon can help
  with details of this ... ?

Reply via email to