diff --git a/database-setup.nu b/database-setup.nu new file mode 100644 index 0000000..423a40c --- /dev/null +++ b/database-setup.nu @@ -0,0 +1,27 @@ +def main [ + user_config: string + database_config: string +] { + alias psql = ^psql --tuples-only --no-align + + if not ($user_config | path exists) { + print $"($user_config) does not exist!" + exit 1 + } + if not ($database_config | path exists) { + print $"($database_config) does not exist!" + exit 1 + } + + let users = ($user_config | open) + let databases = ($database_config | open) + + $users | debug + $databases | debug + + $users | each { + |user| + let exists = ("SELECT 1 FROM pg_roles WHERE rolname=:'username';" | psql --variable username=$"($user.username)") + $exists | debug + } +} diff --git a/flake.nix b/flake.nix index 6409e4c..5bc1466 100644 --- a/flake.nix +++ b/flake.nix @@ -427,6 +427,11 @@ useDefaultShell = true; }; + systemd.tmpfiles.rules = [ + "d /var/lib/posgresql 0750 postgresql postgresql -" + "d /var/lib/posgresql/15 0700 postgresql postgresql -" + ]; + systemd.services.postgresql = let hbaFile = pkgs.writeTextDir "pg_hba.conf" ''