Commit 4d3d3e46 authored by Matt Moriarity's avatar Matt Moriarity
Browse files

nixos/garage: fix StateDirectory check to work with multiple data_dirs

parent cb905a56
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -11,6 +11,13 @@ let
  cfg = config.services.garage;
  toml = pkgs.formats.toml { };
  configFile = toml.generate "garage.toml" cfg.settings;

  anyHasPrefix =
    prefix: strOrList:
    if isString strOrList then
      hasPrefix prefix strOrList
    else
      any ({ path, ... }: hasPrefix prefix path) strOrList;
in
{
  meta = {
@@ -162,7 +169,7 @@ in
        ExecStart = "${cfg.package}/bin/garage server";

        StateDirectory = mkIf (
          hasPrefix "/var/lib/garage" cfg.settings.data_dir
          anyHasPrefix "/var/lib/garage" cfg.settings.data_dir
          || hasPrefix "/var/lib/garage" cfg.settings.metadata_dir
        ) "garage";
        DynamicUser = lib.mkDefault true;