blob: 8708222a603dc2f381981383ae40d6cb8c78f909 (
plain) (
tree)
|
|
# Nix helpers for projects under //tvix
{ pkgs, depot, ... }:
{
# Load the crate2nix crate tree.
crates = import ./Cargo.nix {
inherit pkgs;
nixpkgs = pkgs.path;
};
# Run crate2nix generate in the current working directory, then
# format the generated file with depotfmt.
crate2nixGenerate = pkgs.writeShellScriptBin "crate2nix-generate" ''
${pkgs.crate2nix}/bin/crate2nix generate
${depot.tools.depotfmt}/bin/depotfmt Cargo.nix
'';
# Provide a shell for the combined dependencies of all Tvix Rust
# projects. Note that as this is manually maintained it may be
# lacking something, but it is required for some people's workflows.
#
# This shell can be entered with e.g. `mg shell //tvix:shell`.
shell = pkgs.mkShell {
name = "tvix-rust-dev-env";
packages = [
pkgs.buf-language-server
pkgs.cargo
pkgs.clippy
pkgs.rust-analyzer
pkgs.rustc
pkgs.rustfmt
pkgs.protobuf
];
};
meta.ci.targets = [ "shell" ];
}
|