322d170d3a613e70c18483eb89ed0fb7fcf86378
2 * Copyright (C) 2008 Felix Fietkau <nbd@openwrt.org>
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2
6 * as published by the Free Software Foundation
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
17 static struct uci_context
*ctx
;
19 static void uci_usage(int argc
, char **argv
)
22 "Usage: %s [options] <command> [arguments]\n\n"
24 "\tshow [<config>[.<section>[.<option>]]]\n"
31 static void uci_show_section(struct uci_section
*p
)
34 const char *cname
, *sname
;
36 cname
= p
->config
->name
;
38 printf("%s.%s=%s\n", cname
, sname
, p
->type
);
39 uci_foreach_entry(option
, &p
->options
, o
) {
40 printf("%s.%s.%s=%s\n", cname
, sname
, o
->name
, o
->value
);
44 static void uci_show_file(const char *name
)
46 struct uci_config
*cfg
;
47 struct uci_section
*p
;
49 if (uci_load(ctx
, name
, &cfg
) != UCI_OK
) {
50 uci_perror(ctx
, "uci_load");
54 uci_list_empty(&cfg
->sections
);
55 uci_foreach_entry(section
, &cfg
->sections
, p
) {
58 uci_unload(ctx
, name
);
61 static int uci_show(int argc
, char **argv
)
63 char **configs
= uci_list_configs();
69 for (p
= configs
; *p
; p
++) {
70 fprintf(stderr
, "# config: %s\n", *p
);
77 static int uci_cmd(int argc
, char **argv
)
79 if (!strcasecmp(argv
[0], "show"))
84 int main(int argc
, char **argv
)
90 uci_usage(argc
, argv
);
91 ret
= uci_cmd(argc
- 1, argv
+ 1);