From c94f5ccb7293e1e01952885aaf1be7e96436481e Mon Sep 17 00:00:00 2001 From: Snorre Ettrup Altschul Date: Thu, 3 Apr 2025 22:21:25 +0200 Subject: [PATCH] I FORGOT TO FUCKING FORMAT FUUUUUCK --- modules/options/default.nix | 110 +++++++++++++++--------------- modules/options/system.nix | 131 +++++++++++++++++++----------------- 2 files changed, 124 insertions(+), 117 deletions(-) diff --git a/modules/options/default.nix b/modules/options/default.nix index f48485f..1c89371 100644 --- a/modules/options/default.nix +++ b/modules/options/default.nix @@ -1,25 +1,25 @@ -{ config -, pkgs -, lib -, ... -}: -let +{ + config, + pkgs, + lib, + ... +}: let cfg = config.services.declarative-jellyfin; - toXml' = (import ../../lib { nixpkgs = pkgs; }).toXMLGeneric; + toXml' = (import ../../lib {nixpkgs = pkgs;}).toXMLGeneric; in -with lib; { - imports = [ - ./system.nix - ./encoding.nix - ./network.nix - ./branding.nix - ]; - options.services.declarative-jellyfin = { - enable = mkEnableOption "Jellyfin Service"; - }; + with lib; { + imports = [ + ./system.nix + ./encoding.nix + ./network.nix + ./branding.nix + ]; + options.services.declarative-jellyfin = { + enable = mkEnableOption "Jellyfin Service"; + }; - config = - mkIf cfg.enable + config = + mkIf cfg.enable ( let isStrList = x: builtins.all (x: builtins.isString x) x; @@ -29,11 +29,11 @@ with lib; { if !(builtins.hasAttr "tag" x) then attrsets.mapAttrsToList - (tag: value: { - inherit tag; - content = prepass value; - }) - x + (tag: value: { + inherit tag; + content = prepass value; + }) + x else if (builtins.hasAttr "content" x) then { tag = x.tag; @@ -61,43 +61,39 @@ with lib; { }; content = prepass x; }); - in - { + in { system.activationScripts = { link-network-xml = - lib.stringAfter [ "var" ] - ( - let - storeFile = pkgs.writeText "network.xml" (toXml "NetworkConfiguration" cfg.network); - in - '' - mkdir -p "/var/lib/jellyfin/config" - cp -s "${storeFile}" "/var/lib/jellyfin/config/network.xml" - '' - ); + lib.stringAfter ["var"] + ( + let + storeFile = pkgs.writeText "network.xml" (toXml "NetworkConfiguration" cfg.network); + in '' + mkdir -p "/var/lib/jellyfin/config" + cp -s "${storeFile}" "/var/lib/jellyfin/config/network.xml" + '' + ); link-encoding-xml = - lib.stringAfter [ "var" ] - ( - let - storeFile = pkgs.writeText "encoding.xml" (toXml "EncodingOptions" cfg.network); - in - '' - mkdir -p "/var/lib/jellyfin/config" - cp -s "${storeFile}" "/var/lib/jellyfin/config/encoding.xml" - '' - ); + lib.stringAfter ["var"] + ( + let + storeFile = pkgs.writeText "encoding.xml" (toXml "EncodingOptions" cfg.network); + in '' + mkdir -p "/var/lib/jellyfin/config" + cp -s "${storeFile}" "/var/lib/jellyfin/config/encoding.xml" + '' + ); link-system-xml = - lib.stringAfter [ "var" ] - ( - let - storeFile = pkgs.writeText "system.xml" (toXml "ServerConfiguration" cfg.network); - in - '' - mkdir -p "/var/lib/jellyfin/config" - cp -s "${storeFile}" "/var/lib/jellyfin/config/system.xml" - '' - ); + lib.stringAfter ["var"] + ( + let + storeFile = pkgs.writeText "system.xml" (toXml "ServerConfiguration" cfg.network); + in '' + mkdir -p "/var/lib/jellyfin/config" + cp -s "${storeFile}" "/var/lib/jellyfin/config/system.xml" + '' + ); }; } ); -} + } diff --git a/modules/options/system.nix b/modules/options/system.nix index 7fb20f6..0095e23 100644 --- a/modules/options/system.nix +++ b/modules/options/system.nix @@ -1,9 +1,14 @@ -{ lib, config, ... }: -with lib; -let - mkStrOption = default: description: { type = types.str; inherit default description; }; -in { + lib, + config, + ... +}: +with lib; let + mkStrOption = default: description: { + type = types.str; + inherit default description; + }; +in { options.services.declarative-jellyfin.system = { ServerName = mkStrOption config.networking.hostName '' This name will be used to identify the server and will default to the server's hostname. @@ -152,7 +157,7 @@ in }; ImageSavingConvention = mkOption { - type = types.enum [ "Legacy" ]; + type = types.enum ["Legacy"]; default = "Legacy"; description = "i got no idea what this is"; }; @@ -164,96 +169,96 @@ in tag = "MetadataOptions"; content = { ItemType = "Movie"; - DisabledMetadataSavers = [ ]; - DisabledMetadataFetchers = [ ]; - LocalMetadataReaderOrder = [ ]; - MetadataFetcherOrder = [ ]; - DisabledImageFetchers = [ ]; - ImageFetcherOrder = [ ]; + DisabledMetadataSavers = []; + DisabledMetadataFetchers = []; + LocalMetadataReaderOrder = []; + MetadataFetcherOrder = []; + DisabledImageFetchers = []; + ImageFetcherOrder = []; }; } { tag = "MetadataOptions"; content = { ItemType = "MusicVideo"; - DisabledMetadataSavers = [ ]; - DisabledMetadataFetchers = [ "The Open Movie Database" ]; - LocalMetadataReaderOrder = [ ]; - MetadataFetcherOrder = [ ]; - DisabledImageFetchers = [ "The Open Movie Database" ]; - ImageFetcherOrder = [ ]; + DisabledMetadataSavers = []; + DisabledMetadataFetchers = ["The Open Movie Database"]; + LocalMetadataReaderOrder = []; + MetadataFetcherOrder = []; + DisabledImageFetchers = ["The Open Movie Database"]; + ImageFetcherOrder = []; }; } { tag = "MetadataOptions"; content = { ItemType = "Series"; - DisabledMetadataSavers = [ ]; - DisabledMetadataFetchers = [ ]; - LocalMetadataReaderOrder = [ ]; - MetadataFetcherOrder = [ ]; - DisabledImageFetchers = [ ]; - ImageFetcherOrder = [ ]; + DisabledMetadataSavers = []; + DisabledMetadataFetchers = []; + LocalMetadataReaderOrder = []; + MetadataFetcherOrder = []; + DisabledImageFetchers = []; + ImageFetcherOrder = []; }; } { tag = "MetadataOptions"; content = { ItemType = "MusicAlbum"; - DisabledMetadataSavers = [ ]; - DisabledMetadataFetchers = [ "TheAudioDB" ]; - LocalMetadataReaderOrder = [ ]; - MetadataFetcherOrder = [ ]; - DisabledImageFetchers = [ ]; - ImageFetcherOrder = [ ]; + DisabledMetadataSavers = []; + DisabledMetadataFetchers = ["TheAudioDB"]; + LocalMetadataReaderOrder = []; + MetadataFetcherOrder = []; + DisabledImageFetchers = []; + ImageFetcherOrder = []; }; } { tag = "MetadataOptions"; content = { ItemType = "MusicArtist"; - DisabledMetadataSavers = [ ]; - DisabledMetadataFetchers = [ "TheAudioDB" ]; - LocalMetadataReaderOrder = [ ]; - MetadataFetcherOrder = [ ]; - DisabledImageFetchers = [ ]; - ImageFetcherOrder = [ ]; + DisabledMetadataSavers = []; + DisabledMetadataFetchers = ["TheAudioDB"]; + LocalMetadataReaderOrder = []; + MetadataFetcherOrder = []; + DisabledImageFetchers = []; + ImageFetcherOrder = []; }; } { tag = "MetadataOptions"; content = { ItemType = "BoxSet"; - DisabledMetadataSavers = [ ]; - DisabledMetadataFetchers = [ ]; - LocalMetadataReaderOrder = [ ]; - MetadataFetcherOrder = [ ]; - DisabledImageFetchers = [ ]; - ImageFetcherOrder = [ ]; + DisabledMetadataSavers = []; + DisabledMetadataFetchers = []; + LocalMetadataReaderOrder = []; + MetadataFetcherOrder = []; + DisabledImageFetchers = []; + ImageFetcherOrder = []; }; } { tag = "MetadataOptions"; content = { ItemType = "Season"; - DisabledMetadataSavers = [ ]; - DisabledMetadataFetchers = [ ]; - LocalMetadataReaderOrder = [ ]; - MetadataFetcherOrder = [ ]; - DisabledImageFetchers = [ ]; - ImageFetcherOrder = [ ]; + DisabledMetadataSavers = []; + DisabledMetadataFetchers = []; + LocalMetadataReaderOrder = []; + MetadataFetcherOrder = []; + DisabledImageFetchers = []; + ImageFetcherOrder = []; }; } { tag = "MetadataOptions"; content = { ItemType = "Episode"; - DisabledMetadataSavers = [ ]; - DisabledMetadataFetchers = [ ]; - LocalMetadataReaderOrder = [ ]; - MetadataFetcherOrder = [ ]; - DisabledImageFetchers = [ ]; - ImageFetcherOrder = [ ]; + DisabledMetadataSavers = []; + DisabledMetadataFetchers = []; + LocalMetadataReaderOrder = []; + MetadataFetcherOrder = []; + DisabledImageFetchers = []; + ImageFetcherOrder = []; }; } ]; @@ -273,7 +278,7 @@ in ContentTypes = mkOption { type = with types; listOf str; - default = [ ]; + default = []; }; RemoteClientBitrateLimit = mkOption { @@ -292,7 +297,7 @@ in CodecsUsed = mkOption { type = with types; listOf str; - default = [ ]; + default = []; }; PluginRepositories = mkOption { @@ -322,7 +327,7 @@ in PathSubstitutions = mkOption { type = with types; listOf str; - default = [ ]; + default = []; }; EnableSlowResponseWarning = mkOption { @@ -368,9 +373,15 @@ in ''; }; - RemoveOldPlugins = mkOption { type = types.bool; default = true; }; + RemoveOldPlugins = mkOption { + type = types.bool; + default = true; + }; - AllowClientLogUpload = mkOption { type = types.bool; default = true; }; + AllowClientLogUpload = mkOption { + type = types.bool; + default = true; + }; DummyChapterDuration = mkOption { type = types.int; @@ -436,7 +447,7 @@ in ''; ScanBehavior = mkOption { - type = types.enum [ "NonBlocking" "Blocking" ]; + type = types.enum ["NonBlocking" "Blocking"]; default = "NonBlocking"; description = '' The default behavior is non blocking, which will add media to the library before trickplay generation is done. Blocking will ensure trickplay files are generated before media is added to the library, but will make scans significantly longer.