diff --git a/nix/modules/default/default.nix b/nix/modules/default/default.nix index d2efa327..d29a7f1f 100644 --- a/nix/modules/default/default.nix +++ b/nix/modules/default/default.nix @@ -11,6 +11,10 @@ let cfg = config.services.grapevine; configFile = format.generate "config.toml" cfg.settings; + validateConfig = file: pkgs.runCommand "grapevine-checked-config" {} '' + ${lib.getExe cfg.package} check-config -c ${lib.escapeShellArg file} + ln -s ${lib.escapeShellArg file} "$out" + ''; format = pkgs.formats.toml {}; in @@ -79,7 +83,7 @@ in # Keep sorted serviceConfig = { DynamicUser = true; - ExecStart = "${lib.getExe cfg.package} serve --config ${configFile}"; + ExecStart = "${lib.getExe cfg.package} serve --config ${validateConfig configFile}"; LockPersonality = true; MemoryDenyWriteExecute = true; PrivateDevices = true;