Work on getting a development environment set up
for developing the mx-aliases service
This commit is contained in:
parent
af3c61d75c
commit
00121f2516
6 changed files with 91 additions and 0 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,4 +1,5 @@
|
|||
.direnv/
|
||||
.dev/
|
||||
result/
|
||||
.DS_Store
|
||||
rust/target
|
||||
|
|
80
nix/packages/mx-aliases-devenv-up/default.nix
Normal file
80
nix/packages/mx-aliases-devenv-up/default.nix
Normal file
|
@ -0,0 +1,80 @@
|
|||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
mock-oidc-provider = pkgs.stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "mock-oidc-provider";
|
||||
version = "0.1.1";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "bluecatengineering";
|
||||
repo = "mock-oidc-provider";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-kGS8/4b/RuxUjr+GOeDXl2RCkBTu50gBdrrFwRhvRXE=";
|
||||
};
|
||||
npmDeps = pkgs.fetchNpmDeps {
|
||||
inherit (finalAttrs) src;
|
||||
hash = "sha256-f+ZjL1sCcyFewKOCX54sHAv5TUBx6LiWZUhnSpY2t0I=";
|
||||
};
|
||||
nativeBuildInputs = [
|
||||
pkgs.npmHooks.npmConfigHook
|
||||
pkgs.npmHooks.npmInstallHook
|
||||
pkgs.nodejs
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $out/bin
|
||||
echo -e "#!${lib.getExe pkgs.bash}\nexec ${lib.getExe' pkgs.nodejs "node"} $out/lib/node_modules/@bluecateng/mock-oidc-provider/src/server.js" > $out/bin/mock-oidc-provider
|
||||
chmod +x $out/bin/mock-oidc-provider
|
||||
'';
|
||||
});
|
||||
start-postgres = pkgs.writeShellApplication {
|
||||
name = "start-postgres";
|
||||
runtimeInputs = [
|
||||
pkgs.postgresql
|
||||
pkgs.uutils-coreutils-noprefix
|
||||
pkgs.khscodes.find-flake-root
|
||||
];
|
||||
text = ''
|
||||
flake_root=$(find-flake-root)
|
||||
PGDATA="$flake_root/.dev/mx-aliases/postgresql"
|
||||
export PGDATA
|
||||
PGPORT=55432
|
||||
export PGPORT
|
||||
PGHOST=127.0.0.1
|
||||
export PGHOST
|
||||
|
||||
if [[ ! -d "$PGDATA" ]]; then
|
||||
initdb --locale=C --encoding=UTF8
|
||||
cp ${./postgresql.conf} "$PGDATA/postgresql.conf"
|
||||
cp ${./pg_hba.conf} "$PGDATA/pg_hba.conf"
|
||||
pg_ctl -D "$PGDATA" -w start -o "-c unix_socket_directories= -c listen_addresses=127.0.0.1,::1 -p 55432"
|
||||
trap 'pg_ctl -D "$PGDATA" -m fast -w stop' EXIT
|
||||
psql --dbname postgres < ${./init.sql}
|
||||
pg_ctl -D "$PGDATA" -m fast -w stop
|
||||
trap - EXIT
|
||||
fi
|
||||
exec postgres
|
||||
'';
|
||||
};
|
||||
in
|
||||
pkgs.writeShellApplication {
|
||||
name = "mx-aliases-devenv-up";
|
||||
runtimeInputs = [
|
||||
start-postgres
|
||||
mock-oidc-provider
|
||||
];
|
||||
text = ''
|
||||
trap 'kill "$pg" > /dev/null 2> /dev/null || true; kill "$oidc" > /dev/null 2> /dev/null || true' EXIT
|
||||
start-postgres &
|
||||
pg=$!
|
||||
|
||||
mock-oidc-provider &
|
||||
oidc=$!
|
||||
|
||||
|
||||
wait -n
|
||||
wait -n
|
||||
'';
|
||||
}
|
3
nix/packages/mx-aliases-devenv-up/init.sql
Normal file
3
nix/packages/mx-aliases-devenv-up/init.sql
Normal file
|
@ -0,0 +1,3 @@
|
|||
CREATE ROLE postgres SUPERUSER;
|
||||
CREATE ROLE "mx-aliases";
|
||||
CREATE DATABASE "mx-aliases" WITH OWNER "mx-aliases";
|
3
nix/packages/mx-aliases-devenv-up/pg_hba.conf
Normal file
3
nix/packages/mx-aliases-devenv-up/pg_hba.conf
Normal file
|
@ -0,0 +1,3 @@
|
|||
# TYPE DATABASE USER ADDRESS METHOD
|
||||
host all all 127.0.0.1/32 trust
|
||||
host all all ::1/128 trust
|
3
nix/packages/mx-aliases-devenv-up/postgresql.conf
Normal file
3
nix/packages/mx-aliases-devenv-up/postgresql.conf
Normal file
|
@ -0,0 +1,3 @@
|
|||
listen_addresses='127.0.0.1,::1'
|
||||
port = 55432
|
||||
unix_socket_directories=''
|
|
@ -8,6 +8,7 @@ mkShell {
|
|||
packages = [
|
||||
pkgs.nixd
|
||||
pkgs.nixfmt-rfc-style
|
||||
pkgs.khscodes.mx-aliases-devenv-up
|
||||
]
|
||||
++ (lib.khscodes.mkRust pkgs "${inputs.self}/rust").devDeps
|
||||
++ (import "${inputs.self}/mx-aliases" {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue