nixos-config/configs/flake-parts/dev.nix

56 lines
1.7 KiB
Nix

# All of the development-related shtick for this project is over here.
{ inputs, ... }: {
flake = {
lib = import ../../lib { lib = inputs.nixpkgs.lib; };
foodogsquaredLib = ../../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;
extraPackages = with pkgs; [
# Mozilla addons-specific tooling. Unfortunately, only available with
# flakes-based setups.
nur.repos.rycee.mozilla-addons-to-nix
];
};
website = import ../../docs/website/shell.nix { inherit pkgs; };
};
# Packages that are meant to be consumed inside of a development
# environment.
devPackages = {
inherit (import ../../docs { inherit pkgs; }) website;
};
};
}