Annotation of embedtools/src/ube.c, revision 1.1.2.4
1.1.2.1 misho 1: #include "global.h"
2: #include "ub_env.h"
3:
4:
1.1.2.4 ! misho 5: cfg_root_t cfg;
1.1.2.2 misho 6: int Verbose;
7: extern char compiled[], compiledby[], compilehost[];
8:
9:
10: static void
11: Usage()
12: {
13: printf( " -= U-Boot-Env =- Tool for u-boot-env nand map management\n"
14: "=== %s === %s@%s ===\n\n"
15: " Syntax: ube [options] [set_value]\n"
16: "\n"
1.1.2.4 ! misho 17: "\t-c <cfgfile>\tConfig file [default: /etc/ube.conf]\n"
1.1.2.2 misho 18: "\t-g <name>\tSet parameter to value\n"
19: "\t-s <name>\tGet parameter value\n"
1.1.2.3 misho 20: "\t-q\t\tQuiet mode\n"
1.1.2.2 misho 21: "\t-v\t\tVerbose ...\n"
22: "\n", compiled, compiledby, compilehost);
23: }
24:
25: int
26: main(int argc, char **argv)
27: {
1.1.2.4 ! misho 28: char ch, mode = 0, szName[STRSIZ] = { 0 }, szVal[STRSIZ] = { 0 },
! 29: szCfgName[PATH_MAX];
1.1.2.3 misho 30: const char *str;
31: int ret;
1.1.2.2 misho 32:
1.1.2.4 ! misho 33: strlcpy(szCfgName, UBE_CFGNAME, sizeof szCfgName);
! 34: while ((ch = getopt(argc, argv, "hvqg:s:c:")) != -1)
1.1.2.2 misho 35: switch (ch) {
36: case 'g':
1.1.2.3 misho 37: mode |= 1;
1.1.2.2 misho 38: strlcpy(szName, optarg, sizeof szName);
39: break;
40: case 's':
1.1.2.3 misho 41: mode |= 2;
1.1.2.2 misho 42: strlcpy(szName, optarg, sizeof szName);
43: break;
1.1.2.4 ! misho 44: case 'c':
! 45: strlcpy(szCfgName, optarg, sizeof szCfgName);
! 46: break;
1.1.2.2 misho 47: case 'v':
48: Verbose++;
49: break;
1.1.2.3 misho 50: case 'q':
51: mode |= 0x80;
52: break;
1.1.2.2 misho 53: case 'h':
54: default:
55: Usage();
56: return 1;
57: }
58: argc -= optind;
59: argv += optind;
1.1.2.3 misho 60: if ((mode & 0x7f) == 2 && argc)
61: strlcpy(szVal, *argv, sizeof szVal);
62:
63: VERB(1) printf("u-boot-env: mode=0x%hhx name=%s value=%s\n", mode, szName, szVal);
64:
1.1.2.4 ! misho 65: if (cfgLoadConfig(szCfgName, &cfg)) {
! 66: printf("Error:: cfgLoadConfig() #%d - %s\n", cfg_GetErrno(), cfg_GetError());
! 67: return 1;
! 68: }
! 69:
1.1.2.3 misho 70: if (!(mode & 0x7f)) {
71: VERB(2) printf("u-boot-env: list variables\n");
1.1.2.2 misho 72: }
73:
1.1.2.3 misho 74: if ((mode & 0x7f) & 1) {
75: VERB(2) printf("u-boot-env: get variable %s\n", szName);
76: str = ub_getenv(szName);
77: if (!str) {
78: printf("Error:: Variable %s not found!\n", szName);
1.1.2.4 ! misho 79: cfgUnloadConfig(&cfg);
1.1.2.3 misho 80: return 2;
81: } else if (mode & 0x80)
82: printf("%s\n", str);
83: else
84: printf("Variable %s=%s\n", szName, str);
85: }
86:
87: if ((mode & 0x7f) & 2) {
88: VERB(2) printf("u-boot-env: set variable %s\n", szName);
89: ret = ub_setenv(szName, argc ? szVal : NULL);
90: if (ret) {
91: printf("Error:: Writing variable %s!\n", szName);
1.1.2.4 ! misho 92: cfgUnloadConfig(&cfg);
1.1.2.3 misho 93: return 3;
94: }
95: if (!(mode & 0x80))
96: printf("Done\n");
97: }
1.1.2.2 misho 98:
1.1.2.4 ! misho 99: cfgUnloadConfig(&cfg);
1.1.2.2 misho 100: return 0;
101: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>