62 lines
1.3 KiB
Nix
62 lines
1.3 KiB
Nix
{ pkgs, lib, ... }:
|
|
|
|
{
|
|
packages = with pkgs; [
|
|
bacon
|
|
cargo-deny
|
|
cargo-duplicates
|
|
cargo-expand
|
|
cargo-features-manager
|
|
cargo-flamegraph
|
|
cargo-geiger
|
|
cargo-generate
|
|
cargo-hack
|
|
cargo-insta
|
|
cargo-llvm-cov
|
|
cargo-machete
|
|
cargo-mutants
|
|
cargo-nextest
|
|
cargo-rr
|
|
cargo-udeps
|
|
cargo-vet
|
|
cargo-workspaces
|
|
git
|
|
sccache
|
|
tokio-console
|
|
vulkan-tools
|
|
];
|
|
env.RUSTC_WRAPPER = "sccache";
|
|
# https://devenv.sh/languages/
|
|
languages.rust = {
|
|
enable = true;
|
|
channel = "stable";
|
|
clangLinker.enable = true;
|
|
mold.enable = true;
|
|
rustflags = lib.concatStringsSep " " [
|
|
];
|
|
components = [
|
|
"rustc"
|
|
"cargo"
|
|
"clippy"
|
|
"rustfmt"
|
|
"rust-analyzer"
|
|
];
|
|
};
|
|
tasks."devenv:git-hooks:prepare-shared-hooks-rust" = {
|
|
exec = ''
|
|
if hooks_dir="$(git rev-parse --git-path hooks 2>/dev/null)"; then
|
|
mkdir -p "$hooks_dir"
|
|
chmod u+rwx,g+rwx "$hooks_dir" 2>/dev/null || true
|
|
find "$hooks_dir" -maxdepth 1 -type f ! -user "$(id -un)" ! -name '*.sample' -delete 2>/dev/null || true
|
|
fi
|
|
'';
|
|
after = [ "devenv:files" ];
|
|
before = [ "devenv:git-hooks:install" ];
|
|
};
|
|
|
|
git-hooks.hooks = {
|
|
rustfmt.enable = true;
|
|
clippy.enable = true;
|
|
};
|
|
}
|