forked from mirrors/nixpkgs
nixos/wordpress: Drop old deprecated interface (#152674)
This commit is contained in:
parent
3db4201bc8
commit
c95e816c65
|
@ -279,6 +279,14 @@
|
|||
<literal>virtualisation.docker.daemon.settings</literal>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The backward compatibility in
|
||||
<literal>services.wordpress</literal> to configure sites with
|
||||
the old interface has been removed. Please use
|
||||
<literal>services.wordpress.sites</literal> instead.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The backward compatibility in
|
||||
|
|
|
@ -92,6 +92,10 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
- If you previously used `/etc/docker/daemon.json`, you need to incorporate the changes into the new option `virtualisation.docker.daemon.settings`.
|
||||
|
||||
- The backward compatibility in `services.wordpress` to configure sites with
|
||||
the old interface has been removed. Please use `services.wordpress.sites`
|
||||
instead.
|
||||
|
||||
- The backward compatibility in `services.dokuwiki` to configure sites with the
|
||||
old interface has been removed. Please use `services.dokuwiki.sites` instead.
|
||||
|
||||
|
|
|
@ -1,20 +1,14 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
|
||||
let
|
||||
inherit (lib) mkDefault mkEnableOption mkForce mkIf mkMerge mkOption types;
|
||||
inherit (lib) any attrValues concatMapStringsSep flatten literalExpression;
|
||||
inherit (lib) filterAttrs mapAttrs mapAttrs' mapAttrsToList nameValuePair optional optionalAttrs optionalString;
|
||||
with lib;
|
||||
|
||||
cfg = migrateOldAttrs config.services.wordpress;
|
||||
let
|
||||
cfg = config.services.wordpress;
|
||||
eachSite = cfg.sites;
|
||||
user = "wordpress";
|
||||
webserver = config.services.${cfg.webserver};
|
||||
stateDir = hostName: "/var/lib/wordpress/${hostName}";
|
||||
|
||||
# Migrate config.services.wordpress.<hostName> to config.services.wordpress.sites.<hostName>
|
||||
oldSites = filterAttrs (o: _: o != "sites" && o != "webserver");
|
||||
migrateOldAttrs = cfg: cfg // { sites = cfg.sites // oldSites cfg; };
|
||||
|
||||
pkg = hostName: cfg: pkgs.stdenv.mkDerivation rec {
|
||||
pname = "wordpress-${hostName}";
|
||||
version = src.version;
|
||||
|
@ -266,36 +260,29 @@ in
|
|||
{
|
||||
# interface
|
||||
options = {
|
||||
services.wordpress = mkOption {
|
||||
type = types.submodule {
|
||||
# Used to support old interface
|
||||
freeformType = types.attrsOf (types.submodule siteOpts);
|
||||
services.wordpress = {
|
||||
|
||||
# New interface
|
||||
options.sites = mkOption {
|
||||
type = types.attrsOf (types.submodule siteOpts);
|
||||
default = {};
|
||||
description = "Specification of one or more WordPress sites to serve";
|
||||
};
|
||||
|
||||
options.webserver = mkOption {
|
||||
type = types.enum [ "httpd" "nginx" "caddy" ];
|
||||
default = "httpd";
|
||||
description = ''
|
||||
Whether to use apache2 or nginx for virtual host management.
|
||||
|
||||
Further nginx configuration can be done by adapting <literal>services.nginx.virtualHosts.<name></literal>.
|
||||
See <xref linkend="opt-services.nginx.virtualHosts"/> for further information.
|
||||
|
||||
Further apache2 configuration can be done by adapting <literal>services.httpd.virtualHosts.<name></literal>.
|
||||
See <xref linkend="opt-services.httpd.virtualHosts"/> for further information.
|
||||
'';
|
||||
};
|
||||
sites = mkOption {
|
||||
type = types.attrsOf (types.submodule siteOpts);
|
||||
default = {};
|
||||
description = "Specification of one or more WordPress sites to serve";
|
||||
};
|
||||
default = {};
|
||||
description = "Wordpress configuration";
|
||||
};
|
||||
|
||||
webserver = mkOption {
|
||||
type = types.enum [ "httpd" "nginx" "caddy" ];
|
||||
default = "httpd";
|
||||
description = ''
|
||||
Whether to use apache2 or nginx for virtual host management.
|
||||
|
||||
Further nginx configuration can be done by adapting <literal>services.nginx.virtualHosts.<name></literal>.
|
||||
See <xref linkend="opt-services.nginx.virtualHosts"/> for further information.
|
||||
|
||||
Further apache2 configuration can be done by adapting <literal>services.httpd.virtualHosts.<name></literal>.
|
||||
See <xref linkend="opt-services.httpd.virtualHosts"/> for further information.
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
# implementation
|
||||
|
@ -312,8 +299,6 @@ in
|
|||
}) eachSite);
|
||||
|
||||
|
||||
warnings = mapAttrsToList (hostName: _: ''services.wordpress."${hostName}" is deprecated use services.wordpress.sites."${hostName}"'') (oldSites cfg);
|
||||
|
||||
services.mysql = mkIf (any (v: v.database.createLocally) (attrValues eachSite)) {
|
||||
enable = true;
|
||||
package = mkDefault pkgs.mariadb;
|
||||
|
|
|
@ -15,15 +15,12 @@ import ./make-test-python.nix ({ pkgs, ... }:
|
|||
services.httpd.adminAddr = "webmaster@site.local";
|
||||
services.httpd.logPerVirtualHost = true;
|
||||
|
||||
services.wordpress = {
|
||||
# Test support for old interface
|
||||
services.wordpress.sites = {
|
||||
"site1.local" = {
|
||||
database.tablePrefix = "site1_";
|
||||
};
|
||||
sites = {
|
||||
"site2.local" = {
|
||||
database.tablePrefix = "site2_";
|
||||
};
|
||||
"site2.local" = {
|
||||
database.tablePrefix = "site2_";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue