From ce6632d57fbe3b07f1689dbe88d2cd6209704223 Mon Sep 17 00:00:00 2001 From: 0xrsydn Date: Wed, 1 Oct 2025 13:39:17 +0700 Subject: [PATCH] add rust --- flake.nix | 16 ++++++++++++++++ modules/home/rsydn/devtools/languages.nix | 12 ++++++++++++ 2 files changed, 28 insertions(+) diff --git a/flake.nix b/flake.nix index 1f2304e..e33b253 100644 --- a/flake.nix +++ b/flake.nix @@ -187,6 +187,22 @@ echo "Bun/Node web shell ready" ''; }; + + rust = pkgs.mkShell { + name = "rust"; + packages = with pkgs; [ + cargo + rustc + rust-analyzer + rustfmt + clippy + ]; + shellHook = '' + mkdir -p "$PWD/.cache/cargo" + export CARGO_HOME="$PWD/.cache/cargo" + echo "Rust toolchain shell ready" + ''; + }; }; in baseShells // zigShell); diff --git a/modules/home/rsydn/devtools/languages.nix b/modules/home/rsydn/devtools/languages.nix index 369b170..e3a929e 100644 --- a/modules/home/rsydn/devtools/languages.nix +++ b/modules/home/rsydn/devtools/languages.nix @@ -47,6 +47,7 @@ let pkgs.nodejs_20 else getPkg "nodejs"; + cargoPackage = getPkg "cargo"; toolSpecs = [ { @@ -64,6 +65,11 @@ let cfg = cfg.node; defaultPackage = nodePackage; } + { + name = "cargo"; + cfg = cfg.cargo; + defaultPackage = cargoPackage; + } ]; languagePackages = mkToolPackages toolSpecs; @@ -90,6 +96,12 @@ in { description = "Node.js runtime for CLI tooling."; }; + cargo = mkToolOption { + name = "Cargo"; + defaultPackage = cargoPackage; + description = "Rust package manager and toolchain."; + }; + extraPackages = mkOption { type = types.listOf types.package; default = [ ];