@@ -7,120 +7,117 @@ with lib;
77let
88 secrets = import ../../../lib/secrets { inherit lib ; } ;
99
10- sonarrServerModule = types . submodule (
11- { config , ... } :
12- {
13- options = {
14- hostname = mkOption {
15- type = types . str ;
16- default = "127.0.0.1" ;
17- description = "Sonarr hostname" ;
18- } ;
19-
20- port = mkOption {
21- type = types . port ;
22- default = 8989 ;
23- description = "Sonarr port" ;
24- } ;
25-
26- apiKey = secrets . mkSecretOption {
27- description = "Sonarr API key." ;
28- } ;
29-
30- useSsl = mkOption {
31- type = types . bool ;
32- default = false ;
33- description = "Use SSL to connect to Sonarr" ;
34- } ;
35-
36- baseUrl = mkOption {
37- type = types . str ;
38- default = "" ;
39- example = "/sonarr" ;
40- description = "Sonarr URL base" ;
41- } ;
42-
43- activeProfileName = mkOption {
44- type = types . nullOr types . str ;
45- default = null ;
46- description = "Quality profile name. Defaults to first available quality profile in Seerr." ;
47- } ;
48-
49- activeDirectory = mkOption {
50- type = types . str ;
51- default = head ( config . nixflix . sonarr . mediaDirs or [ "/tv" ] ) ;
52- defaultText = literalExpression ''head (config.nixflix.sonarr.mediaDirs or ["/tv"])'' ;
53- description = "Root folder for TV shows" ;
54- } ;
55-
56- activeAnimeProfileName = mkOption {
57- type = types . nullOr types . str ;
58- default = null ;
59- description = "Anime quality profile name." ;
60- } ;
61-
62- activeAnimeDirectory = mkOption {
63- type = types . str ;
64- default = "" ;
65- description = "Root folder for anime" ;
66- } ;
67-
68- seriesType = mkOption {
69- type = types . enum [
70- "standard"
71- "daily"
72- ] ;
73- default = "standard" ;
74- description = "Series type for regular content" ;
75- } ;
76-
77- animeSeriesType = mkOption {
78- type = types . enum [
79- "standard"
80- "anime"
81- ] ;
82- default = "standard" ;
83- description = "Series type for anime content" ;
84- } ;
85-
86- enableSeasonFolders = mkOption {
87- type = types . bool ;
88- default = true ;
89- description = "Enable season folders" ;
90- } ;
91-
92- is4k = mkOption {
93- type = types . bool ;
94- default = false ;
95- description = "Is this a 4K Sonarr instance" ;
96- } ;
97-
98- isDefault = mkOption {
99- type = types . bool ;
100- default = false ;
101- description = "Is this the default Sonarr instance" ;
102- } ;
103-
104- externalUrl = mkOption {
105- type = types . str ;
106- default = "" ;
107- description = "External URL for Sonarr" ;
108- } ;
109-
110- syncEnabled = mkOption {
111- type = types . bool ;
112- default = false ;
113- description = "Enable automatic sync with Sonarr" ;
114- } ;
115-
116- preventSearch = mkOption {
117- type = types . bool ;
118- default = false ;
119- description = "Prevent Seerr from triggering searches" ;
120- } ;
121- } ;
122- }
123- ) ;
10+ sonarrServerModule = types . submodule {
11+ options = {
12+ hostname = mkOption {
13+ type = types . str ;
14+ default = "127.0.0.1" ;
15+ description = "Sonarr hostname" ;
16+ } ;
17+
18+ port = mkOption {
19+ type = types . port ;
20+ default = 8989 ;
21+ description = "Sonarr port" ;
22+ } ;
23+
24+ apiKey = secrets . mkSecretOption {
25+ description = "Sonarr API key." ;
26+ } ;
27+
28+ useSsl = mkOption {
29+ type = types . bool ;
30+ default = false ;
31+ description = "Use SSL to connect to Sonarr" ;
32+ } ;
33+
34+ baseUrl = mkOption {
35+ type = types . str ;
36+ default = "" ;
37+ example = "/sonarr" ;
38+ description = "Sonarr URL base" ;
39+ } ;
40+
41+ activeProfileName = mkOption {
42+ type = types . nullOr types . str ;
43+ default = null ;
44+ description = "Quality profile name. Defaults to first available quality profile in Seerr." ;
45+ } ;
46+
47+ activeDirectory = mkOption {
48+ type = types . str ;
49+ default = head ( config . nixflix . sonarr . mediaDirs or [ "/tv" ] ) ;
50+ defaultText = literalExpression ''head (config.nixflix.sonarr.mediaDirs or ["/tv"])'' ;
51+ description = "Root folder for TV shows" ;
52+ } ;
53+
54+ activeAnimeProfileName = mkOption {
55+ type = types . nullOr types . str ;
56+ default = null ;
57+ description = "Anime quality profile name." ;
58+ } ;
59+
60+ activeAnimeDirectory = mkOption {
61+ type = types . str ;
62+ default = "" ;
63+ description = "Root folder for anime" ;
64+ } ;
65+
66+ seriesType = mkOption {
67+ type = types . enum [
68+ "standard"
69+ "daily"
70+ ] ;
71+ default = "standard" ;
72+ description = "Series type for regular content" ;
73+ } ;
74+
75+ animeSeriesType = mkOption {
76+ type = types . enum [
77+ "standard"
78+ "anime"
79+ ] ;
80+ default = "standard" ;
81+ description = "Series type for anime content" ;
82+ } ;
83+
84+ enableSeasonFolders = mkOption {
85+ type = types . bool ;
86+ default = true ;
87+ description = "Enable season folders" ;
88+ } ;
89+
90+ is4k = mkOption {
91+ type = types . bool ;
92+ default = false ;
93+ description = "Is this a 4K Sonarr instance" ;
94+ } ;
95+
96+ isDefault = mkOption {
97+ type = types . bool ;
98+ default = false ;
99+ description = "Is this the default Sonarr instance" ;
100+ } ;
101+
102+ externalUrl = mkOption {
103+ type = types . str ;
104+ default = "" ;
105+ description = "External URL for Sonarr" ;
106+ } ;
107+
108+ syncEnabled = mkOption {
109+ type = types . bool ;
110+ default = false ;
111+ description = "Enable automatic sync with Sonarr" ;
112+ } ;
113+
114+ preventSearch = mkOption {
115+ type = types . bool ;
116+ default = false ;
117+ description = "Prevent Seerr from triggering searches" ;
118+ } ;
119+ } ;
120+ } ;
124121
125122 defaultInstances =
126123 ( optionalAttrs ( config . nixflix . sonarr . enable or false ) {
0 commit comments