Implement services.httpd.virtualHosts using the module system
This commit is contained in:
parent
30a36f9a80
commit
f8a9eb9f00
@ -38,21 +38,7 @@ let
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
vhostOptions = import ./per-server-options.nix {
|
allHosts = [mainCfg] ++ mainCfg.virtualHosts;
|
||||||
inherit mkOption;
|
|
||||||
forMainServer = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
vhosts = let
|
|
||||||
makeVirtualHost = cfgIn:
|
|
||||||
let
|
|
||||||
# Fill in defaults for missing options.
|
|
||||||
cfg = addDefaultOptionValues vhostOptions cfgIn;
|
|
||||||
in cfg;
|
|
||||||
in map makeVirtualHost mainCfg.virtualHosts;
|
|
||||||
|
|
||||||
|
|
||||||
allHosts = [mainCfg] ++ vhosts;
|
|
||||||
|
|
||||||
|
|
||||||
callSubservices = serverInfo: defs:
|
callSubservices = serverInfo: defs:
|
||||||
@ -86,7 +72,7 @@ let
|
|||||||
|
|
||||||
mainSubservices = subservicesFor mainCfg;
|
mainSubservices = subservicesFor mainCfg;
|
||||||
|
|
||||||
allSubservices = mainSubservices ++ concatMap subservicesFor vhosts;
|
allSubservices = mainSubservices ++ concatMap subservicesFor mainCfg.virtualHosts;
|
||||||
|
|
||||||
|
|
||||||
# !!! should be in lib
|
# !!! should be in lib
|
||||||
@ -389,7 +375,7 @@ let
|
|||||||
${perServerConf false vhost}
|
${perServerConf false vhost}
|
||||||
</VirtualHost>
|
</VirtualHost>
|
||||||
'';
|
'';
|
||||||
in concatMapStrings makeVirtualHost vhosts
|
in concatMapStrings makeVirtualHost mainCfg.virtualHosts
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
@ -436,7 +422,7 @@ in
|
|||||||
|
|
||||||
configFile = mkOption {
|
configFile = mkOption {
|
||||||
default = confFile;
|
default = confFile;
|
||||||
example = ''pkgs.writeText "httpd.conf" "# my custom config file ...";'';
|
example = literalExample ''pkgs.writeText "httpd.conf" "# my custom config file ...";'';
|
||||||
description = "
|
description = "
|
||||||
Overridable config file to use for Apache. By default, use the
|
Overridable config file to use for Apache. By default, use the
|
||||||
file automatically generated by nixos.
|
file automatically generated by nixos.
|
||||||
@ -507,6 +493,12 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
virtualHosts = mkOption {
|
virtualHosts = mkOption {
|
||||||
|
type = types.listOf (types.submodule (
|
||||||
|
{ options = import ./per-server-options.nix {
|
||||||
|
inherit mkOption;
|
||||||
|
forMainServer = false;
|
||||||
|
};
|
||||||
|
}));
|
||||||
default = [];
|
default = [];
|
||||||
example = [
|
example = [
|
||||||
{ hostName = "foo";
|
{ hostName = "foo";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user