You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by vi...@apache.org on 2019/03/27 20:07:24 UTC
[mynewt-core] branch master updated: sys/config,
date CLIs: add syscfgs for read/write (#1709)
This is an automated email from the ASF dual-hosted git repository.
vipulrahane pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-core.git
The following commit(s) were added to refs/heads/master by this push:
new a59bd54 sys/config, date CLIs: add syscfgs for read/write (#1709)
a59bd54 is described below
commit a59bd540c5a1f2c0ce9bf46592f6f5286d1690c2
Author: Vipul Rahane <vr...@gmail.com>
AuthorDate: Wed Mar 27 13:07:19 2019 -0700
sys/config, date CLIs: add syscfgs for read/write (#1709)
* sys/config, date CLIs: add syscfgs for read/write
---
sys/config/src/config_cli.c | 36 ++++++++++++++++++++++++------------
sys/config/syscfg.yml | 4 ++++
sys/shell/src/shell_os.c | 14 ++++++++++++--
sys/shell/syscfg.yml | 6 ++++++
4 files changed, 46 insertions(+), 14 deletions(-)
diff --git a/sys/config/src/config_cli.c b/sys/config/src/config_cli.c
index 7c97556..582da55 100644
--- a/sys/config/src/config_cli.c
+++ b/sys/config/src/config_cli.c
@@ -37,6 +37,7 @@ static struct shell_cmd shell_conf_cmd = {
.sc_cmd_func = shell_conf_command
};
+#if (MYNEWT_VAL(CONFIG_CLI_RW) & 1) == 1
static void
conf_running_one(char *name, char *val)
{
@@ -56,6 +57,7 @@ conf_dump_running(void)
}
conf_unlock();
}
+#endif
#if MYNEWT_VAL(CONFIG_CLI_DEBUG)
static void
@@ -84,23 +86,28 @@ conf_dump_saved(void)
static int
shell_conf_command(int argc, char **argv)
{
+#if MYNEWT_VAL(CONFIG_CLI_RW)
char *name = NULL;
char *val = NULL;
char tmp_buf[CONF_MAX_VAL_LEN + 1];
int rc;
+ (void)rc;
switch (argc) {
+#if (MYNEWT_VAL(CONFIG_CLI_RW) & 1) == 1
case 2:
name = argv[1];
break;
+#endif
+#if (MYNEWT_VAL(CONFIG_CLI_RW) & 2) == 2
case 3:
name = argv[1];
val = argv[2];
break;
+#endif
default:
goto err;
}
-
if (!strcmp(name, "commit")) {
rc = conf_commit(val);
if (rc) {
@@ -110,19 +117,23 @@ shell_conf_command(int argc, char **argv)
}
console_printf("%s", val);
return 0;
- } else if (!strcmp(name, "dump")) {
- if (!val || !strcmp(val, "running")) {
- conf_dump_running();
- }
+ } else {
+ if (!strcmp(name, "dump")) {
+ if (!val || !strcmp(val, "running")) {
+ conf_dump_running();
+ }
#if MYNEWT_VAL(CONFIG_CLI_DEBUG)
- if (val && !strcmp(val, "saved")) {
- conf_dump_saved();
- }
+ if (val && !strcmp(val, "saved")) {
+ conf_dump_saved();
+ }
#endif
- return 0;
- } else if (!strcmp(name, "save")) {
- conf_save();
- return 0;
+ return 0;
+ } else {
+ if (!strcmp(name, "save")) {
+ conf_save();
+ return 0;
+ }
+ }
}
if (!val) {
val = conf_get_value(name, tmp_buf, sizeof(tmp_buf));
@@ -140,6 +151,7 @@ shell_conf_command(int argc, char **argv)
}
return 0;
err:
+#endif
console_printf("Invalid args\n");
return 0;
}
diff --git a/sys/config/syscfg.yml b/sys/config/syscfg.yml
index 9a8d58d..b3995f7 100644
--- a/sys/config/syscfg.yml
+++ b/sys/config/syscfg.yml
@@ -58,6 +58,10 @@ syscfg.defs:
Secondary sysinit stage for the config package; populates the
underlying storage medium for config if it is has not been done.
value: 220
+ CONFIG_CLI_RW:
+ description: >
+ Config CLI commands read 1, write 2, read/write 3
+ value: 3
syscfg.defs.CONFIG_FCB:
CONFIG_FCB_FLASH_AREA:
diff --git a/sys/shell/src/shell_os.c b/sys/shell/src/shell_os.c
index 3c325f8..a4d0cdf 100644
--- a/sys/shell/src/shell_os.c
+++ b/sys/shell/src/shell_os.c
@@ -130,21 +130,26 @@ shell_os_mpool_display_cmd(int argc, char **argv)
int
shell_os_date_cmd(int argc, char **argv)
{
+ int rc;
+#if MYNEWT_VAL(SHELL_OS_DATETIME_CMD)
struct os_timeval tv;
struct os_timezone tz;
char buf[DATETIME_BUFSIZE];
- int rc;
argc--; argv++; /* skip command name */
+ rc = -1;
if (argc == 0) {
+#if (MYNEWT_VAL(SHELL_OS_DATETIME_CMD) & 1) == 1
/* Display the current datetime */
rc = os_gettimeofday(&tv, &tz);
assert(rc == 0);
rc = datetime_format(&tv, &tz, buf, sizeof(buf));
assert(rc == 0);
console_printf("%s\n", buf);
+#endif
} else if (argc == 1) {
+#if (MYNEWT_VAL(SHELL_OS_DATETIME_CMD) & 2) == 2
/* Set the current datetime */
rc = datetime_parse(*argv, &tv, &tz);
if (rc == 0) {
@@ -152,10 +157,11 @@ shell_os_date_cmd(int argc, char **argv)
} else {
console_printf("Invalid datetime\n");
}
+#endif
} else {
rc = -1;
}
-
+#endif
return rc;
}
@@ -213,15 +219,19 @@ static const struct shell_cmd_help mpool_help = {
.params = mpool_params,
};
+#if (MYNEWT_VAL(SHELL_OS_DATETIME_CMD) & 2) == 2
static const struct shell_param date_params[] = {
{"", "datetime to set"},
{NULL, NULL}
};
+#endif
static const struct shell_cmd_help date_help = {
.summary = "show system date",
.usage = NULL,
+#if (MYNEWT_VAL(SHELL_OS_DATETIME_CMD) & 2) == 2
.params = date_params,
+#endif
};
static const struct shell_param reset_params[] = {
diff --git a/sys/shell/syscfg.yml b/sys/shell/syscfg.yml
index ecc8b67..1f416bc 100644
--- a/sys/shell/syscfg.yml
+++ b/sys/shell/syscfg.yml
@@ -68,6 +68,12 @@ syscfg.defs:
Sysinit stage for shell functionality.
value: 500
+ SHELL_OS_DATETIME_CMD:
+ description: >
+ Datetime command enabled, read 1,
+ write 2, read/write 3 (default)
+ value: 3
+
## duplicated from boot/boot_serial
BOOT_SERIAL_NVREG_MAGIC:
description: >