Files
Poseidon/shell.nix
Moritz Jörg 15e348c17b chore: Bump to net10
Also bumps gitlab ci to v4.5
2026-01-15 15:50:29 +01:00

82 lines
1.8 KiB
Nix

{
sources ? import ./nix,
pkgs ? import sources.nixpkgs { },
pre-commit ? import ./nix/pre-commit.nix,
}:
let
dotnet-sdk = pkgs.dotnetCorePackages.sdk_10_0;
agenix = pkgs.callPackage "${sources.agenix}/pkgs/agenix.nix" { };
fable = pkgs.buildDotnetGlobalTool {
pname = "fable";
version = "4.24.0";
nugetHash = "sha256-ERewWqfEyyZKpHFFALpMGJT0fDWywBYY5buU/wTZZTg=";
};
in
pkgs.mkShellNoCC {
buildInputs = [ dotnet-sdk ];
packages = [
# F#
fable
pkgs.dotnet-outdated
pkgs.fantomas
pkgs.fsautocomplete
# JavaScript
pkgs.bun
pkgs.nodejs
# Devlopment tools
pkgs.npins
pkgs.mkcert
pkgs.dive
pkgs.nix-output-monitor
pkgs.just
pkgs.skopeo
# Secret management with agenix
agenix
# Kubernetes tools
pkgs.tilt
pkgs.dapr-cli
pkgs.kustomize
pkgs.kubernetes-helm
];
# Environment variables
DOTNET_ROOT = "${dotnet-sdk}/share/dotnet";
LOG_LEVEL = "verbose";
shellHook = ''
scripts/update-rider.sh ${dotnet-sdk}/bin/dotnet
'';
# Alternative shells
passthru = pkgs.lib.mapAttrs (name: value: pkgs.mkShellNoCC (value // { inherit name; })) {
pre-commit.shellHook = pre-commit.shellHook;
ci-shell = {
packages = [
pkgs.npins
];
shellHook = ''
export NPINS_DIRECTORY="nix"
'';
};
agenix-gen = {
packages = [ agenix ];
shellHook = ''
if [ -z "$NETRC" ] && [ -e ~/.ssh/id_ed25519 ]; then
pushd ./nix/secrets
export NETRC=$(agenix -d netrc.age -i ~/.ssh/id_ed25519)
popd
elif [ -z "$NETRC" ] && [ -e ~/.ssh/rsa ]; then
pushd ./nix/secrets
export NETRC=$(agenix -d netrc.age -i ~/.ssh/id_rsa)
popd
fi
'';
};
};
}