@@ -11,9 +11,18 @@ with lib; let
1111 stateDir = "${ nixflix . stateDir } /${ serviceName } " ;
1212
1313 arrConfigModule = import ./configModule.nix { inherit lib ; } ;
14- mkArrHostConfigService = import ./hostConfigService.nix { inherit lib pkgs ; } ;
15- mkArrRootFoldersService = import ./rootFoldersService.nix { inherit lib pkgs ; } ;
16- mkArrDownloadClientsService = import ./downloadClientsService.nix { inherit lib pkgs ; } ;
14+ mkArrHostConfigService = import ./hostConfigService.nix {
15+ inherit lib pkgs ;
16+ restishPackage = nixflix . restish . package ;
17+ } ;
18+ mkArrRootFoldersService = import ./rootFoldersService.nix {
19+ inherit lib pkgs ;
20+ restishPackage = nixflix . restish . package ;
21+ } ;
22+ mkArrDownloadClientsService = import ./downloadClientsService.nix {
23+ inherit lib pkgs ;
24+ restishPackage = nixflix . restish . package ;
25+ } ;
1726 capitalizedName = toUpper ( substring 0 1 serviceName ) + substring 1 ( - 1 ) serviceName ;
1827 usesMediaDirs = ! ( elem serviceName [ "prowlarr" ] ) ;
1928 serviceSupportsUserGroup = ! ( elem serviceName [ "prowlarr" ] ) ;
@@ -131,45 +140,66 @@ in {
131140 }
132141 ] ;
133142
134- nixflix . ${ serviceName } . config = {
135- apiKeyPath = mkDefault null ;
136- hostConfig = {
137- username = mkDefault serviceName ;
138- passwordPath = mkDefault null ;
139- instanceName = mkDefault capitalizedName ;
140- urlBase = mkDefault (
141- if nixflix . serviceNameIsUrlBase
142- then "/${ serviceName } "
143- else ""
143+ nixflix = {
144+ ${ serviceName } . config = {
145+ apiKeyPath = mkDefault null ;
146+ hostConfig = {
147+ username = mkDefault serviceName ;
148+ passwordPath = mkDefault null ;
149+ instanceName = mkDefault capitalizedName ;
150+ urlBase = mkDefault (
151+ if nixflix . serviceNameIsUrlBase
152+ then "/${ serviceName } "
153+ else ""
154+ ) ;
155+ } ;
156+ downloadClients = mkDefault (
157+ optionals ( config . nixflix . sabnzbd . enable or false ) [
158+ {
159+ name = "SABnzbd" ;
160+ implementationName = "SABnzbd" ;
161+ inherit ( config . nixflix . sabnzbd ) apiKeyPath ;
162+ inherit ( config . nixflix . sabnzbd . settings ) host ;
163+ inherit ( config . nixflix . sabnzbd . settings ) port ;
164+ urlBase = config . nixflix . sabnzbd . settings . url_base ;
165+ }
166+ ]
144167 ) ;
145168 } ;
146- downloadClients = mkDefault (
147- optionals ( config . nixflix . sabnzbd . enable or false ) [
169+
170+ dirRegistrations =
171+ [
148172 {
149- name = "SABnzbd" ;
150- implementationName = "SABnzbd" ;
151- inherit ( config . nixflix . sabnzbd ) apiKeyPath ;
152- inherit ( config . nixflix . sabnzbd . settings ) host ;
153- inherit ( config . nixflix . sabnzbd . settings ) port ;
154- urlBase = config . nixflix . sabnzbd . settings . url_base ;
173+ inherit ( cfg ) group ;
174+ dir = stateDir ;
175+ owner = cfg . user ;
155176 }
156177 ]
157- ) ;
158- } ;
178+ ++ optionals usesMediaDirs ( map ( mediaDir : {
179+ inherit ( cfg ) group ;
180+ inherit ( mediaDir ) dir owner ;
181+ } )
182+ cfg . mediaDirs ) ;
159183
160- nixflix . dirRegistrations =
161- [
162- {
163- inherit ( cfg ) group ;
164- dir = stateDir ;
165- owner = cfg . user ;
166- }
167- ]
168- ++ optionals usesMediaDirs ( map ( mediaDir : {
169- inherit ( cfg ) group ;
170- inherit ( mediaDir ) dir owner ;
171- } )
172- cfg . mediaDirs ) ;
184+ restish . services = mkIf ( cfg . config . apiKeyPath != null ) {
185+ ${ serviceName } = let
186+ host =
187+ if cfg . config . hostConfig ? bindAddress && cfg . config . hostConfig . bindAddress != null
188+ then
189+ if cfg . config . hostConfig . bindAddress == "*"
190+ then "127.0.0.1"
191+ else cfg . config . hostConfig . bindAddress
192+ else "127.0.0.1" ;
193+ urlBase =
194+ if cfg . config . hostConfig ? urlBase && cfg . config . hostConfig . urlBase != null
195+ then cfg . config . hostConfig . urlBase
196+ else "" ;
197+ in {
198+ baseUrl = "http://${ host } :${ toString cfg . config . hostConfig . port } ${ urlBase } /api/${ cfg . config . apiVersion } " ;
199+ inherit ( cfg . config ) apiKeyPath ;
200+ } ;
201+ } ;
202+ } ;
173203
174204 services = {
175205 ${ serviceName } =
0 commit comments