conduit/nix/shell.nix
2024-05-09 15:20:48 +02:00

69 lines
1.3 KiB
Nix

# Keep sorted
{
alejandra,
cargo-deb,
default,
engage,
go,
inputs,
jq,
lychee,
mdbook,
mkShell,
olm,
system,
taplo,
toolchain,
}:
mkShell {
env =
default.env
// {
# Rust Analyzer needs to be able to find the path to default crate
# sources, and it can read this environment variable to do so. The
# `rust-src` component is required in order for this to work.
RUST_SRC_PATH = "${toolchain}/lib/rustlib/src/rust/library";
};
# Development tools
nativeBuildInputs =
default.nativeBuildInputs
++ [
# Always use nightly rustfmt because most of its options are unstable
#
# This needs to come before `toolchain` in this list, otherwise
# `$PATH` will have stable rustfmt instead.
inputs.fenix.packages.${system}.latest.rustfmt
# rust itself
toolchain
# CI tests
engage
# format toml files
taplo
# Needed for producing Debian packages
cargo-deb
# Needed for our script for Complement
jq
# Needed for Complement
go
olm
# Needed for our script for Complement
jq
# Needed for finding broken markdown links
lychee
# Useful for editing the book locally
mdbook
# nix formatter
alejandra
];
}