···
let cfg = config.services.vector;
options.services.vector = {
enable = mkEnableOption "Vector";
···
wantedBy = [ "multi-user.target" ];
after = [ "network-online.target" ];
requires = [ "network-online.target" ];
41
-
format = pkgs.formats.toml { };
42
-
conf = format.generate "vector.toml" cfg.settings;
43
-
validateConfig = file:
44
-
pkgs.runCommand "validate-vector-conf" { } ''
45
-
${pkgs.vector}/bin/vector validate --no-topology --no-environment "${file}"
46
-
ln -s "${file}" "$out"
49
-
ExecStart = "${pkgs.vector}/bin/vector --config ${validateConfig conf}";
53
-
StateDirectory = "vector";
54
-
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
55
-
AmbientCapabilities = "CAP_NET_BIND_SERVICE";
56
-
# This group is required for accessing journald.
57
-
SupplementaryGroups = mkIf cfg.journaldAccess "systemd-journal";
43
+
format = pkgs.formats.toml { };
44
+
conf = format.generate "vector.toml" cfg.settings;
45
+
validateConfig = file:
46
+
pkgs.runCommand "validate-vector-conf" { } ''
47
+
${pkgs.vector}/bin/vector validate --no-topology --no-environment "${file}"
48
+
ln -s "${file}" "$out"
52
+
ExecStart = "${pkgs.vector}/bin/vector --config ${validateConfig conf}";
56
+
StateDirectory = "vector";
57
+
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
58
+
AmbientCapabilities = "CAP_NET_BIND_SERVICE";
59
+
# This group is required for accessing journald.
60
+
SupplementaryGroups = mkIf cfg.journaldAccess "systemd-journal";