# yore ## Development `flake.nix` defines a development shell that has everything you'll need. To enter, run ``` nix develop ``` The rest of this section assumes you're in the dev shell. ### Running Postgres `scripts/with-db $COMMAND` will create a Postgres cluster in a temporary directory with the credentials `user=yore-test dbname=yore-test port=5433`, start the Postgres server, apply migrations using `dbmate`, run `$COMMAND` and then stop the Postgres server. On Linux, you need to have write permissions vor `/var/run/postgresql` to run it. You can use this to run the tests in an entirely fresh database, e.g.: ``` scripts/with-db cabal test ``` You can also use it to run a database for development by choosing a `$COMMAND` that runs until you quit it, e.g. ``` BASE_DIR=./pgdata scripts/with-db psql "dbname=yore-test port=5433 user=yore-test" # cabal repl with env vars set BASE_DIR=./pgdata scripts/with-db cabal run ``` By setting `$BASE_DIR` you can persist the database for later runs. ## Inspo - https://fz.ub.uni-freiburg.de/show/fz.cgi?pKuerzel=FZ - It seems like the jpgs are generated on demand when the corresponding overview page is hit - So we're gonna do the PDFs after all - Let's hope we can deduce the PDF path from the link - And also that the PDFs aren't generated on demand as well. - They are actually ## TODO - [x] CI - [x] Docker container (in flake) - [x] try fourmolu - [x] Test leap second handling in the `time` package - [ ] Fix container shutdown delay - [ ] Fix `responseFile` always returning 200 - [ ] use queue to sync logging of indexer and main thread