nixos-config/configs/flake-parts/dev.nix
Gabriel Arazas e4ad727c56
flake.nix: configure output with flake-parts
I've seen how Nixvim project is managed and flake-parts is pretty good from
a glance and indeed it is.
2024-01-15 22:06:12 +08:00

39 lines
1.2 KiB
Nix

# All of the development-related shtick for this project is over here.
{ inputs, ... }: {
flake.lib = import ../../lib { lib = inputs.nixpkgs.lib; };
perSystem = { config, lib, pkgs, ... }: {
apps = {
run-workflow-with-vm =
let
inputsArgs = lib.mapAttrsToList
(name: source:
let
name' = if (name == "self") then "config" else name;
in
"'${name'}=${source}'")
inputs;
script = pkgs.callPackage ../../apps/run-workflow-with-vm {
inputs = inputsArgs;
};
in
{
type = "app";
program = "${script}/bin/run-workflow-with-vm";
};
};
# No amount of formatters will make this codebase nicer but it sure does
# feel like it does.
formatter = pkgs.treefmt;
# My several development shells for usual type of projects. This is much
# more preferable than installing all of the packages at the system
# configuration (or even home environment).
devShells = import ../../shells { inherit pkgs; } // {
default = import ../../shell.nix { inherit pkgs; };
docs = import ../../docs/shell.nix { inherit pkgs; };
};
};
}