Closed
Description
We're using Nix to do congruent configuration where possible,
but in non-Nix world we often need to do convergent configuration.
We're using mostly a glue of bash at the moment, in phases like enterShell
and enterTest
, etc.
Problems
- there's no way to model dependencies between different snippets of code
- often we need to check whether some state is set and if not, run a script
- lack of parallelism
Requirements
- allow defining tasks in any language
- display task running task to encourage keeping tasks fast
- separate devenv abstraction, but allow running it inside devenv as a standalone tool
- allow specifying dependencies for tasks
Syntax
{ pkgs, ... }: {
task.run = [
"db-migrations",
]
tasks.db-migrations = {
met = "sqlx ";
depends = [];
meet = "bundler";
gemfile = "Gemfile";
};
}
Command
We'll need to find a good tool that we can use under the hood, one such tool
is Justfile see #1320
$ tasks
running db-migrations
| ...
done db-migrations ... 3ms