From 490b6211f0d81ade7c9a6cb09418a0fc57a99c6c Mon Sep 17 00:00:00 2001 From: David Mosbach Date: Tue, 16 Jan 2024 17:31:11 +0000 Subject: [PATCH] connect to db via local socket --- app/UniWorX.hs | 5 +++-- flake.nix | 2 +- mkDB.sh | 14 +++++++------- 3 files changed, 11 insertions(+), 10 deletions(-) mode change 100644 => 100755 mkDB.sh diff --git a/app/UniWorX.hs b/app/UniWorX.hs index 06f45d5..b85d14f 100644 --- a/app/UniWorX.hs +++ b/app/UniWorX.hs @@ -53,8 +53,9 @@ testUsers = runDB :: ReaderT SqlBackend (NoLoggingT (ResourceT IO)) a -> IO a runDB action = do - Just port <- lookupEnv "OAUTH2_DB_PORT" >>= \p -> return $ p <|> Just "9444" - let connStr = fromString @ConnectionString $ "host=localhost dbname=test_users user=oauth2mock password=0000 port=" ++ port + Just port <- lookupEnv "OAUTH2_DB_PORT" -- >>= \p -> return $ p <|> Just "9444" + Just host <- lookupEnv "PGHOST" + let connStr = fromString @ConnectionString $ "host=" ++ host ++ " dbname=test_users user=oauth2mock password=0000 port=" ++ port runStderrLoggingT $ withPostgresqlPool connStr 10 $ \pool -> liftIO $ flip runSqlPersistMPool pool action initDB :: IO () diff --git a/flake.nix b/flake.nix index 1f6a556..8fce8c7 100644 --- a/flake.nix +++ b/flake.nix @@ -32,7 +32,7 @@ devShells.${system}.default = pkgs.mkShell { buildInputs = buildInputs; LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath buildInputs; - shellHook = "./mkDB.sh"; + shellHook = builtins.readFile ./mkDB.sh; }; }; } diff --git a/mkDB.sh b/mkDB.sh old mode 100644 new mode 100755 index 86c0988..79d4526 --- a/mkDB.sh +++ b/mkDB.sh @@ -1,5 +1,3 @@ -#!/bin/sh -e - export OAUTH2_SERVER_PORT=9443 export OAUTH2_DB_PORT=9444 @@ -9,13 +7,15 @@ if [ ! -d "${tmpdir}" ]; then mkdir ${tmpdir} fi -pgDir=$(mktemp -d --tmpdir="${tmpdir}" postgresql.XXXXXX) -pgSockDir=$(mktemp -d --tmpdir="${tmpdir}" postgresql.sock.XXXXXX) -pgLogFile=$(mktemp --tmpdir="${tmpdir}" postgresql.XXXXXX.log) +absdir=$(realpath ${tmpdir}) + +pgDir=$(mktemp -d --tmpdir="${absdir}" postgresql.XXXXXX) +pgSockDir=$(mktemp -d --tmpdir="${absdir}" postgresql.sock.XXXXXX) +pgLogFile=$(mktemp --tmpdir="${absdir}" postgresql.XXXXXX.log) initdb --no-locale -D "${pgDir}" -pg_ctl start -D "${pgDir}" -l "${pgLogFile}" -w -o "-k ${pgSockDir} -c listen_addresses=''' -c hba_file='hba_file' -p ${OAUTH2_DB_PORT} -h localhost -c unix_socket_permissions=0700 -c max_connections=10 -c session_preload_libraries=auto_explain -c auto_explain.log_min_duration=100ms" -psql -h "${pgSockDir}" -f ./schema.sql postgres +pg_ctl start -D "${pgDir}" -l "${pgLogFile}" -w -o "-k ${pgSockDir} -c listen_addresses='::' -c hba_file='hba_file' -p ${OAUTH2_DB_PORT} -h localhost -c unix_socket_permissions=0700 -c max_connections=10 -c session_preload_libraries=auto_explain -c auto_explain.log_min_duration=100ms" +psql -h "${pgSockDir}" -p ${OAUTH2_DB_PORT} -f ./schema.sql postgres printf "Postgres logfile is %s\nPostgres socket directory is %s\n" "${pgLogFile}" "${pgSockDir}"