clan-core/devShell.nix
DavHau d1e8b1ed96
All checks were successful
checks / check-links (pull_request) Successful in 21s
checks / checks-impure (pull_request) Successful in 1m55s
checks / checks (pull_request) Successful in 2m45s
devShells: one global python devshell + activation via command
- this adds devShells.{system}.python
- a 'select-shell' command to switch between devshells
2024-03-01 18:16:38 +07:00

45 lines
1.3 KiB
Nix

{
perSystem =
{ pkgs
, self'
, config
, ...
}:
let
writers = pkgs.callPackage ./pkgs/builders/script-writers.nix { };
ansiEscapes = {
reset = ''\033[0m'';
green = ''\033[32m'';
};
# a python program using argparse to enable and disable dev shells
# synopsis: select-shell enable|disable shell-name
# enabled devshells are written as a newline separated list into ./.direnv/selected-shells
select-shell = writers.writePython3Bin "select-shell"
{
flakeIgnore = [ "E501" ];
} ./pkgs/scripts/select-shell.py;
in
{
devShells.default = pkgs.mkShell {
# inputsFrom = [ self'.devShells.python ];
packages = [
select-shell
pkgs.tea
self'.packages.tea-create-pr
self'.packages.merge-after-ci
self'.packages.pending-reviews
# treefmt with config defined in ./flake-parts/formatting.nix
config.treefmt.build.wrapper
];
shellHook = ''
# no longer used
rm -f "$(git rev-parse --show-toplevel)/.git/hooks/pre-commit"
echo -e "${ansiEscapes.green}switch to another dev-shell using: select-shell${ansiEscapes.reset}"
'';
};
};
}