mysql: Use ensure* options, split definition up into service files.
note/reason for split: nixos submodule option names aren't standardized...
This commit is contained in:
parent
627a45c070
commit
92cd95d6ce
3 changed files with 56 additions and 45 deletions
|
@ -2,24 +2,9 @@
|
|||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services;
|
||||
mkInitialDatabases = servicename: if (cfg."${servicename}".enable && (cfg."${servicename}".database.type == "mysql")) then
|
||||
let
|
||||
password = (fileContents "${config.machine.secretPath}/${servicename}_db");
|
||||
cfg = config.services."${servicename}".database;
|
||||
in {
|
||||
name = cfg.name;
|
||||
schema = pkgs.writeText "${cfg.name}.sql" ''
|
||||
create user if not exists ${cfg.user}@'localhost' identified by ${password};
|
||||
grant all privileges on ${cfg.name}.* to ${cfg.user}@'localhost' identified by ${password};
|
||||
'';
|
||||
} else { name = ""; };
|
||||
in mkIf (elem "mariaDB" config.machine.services) {
|
||||
services.mysql = {
|
||||
mkIf (elem "mariaDB" config.machine.services) {
|
||||
services.mysql = rec {
|
||||
enable = true;
|
||||
package = pkgs.mariadb;
|
||||
initialDatabases = (map mkInitialDatabases [ "mailman3" "gitea" ]);
|
||||
};
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue