zoxide/shell.nix
2024-09-20 21:31:59 +05:30

58 lines
1.3 KiB
Nix

let
pkgs = import (builtins.fetchTarball
"https://github.com/NixOS/nixpkgs/archive/4d513ab5f170d66afa3387bdd718d41aa936ee9f.tar.gz") {
overlays = [ rust ];
};
rust = import (builtins.fetchTarball
"https://github.com/oxalica/rust-overlay/archive/ab150c7412db7bea5879ce2776718f53fba37aa2.tar.gz");
rust-nightly =
pkgs.rust-bin.selectLatestNightlyWith (toolchain: toolchain.minimal);
cargo-udeps = pkgs.writeShellScriptBin "cargo-udeps" ''
export RUSTC="${rust-nightly}/bin/rustc";
export CARGO="${rust-nightly}/bin/cargo";
exec "${pkgs.cargo-udeps}/bin/cargo-udeps" "$@"
'';
in pkgs.mkShell {
buildInputs = [
# Rust
(pkgs.rust-bin.selectLatestNightlyWith (toolchain: toolchain.rustfmt))
pkgs.rust-bin.stable.latest.default
# Shells
pkgs.bash
pkgs.dash
pkgs.elvish
pkgs.fish
pkgs.ksh
pkgs.nushell
pkgs.powershell
pkgs.xonsh
pkgs.zsh
# Tools
cargo-udeps
pkgs.cargo-msrv
pkgs.cargo-nextest
pkgs.cargo-udeps
pkgs.just
pkgs.mandoc
pkgs.nixfmt
pkgs.nodePackages.markdownlint-cli
pkgs.python3Packages.black
pkgs.python3Packages.mypy
pkgs.python3Packages.pylint
pkgs.shellcheck
pkgs.shfmt
pkgs.yamlfmt
# Dependencies
pkgs.cacert
pkgs.fzf
pkgs.git
pkgs.libiconv
];
CARGO_TARGET_DIR = "target_nix";
}