diff --git a/modules/nixos/profiles/media-server.nix b/modules/nixos/profiles/media-server.nix index a977d26..e8f2f93 100644 --- a/modules/nixos/profiles/media-server.nix +++ b/modules/nixos/profiles/media-server.nix @@ -1,20 +1,19 @@ -{ config -, lib -, pkgs -, ... -}: -let - cfg = config.profiles.media-server; -in { + config, + lib, + pkgs, + ... +}: let + cfg = config.profiles.media-server; +in { options.profiles.media-server = with lib; - with lib.types; { - enable = mkEnableOption ""; - mediaDir = mkOption { - type = path; - default = "/data/media"; - }; + with lib.types; { + enable = mkEnableOption ""; + mediaDir = mkOption { + type = path; + default = "/data/media"; }; + }; config = with lib; mkIf cfg.enable { services = { @@ -28,54 +27,52 @@ in }; systemd.services.media-server-setup = { - script = - let - services = config.services; - in - '' - function setfacl() { ${pkgs.acl}/bin/setfacl "$@"; } + script = let + services = config.services; + in '' + function setfacl() { ${pkgs.acl}/bin/setfacl "$@"; } - echo 'Creating ${toString cfg.mediaDir} folder' - mkdir -p ${toString cfg.mediaDir} - mkdir -p ${toString cfg.mediaDir + "/Downloads"} - mkdir -p ${toString cfg.mediaDir + "/Movies"} - mkdir -p ${toString cfg.mediaDir + "/Shows"} + echo 'Creating ${toString cfg.mediaDir} folder' + mkdir -p ${toString cfg.mediaDir} + mkdir -p ${toString cfg.mediaDir + "/Downloads"} + mkdir -p ${toString cfg.mediaDir + "/Movies"} + mkdir -p ${toString cfg.mediaDir + "/Shows"} - ${ - if services.jellyfin.enable - then '' - echo 'Giving read-write permission to ${services.jellyfin.user} on ${toString cfg.mediaDir}' - setfacl -R -m u:${services.jellyfin.user}:rwx ${toString cfg.mediaDir} - '' - else "" - } - ${ - if services.radarr.enable - then '' - echo 'Giving read-write permission to ${services.radarr.user} on ${toString cfg.mediaDir}' - setfacl -R -m u:${services.radarr.user}:rwx ${toString cfg.mediaDir} - '' - else "" - } - ${ - if services.sonarr.enable - then '' - echo 'Giving read-write permission to ${services.sonarr.user} on ${toString cfg.mediaDir}' - setfacl -R -m u:${services.sonarr.user}:rwx ${toString cfg.mediaDir} - '' - else "" - } - ${ - if services.qbittorrent.enable - then '' - echo 'Giving read-write permission to ${services.qbittorrent.user} on ${toString cfg.mediaDir}' - setfacl -R -m u:${services.qbittorrent.user}:rwx ${toString cfg.mediaDir} - '' - else "" - } + ${ + if services.jellyfin.enable + then '' + echo 'Giving read-write permission to ${services.jellyfin.user} on ${toString cfg.mediaDir}' + setfacl -R -m u:${services.jellyfin.user}:rwx ${toString cfg.mediaDir} + '' + else "" + } + ${ + if services.radarr.enable + then '' + echo 'Giving read-write permission to ${services.radarr.user} on ${toString cfg.mediaDir}' + setfacl -R -m u:${services.radarr.user}:rwx ${toString cfg.mediaDir} + '' + else "" + } + ${ + if services.sonarr.enable + then '' + echo 'Giving read-write permission to ${services.sonarr.user} on ${toString cfg.mediaDir}' + setfacl -R -m u:${services.sonarr.user}:rwx ${toString cfg.mediaDir} + '' + else "" + } + ${ + if services.qbittorrent.enable + then '' + echo 'Giving read-write permission to ${services.qbittorrent.user} on ${toString cfg.mediaDir}' + setfacl -R -m u:${services.qbittorrent.user}:rwx ${toString cfg.mediaDir} + '' + else "" + } - ''; - wantedBy = [ "multi-user.target" ]; + ''; + wantedBy = ["multi-user.target"]; serviceConfig = { Type = "oneshot"; };