summaryrefslogtreecommitdiffstats
path: root/commands/magicvar.c
blob: cf1fe45d9ddfcc1b7de737ebb63cc5ba4508fa99 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <common.h>
#include <command.h>
#include <getopt.h>
#include <environment.h>
#include <magicvar.h>

static int do_magicvar(int argc, char *argv[])
{
	struct magicvar *m;
	int opt;
	int verbose = 0;

	while ((opt = getopt(argc, argv, "v")) > 0) {
		switch (opt) {
		case 'v':
			verbose = 1;
			break;
		default:
			return COMMAND_ERROR_USAGE;
		}
	}

	for (m = &__barebox_magicvar_start;
			m != &__barebox_magicvar_end;
			m++) {
		printf("%-32s %s\n", m->name, m->description);
		if (verbose) {
			const char *val = getenv(m->name);
			if (val && strlen(val))
				printf("  %s\n", val);
		}
	}

	return 0;
}


BAREBOX_CMD_HELP_START(magicvar)
BAREBOX_CMD_HELP_TEXT("Options:")
BAREBOX_CMD_HELP_OPT ("-v", "verbose (list all value if there is one)")
BAREBOX_CMD_HELP_END

BAREBOX_CMD_START(magicvar)
	.cmd		= do_magicvar,
	BAREBOX_CMD_DESC("list information about magic variables")
	BAREBOX_CMD_OPTS("[-v]")
	BAREBOX_CMD_HELP(cmd_magicvar_help)
	BAREBOX_CMD_GROUP(CMD_GRP_ENV)
BAREBOX_CMD_END