Signed-off-by: Christoph Schmatzler <christoph@schmatzler.com>
This commit is contained in:
2025-08-23 16:05:11 +00:00
parent 14924e7b7b
commit acd58a2f53
5 changed files with 39 additions and 41 deletions

View File

@@ -27,6 +27,4 @@
TrackpadThreeFingerDrag = true; TrackpadThreeFingerDrag = true;
}; };
}; };
} }

View File

@@ -4,4 +4,3 @@
nix-direnv.enable = true; nix-direnv.enable = true;
}; };
} }

View File

@@ -1,7 +1,4 @@
{ {pkgs, ...}: {
pkgs,
...
}: {
imports = [ imports = [
./zellij.nix ./zellij.nix
]; ];

View File

@@ -105,4 +105,3 @@ final: prev: {
''; '';
}); });
} }

View File

@@ -1,5 +1,9 @@
final: prev: { final: prev: {
postgresql = { config, lib, ... }: let postgresql = {
config,
lib,
...
}: let
cfg = config.services.postgresql; cfg = config.services.postgresql;
postStartScript = prev.writeScript "postgresql-post-start" '' postStartScript = prev.writeScript "postgresql-post-start" ''
@@ -17,7 +21,8 @@ final: prev: {
echo "Creating database: ${prev.lib.escapeShellArg db}" echo "Creating database: ${prev.lib.escapeShellArg db}"
${cfg.package}/bin/createdb -h localhost -p ${toString cfg.port} -U ${cfg.superUser} ${prev.lib.escapeShellArg db} ${cfg.package}/bin/createdb -h localhost -p ${toString cfg.port} -U ${cfg.superUser} ${prev.lib.escapeShellArg db}
fi fi
'') cfg.ensureDatabases} '')
cfg.ensureDatabases}
# Create users and set permissions # Create users and set permissions
${prev.lib.concatMapStringsSep "\n" (user: '' ${prev.lib.concatMapStringsSep "\n" (user: ''
@@ -49,7 +54,8 @@ final: prev: {
echo "Granting ${prev.lib.escapeShellArg perm} to ${prev.lib.escapeShellArg user.name}" echo "Granting ${prev.lib.escapeShellArg perm} to ${prev.lib.escapeShellArg user.name}"
${cfg.package}/bin/psql -h localhost -p ${toString cfg.port} -U ${cfg.superUser} -c "GRANT ${prev.lib.escapeShellArg perm} TO \"${prev.lib.escapeShellArg user.name}\"" ${cfg.package}/bin/psql -h localhost -p ${toString cfg.port} -U ${cfg.superUser} -c "GRANT ${prev.lib.escapeShellArg perm} TO \"${prev.lib.escapeShellArg user.name}\""
'') (prev.lib.optionals (user ? ensurePermissions) (prev.lib.mapAttrsToList (target: perm: "${perm} ON ${target}") user.ensurePermissions))} '') (prev.lib.optionals (user ? ensurePermissions) (prev.lib.mapAttrsToList (target: perm: "${perm} ON ${target}") user.ensurePermissions))}
'') cfg.ensureUsers} '')
cfg.ensureUsers}
# Run initial script if provided # Run initial script if provided
${prev.lib.optionalString (cfg.initialScript != null) '' ${prev.lib.optionalString (cfg.initialScript != null) ''
@@ -57,7 +63,6 @@ final: prev: {
${cfg.package}/bin/psql -h localhost -p ${toString cfg.port} -U ${cfg.superUser} -f ${cfg.initialScript} ${cfg.package}/bin/psql -h localhost -p ${toString cfg.port} -U ${cfg.superUser} -f ${cfg.initialScript}
''} ''}
''; '';
in { in {
config = prev.lib.mkIf cfg.enable { config = prev.lib.mkIf cfg.enable {
launchd.user.agents.postgresql = prev.lib.mkIf (cfg.ensureDatabases != [] || cfg.ensureUsers != [] || cfg.initialScript != null) { launchd.user.agents.postgresql = prev.lib.mkIf (cfg.ensureDatabases != [] || cfg.ensureUsers != [] || cfg.initialScript != null) {