[PATCH 1/1] config: add command line option for config file

Alex DAMIAN alexandru.damian at intel.com
Thu Sep 26 02:27:16 PDT 2013


From: Alexandru DAMIAN <alexandru.damian at intel.com>

Added an option to specify the weston.ini config file
to be used. Defaults to ${PWD}/weston.ini

Adding a check in weston_config_full_path so that
we don't crash if we started without a config file.

Fixing a typo in help message.

Signed-off-by: Alexandru DAMIAN <alexandru.damian at intel.com>
---
 shared/config-parser.c |  2 +-
 src/compositor.c       | 15 +++++++++++----
 2 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/shared/config-parser.c b/shared/config-parser.c
index e1bf212..8defbbb 100644
--- a/shared/config-parser.c
+++ b/shared/config-parser.c
@@ -385,7 +385,7 @@ weston_config_parse(const char *name)
 const char *
 weston_config_get_full_path(struct weston_config *config)
 {
-	return config->path;
+	return config == NULL ? NULL : config->path;
 }
 
 int
diff --git a/src/compositor.c b/src/compositor.c
index f619f82..c073410 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -3338,7 +3338,8 @@ usage(int error_code)
 		"  -S, --socket=NAME\tName of socket to listen on\n"
 		"  -i, --idle-time=SECS\tIdle time in seconds\n"
 		"  --modules\t\tLoad the comma-separated list of modules\n"
-		"  --log==FILE\t\tLog to the given file\n"
+		"  --log=FILE\t\tLog to the given file\n"
+		"  --config=FILE\t\tUse specified config file. Defaults to ./weston.ini\n"
 		"  -h, --help\t\tThis help message\n\n");
 
 	fprintf(stderr,
@@ -3429,6 +3430,7 @@ int main(int argc, char *argv[])
 	int32_t help = 0;
 	char *socket_name = "wayland-0";
 	int32_t version = 0;
+	char *config_file = "weston.ini";
 	struct weston_config *config;
 	struct weston_config_section *section;
 
@@ -3441,6 +3443,7 @@ int main(int argc, char *argv[])
 		{ WESTON_OPTION_STRING, "log", 0, &log },
 		{ WESTON_OPTION_BOOLEAN, "help", 'h', &help },
 		{ WESTON_OPTION_BOOLEAN, "version", 0, &version },
+		{ WESTON_OPTION_STRING, "config", 'c', &config_file },
 	};
 
 	parse_options(core_options, ARRAY_LENGTH(core_options), &argc, argv);
@@ -3488,9 +3491,13 @@ int main(int argc, char *argv[])
 			backend = WESTON_NATIVE_BACKEND;
 	}
 
-	config = weston_config_parse("weston.ini");
-	weston_log("Using config file '%s'\n",
-		   weston_config_get_full_path(config));
+	config = weston_config_parse(config_file);
+
+	if (config != NULL) {
+		weston_log("Using config file '%s'\n", weston_config_get_full_path(config));
+	} else {
+		weston_log("Starting with no config file.");
+	}
 	section = weston_config_get_section(config, "core", NULL, NULL);
 	weston_config_section_get_string(section, "modules", &modules, "");
 
-- 
1.8.1.2



More information about the wayland-devel mailing list