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/
|
.direnv/
|
||||||
|
.dev/
|
||||||
result/
|
result/
|
||||||
.DS_Store
|
.DS_Store
|
||||||
rust/target
|
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 = [
|
packages = [
|
||||||
pkgs.nixd
|
pkgs.nixd
|
||||||
pkgs.nixfmt-rfc-style
|
pkgs.nixfmt-rfc-style
|
||||||
|
pkgs.khscodes.mx-aliases-devenv-up
|
||||||
]
|
]
|
||||||
++ (lib.khscodes.mkRust pkgs "${inputs.self}/rust").devDeps
|
++ (lib.khscodes.mkRust pkgs "${inputs.self}/rust").devDeps
|
||||||
++ (import "${inputs.self}/mx-aliases" {
|
++ (import "${inputs.self}/mx-aliases" {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue