From f9a6407111a8730df51258c3b07502814a8ab3e1 Mon Sep 17 00:00:00 2001 From: Brian Ashworth Date: Wed, 1 Aug 2018 23:54:40 -0400 Subject: Show swaynag on config errors --- sway/main.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'sway/main.c') diff --git a/sway/main.c b/sway/main.c index 477ffa5a..de2445a8 100644 --- a/sway/main.c +++ b/sway/main.c @@ -415,12 +415,14 @@ int main(int argc, char **argv) { ipc_init(&server); log_env(); + char *errors = NULL; if (validate) { - bool valid = load_main_config(config_path, false); + bool valid = load_main_config(config_path, false, &errors); + free(errors); return valid ? 0 : 1; } - if (!load_main_config(config_path, false)) { + if (!load_main_config(config_path, false, &errors)) { sway_terminate(EXIT_FAILURE); } @@ -433,6 +435,7 @@ int main(int argc, char **argv) { setenv("WAYLAND_DISPLAY", server.socket, true); if (!terminate_request) { if (!server_start_backend(&server)) { + free(errors); sway_terminate(EXIT_FAILURE); } } @@ -452,6 +455,11 @@ int main(int argc, char **argv) { } transaction_commit_dirty(); + if (errors) { + spawn_swaynag_config_errors(config, errors); + free(errors); + } + if (!terminate_request) { server_run(&server); } -- cgit v1.2.3 From a7f7d4a488c8d3b2461122765f9904c8a411a583 Mon Sep 17 00:00:00 2001 From: Brian Ashworth Date: Thu, 2 Aug 2018 21:37:29 -0400 Subject: Write to swaynag pipe fd directly on config errors --- sway/main.c | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) (limited to 'sway/main.c') diff --git a/sway/main.c b/sway/main.c index de2445a8..c02caf42 100644 --- a/sway/main.c +++ b/sway/main.c @@ -22,6 +22,7 @@ #include "sway/debug.h" #include "sway/desktop/transaction.h" #include "sway/server.h" +#include "sway/swaynag.h" #include "sway/tree/layout.h" #include "sway/ipc-server.h" #include "ipc-client.h" @@ -415,14 +416,13 @@ int main(int argc, char **argv) { ipc_init(&server); log_env(); - char *errors = NULL; if (validate) { - bool valid = load_main_config(config_path, false, &errors); - free(errors); + bool valid = load_main_config(config_path, false, true); return valid ? 0 : 1; } - if (!load_main_config(config_path, false, &errors)) { + setenv("WAYLAND_DISPLAY", server.socket, true); + if (!load_main_config(config_path, false, false)) { sway_terminate(EXIT_FAILURE); } @@ -432,10 +432,8 @@ int main(int argc, char **argv) { security_sanity_check(); - setenv("WAYLAND_DISPLAY", server.socket, true); if (!terminate_request) { if (!server_start_backend(&server)) { - free(errors); sway_terminate(EXIT_FAILURE); } } @@ -455,9 +453,8 @@ int main(int argc, char **argv) { } transaction_commit_dirty(); - if (errors) { - spawn_swaynag_config_errors(config, errors); - free(errors); + if (config->swaynag_config_errors.pid > 0) { + swaynag_show(&config->swaynag_config_errors); } if (!terminate_request) { -- cgit v1.2.3