home/cargo: init
This commit is contained in:
@@ -151,6 +151,7 @@
|
||||
direnv-auto-prune = ./home/modules/programs/direnv/auto-prune.nix;
|
||||
newsboat = ./home/modules/programs/newsboat;
|
||||
mpd-auto-updater = ./home/modules/services/mpd.nix;
|
||||
cargo = ./home/modules/programs/cargo;
|
||||
};
|
||||
|
||||
homeConfigurations = {
|
||||
|
||||
@@ -14,6 +14,7 @@ in {
|
||||
./programs/bat.nix
|
||||
./programs/beets.nix
|
||||
./programs/bottom.nix
|
||||
./programs/cargo.nix
|
||||
./programs/comma.nix
|
||||
./programs/direnv
|
||||
./programs/eza.nix
|
||||
@@ -49,6 +50,7 @@ in {
|
||||
./modules/colors.nix
|
||||
./modules/shellAliases.nix
|
||||
./modules/uidGid.nix
|
||||
./modules/programs/cargo
|
||||
./modules/programs/gpg
|
||||
./modules/programs/neovim/auto-clean-swapfiles.nix
|
||||
./modules/programs/nix-index/auto-update-database.nix
|
||||
|
||||
40
home/modules/programs/cargo/default.nix
Normal file
40
home/modules/programs/cargo/default.nix
Normal file
@@ -0,0 +1,40 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
let
|
||||
cfg = config.programs.cargo;
|
||||
format = pkgs.formats.toml { };
|
||||
cargoHome = lib.traceVal (config.home.sessionVariables.CARGO_HOME or "${config.home.homeDirectory}/.cargo");
|
||||
relativeCargoHome = lib.strings.removePrefix config.home.homeDirectory cargoHome;
|
||||
in
|
||||
{
|
||||
options.programs.cargo = {
|
||||
enable = lib.mkEnableOption "cargo, the rust package manager and build tool";
|
||||
|
||||
package = lib.mkPackageOption pkgs "cargo" { };
|
||||
|
||||
addPackageToEnvironment = lib.mkOption {
|
||||
description = "Whether to add cargo to the user's environment.";
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
example = false;
|
||||
};
|
||||
|
||||
settings = lib.mkOption {
|
||||
description = "cargo settings";
|
||||
type = lib.types.submodule {
|
||||
freeformType = format.type;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
home = {
|
||||
sessionVariables.CARGO_HOME = lib.mkIf config.home.preferXdgDirectories (lib.mkDefault "${config.xdg.dataHome}/cargo");
|
||||
|
||||
packages = lib.mkIf cfg.addPackageToEnvironment [ cfg.package ];
|
||||
|
||||
file."${relativeCargoHome}/config.toml" = lib.mkIf (cfg.settings != { }) {
|
||||
source = format.generate "cargo-config.toml" cfg.settings;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
9
home/programs/cargo.nix
Normal file
9
home/programs/cargo.nix
Normal file
@@ -0,0 +1,9 @@
|
||||
{ ... }:
|
||||
{
|
||||
programs.cargo = {
|
||||
enable = true;
|
||||
settings = {
|
||||
cargo-new.vcs = "git";
|
||||
};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user