diff mbox series

[v2,3/5] Added software select to swupdate.cfg globals

Message ID 20210129115155.13116-4-michael.adler@siemens.com
State Accepted
Headers show
Series Overhaul swupdate.cfg handling | expand

Commit Message

Michael Adler Jan. 29, 2021, 11:51 a.m. UTC
Previously, this option could only be specified using command-line
arguments or via the IPC interface.

Signed-off-by: Michael Adler <michael.adler@siemens.com>
Signed-off-by: Christian Storm <christian.storm@siemens.com>
---
 core/swupdate.c                     | 13 ++++++++++++-
 examples/configuration/swupdate.cfg |  2 ++
 2 files changed, 14 insertions(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/core/swupdate.c b/core/swupdate.c
index 788981e..64b683e 100644
--- a/core/swupdate.c
+++ b/core/swupdate.c
@@ -363,6 +363,13 @@  static int read_globals_settings(void *elem, void *data)
 	GET_FIELD_STRING(LIBCFG_PARSER, elem, "forced-signer-name",
 				sw->globals.forced_signer_name);
 
+	char software_select[SWUPDATE_GENERAL_STRING_SIZE] = "";
+	GET_FIELD_STRING(LIBCFG_PARSER, elem, "select", software_select);
+	if (software_select[0] != '\0') {
+		/* by convention, errors in a configuration section are ignored */
+		(void)parse_image_selector(software_select, sw);
+	}
+
 	return 0;
 }
 
@@ -809,8 +816,12 @@  int main(int argc, char **argv)
 			fprintf(stderr, "Error: Incorrect select option format.\n");
 			exit(EXIT_FAILURE);
 		}
+	}
+
+	/* check if software_set or running_mode was parsed and log both values */
+	if (swcfg.globals.default_software_set[0] != '\0' || swcfg.globals.default_running_mode[0] != '\0') {
 		INFO("software set: %s mode: %s", swcfg.globals.default_software_set,
-		     swcfg.globals.default_running_mode);
+			swcfg.globals.default_running_mode);
 	}
 
 	/* Read sw-versions */
diff --git a/examples/configuration/swupdate.cfg b/examples/configuration/swupdate.cfg
index 6fad156..a97f982 100644
--- a/examples/configuration/swupdate.cfg
+++ b/examples/configuration/swupdate.cfg
@@ -38,6 +38,8 @@ 
 #			  [emailProtection|codeSigning] (default: emailProtection)
 # forced-signer-name	: string
 #			  set expected common name of signer certificate
+# select:		: string
+#			  select software images set and source (<software>,<mode>)
 globals :
 {