From b31f9749966059489a2f99567fb5bd62d862ccb6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 17:09:49 +0200 Subject: [PATCH] Set PATH variable in code (#112) Co-authored-by: Madelen Andersson Co-authored-by: madelen-at-work --- app/dockerdwrapperwithcompose.c | 24 ++++++++++++++++++++++++ app/postinstallscript.sh | 2 -- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/app/dockerdwrapperwithcompose.c b/app/dockerdwrapperwithcompose.c index 5e9467f..5096cd8 100644 --- a/app/dockerdwrapperwithcompose.c +++ b/app/dockerdwrapperwithcompose.c @@ -782,6 +782,25 @@ static void parse_command_line(int argc, char** argv, struct log_settings* log_s (argc == 2 && strcmp(argv[1], "--stdout") == 0) ? log_dest_stdout : log_dest_syslog; } +static bool set_env_variable(const char* env_var, const char* value) { + log_debug("Setting env: %s=%s", env_var, value); + if (setenv(env_var, value, 1) != 0) { + log_error("Error setting env variable %s to %s", env_var, value); + return false; + } + return true; +} + +static bool set_env_variables(void) { + g_autofree char* path = + g_strdup_printf("/bin:/usr/bin:%s:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin", + APP_DIRECTORY); + if (!set_env_variable("PATH", path)) + return false; + + return true; +} + int main(int argc, char** argv) { struct app_state app_state = {0}; struct log_settings log_settings = {0}; @@ -801,6 +820,11 @@ int main(int argc, char** argv) { log_debug_set(is_app_log_level_debug(app_state.param_handle)); + if (!set_env_variables()) { + log_error("Failed to set environment variables"); + return EX_SOFTWARE; + } + init_signals(); int fcgi_error = fcgi_start(http_request_callback); diff --git a/app/postinstallscript.sh b/app/postinstallscript.sh index 213ef97..e6f8147 100644 --- a/app/postinstallscript.sh +++ b/app/postinstallscript.sh @@ -18,8 +18,6 @@ cat >>/etc/systemd/system/sdkdockerdwrapperwithcompose.service <