This commit is contained in:
Lorenz Meier
2012-11-01 08:14:31 +01:00
35 changed files with 337 additions and 1664 deletions
+43 -17
View File
@@ -56,26 +56,48 @@
__EXPORT int param_main(int argc, char *argv[]);
static void do_save(void);
static void do_load(void);
static void do_import(void);
static void do_save(const char* param_file_name);
static void do_load(const char* param_file_name);
static void do_import(const char* param_file_name);
static void do_show(const char* search_string);
static void do_show_print(void *arg, param_t param);
static const char *param_file_name = "/eeprom/parameters";
int
param_main(int argc, char *argv[])
{
if (argc >= 2) {
if (!strcmp(argv[1], "save"))
do_save();
if (!strcmp(argv[1], "save")) {
if (argc >= 3) {
do_save(argv[2]);
} else {
do_save(param_get_default_file());
}
}
if (!strcmp(argv[1], "load"))
do_load();
if (!strcmp(argv[1], "load")) {
if (argc >= 3) {
do_load(argv[2]);
} else {
do_load(param_get_default_file());
}
}
if (!strcmp(argv[1], "import"))
do_import();
if (!strcmp(argv[1], "import")) {
if (argc >= 3) {
do_import(argv[2]);
} else {
do_import(param_get_default_file());
}
}
if (!strcmp(argv[1], "select")) {
if (argc >= 3) {
param_set_default_file(argv[2]);
} else {
param_set_default_file(NULL);
}
warnx("selected parameter file %s", param_get_default_file());
}
if (!strcmp(argv[1], "show"))
if (argc >= 3) {
@@ -84,12 +106,12 @@ param_main(int argc, char *argv[])
do_show(NULL);
}
}
errx(1, "expected a command, try 'load', 'import', 'show' or 'save'\n");
errx(1, "expected a command, try 'load', 'import', 'show', 'select' or 'save'");
}
static void
do_save(void)
do_save(const char* param_file_name)
{
/* delete the parameter file in case it exists */
unlink(param_file_name);
@@ -112,7 +134,7 @@ do_save(void)
}
static void
do_load(void)
do_load(const char* param_file_name)
{
int fd = open(param_file_name, O_RDONLY);
@@ -122,14 +144,18 @@ do_load(void)
int result = param_load(fd);
close(fd);
if (result < 0)
if (result < 0) {
errx(1, "error importing from '%s'", param_file_name);
} else {
/* set default file name for next storage operation */
param_set_default_file(param_file_name);
}
exit(0);
}
static void
do_import(void)
do_import(const char* param_file_name)
{
int fd = open(param_file_name, O_RDONLY);