diff options
author | David Härdeman <david@hardeman.nu> | 2020-06-10 11:22:29 +0200 |
---|---|---|
committer | David Härdeman <david@hardeman.nu> | 2020-06-10 11:22:29 +0200 |
commit | fae819296598100e41646e0bebc7d0bce45614f7 (patch) | |
tree | 4680a7afdc64e278fe2018f6515ad88b8a54f80e /cfgdir.c | |
parent | a270b41d55e3ab867e7c9aabf301ce9d9c48929f (diff) |
Add initial systemd integration
Diffstat (limited to 'cfgdir.c')
-rw-r--r-- | cfgdir.c | 17 |
1 files changed, 15 insertions, 2 deletions
@@ -32,9 +32,7 @@ enum scfg_keys { SCFG_KEY_START_EXEC, SCFG_KEY_RCON, SCFG_KEY_RCON_PASSWORD, - /* SCFG_KEY_SYSTEMD_SERVICE, - */ }; struct cfg_key_value_map scfg_key_map[] = { @@ -87,6 +85,10 @@ struct cfg_key_value_map scfg_key_map[] = { .key_value = SCFG_KEY_RCON_PASSWORD, .value_type = CFG_VAL_TYPE_STRING, }, { + .key_name = "systemd_service", + .key_value = SCFG_KEY_SYSTEMD_SERVICE, + .value_type = CFG_VAL_TYPE_STRING, + }, { .key_name = NULL, .key_value = SCFG_KEY_INVALID, .value_type = CFG_VAL_TYPE_INVALID, @@ -166,6 +168,9 @@ scfg_parse(struct cfg *cfg, struct server *scfg) } else if (!strcmp(value.str, "rcon")) { if (server_set_stop_method(cfg, scfg, SERVER_STOP_METHOD_RCON)) break; + } else if (!strcmp(value.str, "systemd")) { + if (server_set_stop_method(cfg, scfg, SERVER_STOP_METHOD_SYSTEMD)) + break; } return; @@ -173,6 +178,9 @@ scfg_parse(struct cfg *cfg, struct server *scfg) if (!strcmp(value.str, "exec")) { if (server_set_start_method(cfg, scfg, SERVER_START_METHOD_EXEC)) break; + } else if (!strcmp(value.str, "systemd")) { + if (server_set_start_method(cfg, scfg, SERVER_START_METHOD_SYSTEMD)) + break; } return; @@ -201,6 +209,11 @@ scfg_parse(struct cfg *cfg, struct server *scfg) return; break; + case SCFG_KEY_SYSTEMD_SERVICE: + if (!server_set_systemd_service(cfg, scfg, value.str)) + return; + break; + case SCFG_KEY_INVALID: default: break; |