82 lines
1.8 KiB
Nix
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
|
|
'';
|
|
};
|
|
};
|
|
}
|