86 lines
2.3 KiB
Nix
86 lines
2.3 KiB
Nix
{ buildToolbox
|
|
, cabal-install
|
|
, checkedShellScript
|
|
, devCabalOptions
|
|
, postgrest
|
|
}:
|
|
let
|
|
build =
|
|
checkedShellScript
|
|
{
|
|
name = "postgrest-build";
|
|
docs = "Build PostgREST interactively using cabal-install.";
|
|
args = [ "ARG_LEFTOVERS([Cabal arguments])" ];
|
|
workingDir = "/";
|
|
withEnv = postgrest.env;
|
|
}
|
|
''
|
|
exec ${cabal-install}/bin/cabal v2-build ${devCabalOptions} "''${_arg_leftovers[@]}"
|
|
'';
|
|
|
|
clean =
|
|
checkedShellScript
|
|
{
|
|
name = "postgrest-clean";
|
|
docs = "Clean the PostgREST project, including all cabal-install artifacts.";
|
|
workingDir = "/";
|
|
}
|
|
''
|
|
# clean old coverage data, too
|
|
rm -rf .hpc coverage
|
|
# clean old hie files
|
|
find . -name "*.hie" -type f -delete
|
|
exec ${cabal-install}/bin/cabal v2-clean
|
|
'';
|
|
|
|
run =
|
|
checkedShellScript
|
|
{
|
|
name = "postgrest-run";
|
|
docs = "Run PostgREST after building it interactively with cabal-install";
|
|
args =
|
|
[
|
|
"ARG_USE_ENV([PGRST_DB_ANON_ROLE], [postgrest_test_anonymous], [PostgREST anonymous role])"
|
|
"ARG_USE_ENV([PGRST_DB_POOL], [1], [PostgREST pool size])"
|
|
"ARG_USE_ENV([PGRST_DB_POOL_ACQUISITION_TIMEOUT], [1], [PostgREST pool timeout])"
|
|
"ARG_USE_ENV([PGRST_JWT_SECRET], [reallyreallyreallyreallyverysafe], [PostgREST JWT secret])"
|
|
"ARG_LEFTOVERS([PostgREST arguments])"
|
|
];
|
|
workingDir = "/";
|
|
withEnv = postgrest.env;
|
|
}
|
|
''
|
|
export PGRST_DB_ANON_ROLE
|
|
export PGRST_DB_POOL
|
|
export PGRST_DB_POOL_ACQUISITION_TIMEOUT
|
|
export PGRST_JWT_SECRET
|
|
|
|
exec ${cabal-install}/bin/cabal v2-run ${devCabalOptions} --verbose=0 -- \
|
|
postgrest "''${_arg_leftovers[@]}"
|
|
'';
|
|
|
|
repl =
|
|
checkedShellScript
|
|
{
|
|
name = "postgrest-repl";
|
|
docs = "Interact with PostgREST modules using the cabal repl";
|
|
args = [ "ARG_LEFTOVERS([cabal v2-repl arguments])" ];
|
|
workingDir = "/";
|
|
withEnv = postgrest.env;
|
|
}
|
|
''
|
|
exec ${cabal-install}/bin/cabal v2-repl "''${_arg_leftovers[@]}"
|
|
'';
|
|
in
|
|
buildToolbox
|
|
{
|
|
name = "postgrest-cabal";
|
|
tools = {
|
|
inherit
|
|
build
|
|
clean
|
|
run
|
|
repl;
|
|
};
|
|
}
|