From 52242e645a5083aeca5d64e35712b1e31d6720c0 Mon Sep 17 00:00:00 2001 From: matt1432 Date: Sun, 7 Jul 2024 01:54:46 -0400 Subject: [PATCH] refactor: use simple instead of oneshot type for systemd --- devices/nos/modules/subtitles/default.nix | 1 - devices/servivi/default.nix | 2 +- devices/servivi/modules/7-days-to-die.nix | 32 +++++++++++++++++++ .../servivi/modules/steam-servers/default.nix | 20 ------------ 4 files changed, 33 insertions(+), 22 deletions(-) create mode 100644 devices/servivi/modules/7-days-to-die.nix delete mode 100644 devices/servivi/modules/steam-servers/default.nix diff --git a/devices/nos/modules/subtitles/default.nix b/devices/nos/modules/subtitles/default.nix index 647f8a48..df03ca8d 100644 --- a/devices/nos/modules/subtitles/default.nix +++ b/devices/nos/modules/subtitles/default.nix @@ -21,7 +21,6 @@ in { systemd = { services.manage-subs = { serviceConfig = { - Type = "oneshot"; User = mainUser; Group = config.users.users.${mainUser}.group; }; diff --git a/devices/servivi/default.nix b/devices/servivi/default.nix index 338eafc6..f0bce05c 100644 --- a/devices/servivi/default.nix +++ b/devices/servivi/default.nix @@ -9,10 +9,10 @@ in { ../../modules/sshd.nix ../../modules/tailscale.nix + ./modules/7-days-to-die.nix ./modules/binary-cache.nix ./modules/minecraft.nix ./modules/nfs.nix - ./modules/steam-servers ]; vars = { diff --git a/devices/servivi/modules/7-days-to-die.nix b/devices/servivi/modules/7-days-to-die.nix new file mode 100644 index 00000000..e2741366 --- /dev/null +++ b/devices/servivi/modules/7-days-to-die.nix @@ -0,0 +1,32 @@ +{pkgs, ...}: let + gamePath = "/var/lib/steam-servers/7-days-to-die"; + relativeConfig = "serverconfig-7days.xml"; +in { + systemd.extraConfig = "DefaultLimitNOFILE=10240"; + + # https://github.com/Krutonium/NewNix/blob/455aafc4caf553248ca228f844f021cecf494dc2/services/sevendaystodie.nix#L6 + systemd.services."7-days-to-die" = { + wantedBy = ["multi-user.target"]; + serviceConfig.User = "matt"; + + path = with pkgs; [ + steam-run + steamcmd + ]; + + script = '' + # Make sure gamePath exists and cd to it + mkdir -p ${gamePath} + cd ${gamePath} + + # Install / Update server + steamcmd +force_install_dir ${gamePath} \ + +login anonymous +app_update 294420 \ + -beta latest_experimental \ + +quit + + # Launch server + steam-run ./startserver.sh -configfile=${relativeConfig} + ''; + }; +} diff --git a/devices/servivi/modules/steam-servers/default.nix b/devices/servivi/modules/steam-servers/default.nix deleted file mode 100644 index b575d2f7..00000000 --- a/devices/servivi/modules/steam-servers/default.nix +++ /dev/null @@ -1,20 +0,0 @@ -{pkgs, ...}: let - gamePath = "/var/lib/steam-servers/7-days-to-die"; -in { - systemd.extraConfig = "DefaultLimitNOFILE=10240"; - - # https://github.com/Krutonium/NewNix/blob/455aafc4caf553248ca228f844f021cecf494dc2/services/sevendaystodie.nix#L6 - systemd.services."7daystodie" = { - wantedBy = ["multi-user.target"]; - serviceConfig.Type = "oneshot"; - serviceConfig.User = "matt"; - - path = with pkgs; [steam-run steamcmd]; - script = '' - mkdir -p ${gamePath} - cd ${gamePath} - steamcmd +force_install_dir ${gamePath} +login anonymous +app_update 294420 -beta latest_experimental +quit - steam-run ./startserver.sh -configfile=serverconfig-7days.xml - ''; - }; -}