mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-13 21:25:30 +03:00
nixos/mysql: fix initialScript option
which was wrongly specified as types.lines Prevent it from getting copied to nix store as people might use it for credentials, and make the tests cover it.
This commit is contained in:
parent
77978c1518
commit
14571f5ed0
2 changed files with 13 additions and 2 deletions
|
@ -133,7 +133,7 @@ in
|
|||
};
|
||||
|
||||
initialScript = mkOption {
|
||||
type = types.nullOr types.lines;
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
description = "A file containing SQL statements to be executed on the first startup. Can be used for granting certain permissions on the database";
|
||||
};
|
||||
|
@ -363,6 +363,8 @@ in
|
|||
${optionalString (database.schema != null) ''
|
||||
echo 'use `${database.name}`;'
|
||||
|
||||
# TODO: this silently falls through if database.schema does not exist,
|
||||
# we should catch this somehow and exit, but can't do it here because we're in a subshell.
|
||||
if [ -f "${database.schema}" ]
|
||||
then
|
||||
cat ${database.schema}
|
||||
|
@ -399,7 +401,9 @@ in
|
|||
${optionalString (cfg.initialScript != null)
|
||||
''
|
||||
# Execute initial script
|
||||
cat ${cfg.initialScript} | ${mysql}/bin/mysql -u root -N
|
||||
# using toString to avoid copying the file to nix store if given as path instead of string,
|
||||
# as it might contain credentials
|
||||
cat ${toString cfg.initialScript} | ${mysql}/bin/mysql -u root -N
|
||||
''}
|
||||
|
||||
${optionalString (cfg.rootPassword != null)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue