1
0
Fork 1
mirror of https://github.com/NixOS/nixpkgs.git synced 2024-12-05 03:53:41 +00:00

Convert "mysql"

svn path=/nixos/branches/fix-style/; revision=14389
This commit is contained in:
Marc Weber 2009-03-06 12:27:00 +00:00
parent aa78690465
commit 72303e9b6c
3 changed files with 87 additions and 70 deletions

View file

@ -479,41 +479,6 @@ in
};
mysql = {
enable = mkOption {
default = false;
description = "
Whether to enable the MySQL server.
";
};
port = mkOption {
default = "3306";
description = "Port of MySQL";
};
user = mkOption {
default = "mysql";
description = "User account under which MySQL runs";
};
dataDir = mkOption {
default = "/var/mysql";
description = "Location where MySQL stores its table files";
};
logError = mkOption {
default = "/var/log/mysql_err.log";
description = "Location of the MySQL error logfile";
};
pidDir = mkOption {
default = "/var/run/mysql";
description = "Location of the file which stores the PID of the MySQL server";
};
};
postgresql = {
enable = mkOption {
default = false;
@ -890,6 +855,7 @@ in
(import ../upstart-jobs/samba.nix) # TODO: doesn't start here (?)
(import ../upstart-jobs/ircd-hybrid.nix) # TODO: doesn't compile on x86_64-linux, can't test
(import ../upstart-jobs/xfs.nix)
(import ../upstart-jobs/mysql.nix)
# nix
(import ../upstart-jobs/nix.nix) # nix options and daemon

View file

@ -131,12 +131,6 @@ let
inherit config;
})
# MySQL server
++ optional config.services.mysql.enable
(import ../upstart-jobs/mysql.nix {
inherit config pkgs;
})
# Postgres SQL server
++ optional config.services.postgresql.enable
(import ../upstart-jobs/postgresql.nix {

View file

@ -1,4 +1,49 @@
{pkgs, config}:
{pkgs, config, ...}:
###### interface
let
inherit (pkgs.lib) mkOption mkIf;
options = {
services = {
mysql = {
enable = mkOption {
default = false;
description = "
Whether to enable the MySQL server.
";
};
port = mkOption {
default = "3306";
description = "Port of MySQL";
};
user = mkOption {
default = "mysql";
description = "User account under which MySQL runs";
};
dataDir = mkOption {
default = "/var/mysql";
description = "Location where MySQL stores its table files";
};
logError = mkOption {
default = "/var/log/mysql_err.log";
description = "Location of the MySQL error logfile";
};
pidDir = mkOption {
default = "/var/run/mysql";
description = "Location of the file which stores the PID of the MySQL server";
};
};
};
};
in
###### implementation
let
@ -14,39 +59,51 @@ let
in
{
name = "mysql";
users = [
{ name = "mysql";
description = "MySQL server user";
}
mkIf config.services.mysql.enable {
require = [
options
];
extraPath = [mysql];
job = ''
description "MySQL server"
users = {
extraUsers = [
{ name = "mysql";
description = "MySQL server user";
}
];
};
stop on shutdown
services = {
extraJobs = [{
name = "mysql";
start script
if ! test -e ${cfg.dataDir}; then
mkdir -m 0700 -p ${cfg.dataDir}
chown -R ${cfg.user} ${cfg.dataDir}
${mysql}/bin/mysql_install_db ${mysqldOptions}
fi
extraPath = [mysql];
job = ''
description "MySQL server"
mkdir -m 0700 -p ${cfg.pidDir}
chown -R ${cfg.user} ${cfg.pidDir}
end script
stop on shutdown
respawn ${mysql}/bin/mysqld ${mysqldOptions}
start script
if ! test -e ${cfg.dataDir}; then
mkdir -m 0700 -p ${cfg.dataDir}
chown -R ${cfg.user} ${cfg.dataDir}
${mysql}/bin/mysql_install_db ${mysqldOptions}
fi
stop script
pid=$(cat ${pidFile})
kill "$pid"
${mysql}/bin/mysql_waitpid "$pid" 1000
end script
'';
mkdir -m 0700 -p ${cfg.pidDir}
chown -R ${cfg.user} ${cfg.pidDir}
end script
respawn ${mysql}/bin/mysqld ${mysqldOptions}
stop script
pid=$(cat ${pidFile})
kill "$pid"
${mysql}/bin/mysql_waitpid "$pid" 1000
end script
'';
}];
};
}