feat: improve dev-components with --extra

This commit is contained in:
2026-04-09 17:05:33 +02:00
parent 86e8fe7397
commit 216328927d
3 changed files with 27 additions and 37 deletions

View File

@@ -9,16 +9,16 @@
pkgs.git
packages.git-linearize
packages.ggman
pkgs.python3
pkgs.mdbook
pkgs.marksman
pkgs.mdformat
pkgs.osc
pkgs.google-cloud-sdk
pkgs.google-cloud-sql-proxy
packages.ahab
pkgs.just
pkgs.presenterm
pkgs.osc
];
};

View File

@@ -1,16 +1,28 @@
# shellcheck shell=bash
# composable nix devshell from matej.nix
# usage in .envrc: use dev uv_14 pg_18
# usage in .envrc: use dev uv_14 pg_18 --extra cairo pkg-config
# generates a flake and delegates to use_flake at the calling scope
use_dev() {
local nix_list=""
local nix_list="" extra_list="" in_extra=0
for c in "$@"; do
if [[ ! "$c" =~ ^[a-zA-Z_][a-zA-Z0-9_]*$ ]]; then
log_error "use_dev: invalid component name: $c"
return 1
if [[ "$c" == "--extra" ]]; then
in_extra=1
continue
fi
if [[ $in_extra -eq 1 ]]; then
if [[ ! "$c" =~ ^[a-zA-Z_][a-zA-Z0-9_-]*$ ]]; then
log_error "use_dev: invalid package name: $c"
return 1
fi
extra_list="$extra_list pkgs.$c"
else
if [[ ! "$c" =~ ^[a-zA-Z_][a-zA-Z0-9_]*$ ]]; then
log_error "use_dev: invalid component name: $c"
return 1
fi
nix_list="$nix_list \"$c\""
fi
nix_list="$nix_list \"$c\""
done
local system
@@ -64,7 +76,7 @@ use_dev() {
pkgs = nixpkgs.legacyPackages.\${system};
devLib = import "\${dev}/flake/dev-components.nix" { inherit pkgs; lib = nixpkgs.lib; };
in {
devShells.\${system}.default = devLib.mkComponentShell [$nix_list ];
devShells.\${system}.default = devLib.mkComponentShell [$nix_list ] [${extra_list} ];
};
}
DEVFLAKE