Specifying a local repository from a Nix file is expected to be
referencing an external nixpkgs source.
However, in this monorepo setup the root of the repository itself is
the Nix package set and a workaround in the `external` folder is
required to import it into Bazel.
This uses the Nix infrastructure's Haskell setup to create a GHC
derivation that comes with all required Haskell packages, fetched &
built via Nix.
Downstream packages that want to make use of Haskell dependencies need
them to be added to this list.
When instantiating a Nix package via Bazel, the package set is called
with an empty map as the argument. From the Nix REPL or the dispatch
script, however, the package set is called without arguments.
This change adds a catch-all optional argument in the package set
which ensures that both use-cases are supported (similar to what
nixpkgs itself does).
Initial version of tool provider via Nix. This requires two separate
steps for adding a new tool:
1. New symlink in tools/bin to point at the dispatch script.
2. Mapping of tool to Nix package set attribute in dispatch script.
This updates some old code that makes assumptions via pattern matching
to instead make assumptions via a Prelude function.
This is known to be safe as it has been running fine for almost a
decade now, but the recent MonadFail changes broke the build.
Note that this does not actually build right now because Elm has done
a thing again to break the universe and it requires massive changes to
the application to make it work again.
The Gogs developers got it into their head that trying to write things
to some relative path from the binary location is a sensible thing to
do (spoiler: it's not).
Due to their weird "GOGS_CUSTOM" directory which seems to only
sometimes be configurable by environment variables, the command used
to handle SSH requests failed because it attempted to write logs into
the Nix store.
This works around the issue by hardcoding the log file root path in
the Gogs configuration.
Now that Hunchentoot is serving the Elm frontend, Elm needs to connect
to Gemma at a relative path.
Side note: It would be useful if the frontend displayed errors that
happened :sun:
In order to let Hunchentoot serve the static assets from the correct
location, the *static-file-location* parameter is set before image
dumping based on the $out-envvar which is present during the build
process.
This can easily be set manually in the config file if required by a
user.