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 ... ?