diff --git a/flake.nix b/flake.nix index 80ea68b..5115f03 100644 --- a/flake.nix +++ b/flake.nix @@ -55,19 +55,21 @@ packages.${system} = { ${name} = oms; # nixpkgs.legacyPackages.${system}.${name}; mkOauth2DB = pkgs.writeScriptBin "mkOauth2DB" '' - #!${pkgs.zsh}/bis/zsh -e + #!${pkgs.zsh}/bin/zsh -e ${mkDB} ''; killOauth2DB = pkgs.writeScriptBin "killOauth2DB" '' - #!${pkgs.zsh}/bis/zsh -e + #!${pkgs.zsh}/bin/zsh -e ${killDB} ''; default = self.packages.${system}.${name}; }; devShells.${system}.default = pkgs.mkShell { - buildInputs = buildInputs; + buildInputs = buildInputs ++ (with self.packages.${system}; [mkOauth2DB killOauth2DB]); LD_LIBRARY_PATH = libPath; + OAUTH2_HBA = ./hba_file; + OAUTH2_DB_SCHEMA = ./schema.sql; shellHook = '' ${mkDB} zsh diff --git a/mkDB.sh b/mkDB.sh index bd444ec..16330e4 100755 --- a/mkDB.sh +++ b/mkDB.sh @@ -3,6 +3,8 @@ # # SPDX-License-Identifier: AGPL-3.0-or-later +[[ -z "${OAUTH2_HBA}" || -z "${OAUTH2_DB_SCHEMA}" ]] && echo "oauth2: missing env vars for hba and/or schema" && exit 1 + export OAUTH2_SERVER_PORT=9443 export OAUTH2_DB_PORT=9444 @@ -19,8 +21,8 @@ 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}" -p ${OAUTH2_DB_PORT} -f ./schema.sql postgres +pg_ctl start -D "${pgDir}" -l "${pgLogFile}" -w -o "-k ${pgSockDir} -c listen_addresses='::' -c hba_file='${OAUTH2_HBA}' -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 ${OAUTH2_DB_SCHEMA} postgres printf "Postgres logfile is %s\nPostgres socket directory is %s\n" "${pgLogFile}" "${pgSockDir}"