advent-of-code/flake.nix
SebastianStork 71794dd9c9
Fix stow
Stow doesn't like when the origin path changes randomly (like when updating a flake input)
2025-12-02 22:31:20 +01:00

65 lines
1.6 KiB
Nix

{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
rust-overlay = {
url = "github:oxalica/rust-overlay";
inputs.nixpkgs.follows = "nixpkgs";
};
inputs = {
url = "git+ssh://git@github.com/SebastianStork/advent-of-code-inputs.git?shallow=1";
flake = false;
};
};
outputs =
{
nixpkgs,
rust-overlay,
inputs,
...
}:
let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
in
{
devShells.${system} = {
default = pkgs.mkShellNoCC {
packages = [ pkgs.stow ];
shellHook = ''
mkdir --parents .nix/inputs
ln --symbolic --force --no-dereference "${inputs}" .nix/inputs/package-src
stow --dir=.nix/inputs --target=./. --restow package-src
'';
};
cpp = pkgs.mkShell.override { stdenv = pkgs.clangStdenv; } {
packages = [
pkgs.gdb
pkgs.clang-tools
];
};
go = pkgs.mkShellNoCC {
packages = [ pkgs.go ];
};
rust =
let
pkgs = import nixpkgs {
inherit system;
overlays = [ rust-overlay.overlays.default ];
};
rust-toolchain = pkgs.rust-bin.stable.latest.default.override { extensions = [ "rust-src" ]; };
in
pkgs.mkShellNoCC {
packages = [ rust-toolchain ];
RUST_SRC_PATH = "${rust-toolchain}/lib/rustlib/src/rust/library";
};
};
formatter.${system} = pkgs.nixfmt-tree;
};
}