31 lines
1.1 KiB
Markdown
31 lines
1.1 KiB
Markdown
|
|
# Hacking on the modules
|
|
|
|
## Easiest option
|
|
|
|
The module system does not distinguish between modules and configurations.
|
|
This mean you can prototype any feature by factoring out functionality in a real-world project.
|
|
|
|
## Changing the built-in modules
|
|
|
|
If your change is not just an addition or if it's better implemented by refactoring, you'll want to fork and edit arion sources directly.
|
|
|
|
For a fast iteration cycle (but possibly outdated arion command logic):
|
|
|
|
~/src/arion/run-arion-quick up -d
|
|
|
|
To update the arion command logic on the next run
|
|
|
|
rm ~/src/arion/result-run-arion-quick
|
|
|
|
|
|
# Hacking on the arion command
|
|
|
|
The arion command is written in Haskell. Anyone can make small changes to the code.
|
|
Experience with Haskell tooling is not required. You can use the nixified scripts in the root of the repo for common tasks.
|
|
- `build` or `live-check` for typechecking
|
|
- `live-unit-tests` (only the test suite is "live" though)
|
|
- `repl` for a Haskell REPL
|
|
- `run-arion` to run an incrementally built arion
|
|
- `run-arion-via-nix` to run a nix-built arion
|
|
- ~~`run-arion-quick`~~ *not for command hacking;* use stale command. See previous section.
|