Set environment from the GUI at install time.
[nssm.git] / registry.cpp
index 382cb0f..458127c 100644 (file)
@@ -72,6 +72,18 @@ int create_parameters(nssm_service_t *service) {
   if (service->stdout_path[0]) set_expand_string(key, NSSM_REG_STDOUT, service->stdout_path);\r
   if (service->stderr_path[0]) set_expand_string(key, NSSM_REG_STDERR, service->stderr_path);\r
 \r
+  /* Environment */\r
+  if (service->env) {\r
+    if (RegSetValueEx(key, NSSM_REG_ENV, 0, REG_MULTI_SZ, (const unsigned char *) service->env, (unsigned long) service->envlen) != ERROR_SUCCESS) {\r
+      log_event(EVENTLOG_ERROR_TYPE, NSSM_EVENT_SETVALUE_FAILED, NSSM_REG_ENV, error_string(GetLastError()), 0);\r
+    }\r
+  }\r
+  if (service->env_extra) {\r
+    if (RegSetValueEx(key, NSSM_REG_ENV_EXTRA, 0, REG_MULTI_SZ, (const unsigned char *) service->env_extra, (unsigned long) service->env_extralen) != ERROR_SUCCESS) {\r
+      log_event(EVENTLOG_ERROR_TYPE, NSSM_EVENT_SETVALUE_FAILED, NSSM_REG_ENV_EXTRA, error_string(GetLastError()), 0);\r
+    }\r
+  }\r
+\r
   /* Close registry. */\r
   RegCloseKey(key);\r
 \r