nichts/packages/nushell/default.nix
Bloxx12 3bd3da0c0d
packages: nushell: init
Signed-off-by: Bloxx12 <charlie@charlieroot.dev>
Change-Id: I6a6a6964bcbbf4d3f08ea2ebc9c22e84b200de93
2025-07-19 19:29:37 +02:00

46 lines
1.2 KiB
Nix

{pkgs, ...}: let
inherit (pkgs) lib;
inherit (lib.meta) getExe;
nu-config =
pkgs.writeText "nu-init"
# nu
''
#!/usr/bin/env nu
source ${./config.nu}
source ${./prompt.nu}
let autoload_dir = $nu.user-autoload-dirs.0
mkdir $autoload_dir
let zoxide_path = $autoload_dir | path join zoxide.nu
if not ($zoxide_path | path exists) {
${getExe pkgs.zoxide} init nushell --cmd cd | save -f $zoxide_path
}
# Atuin is too slow, sadly.
# let atuin_path = $autoload_dir | path join atuin.nu
# if not ($atuin_path | path exists) {
# ${getExe pkgs.atuin} init nu | save -f $atuin_path
# }
let carapace_path = $autoload_dir | path join carapace.nu
if not ($carapace_path | path exists) {
${getExe pkgs.carapace} _carapace nushell | save -f $carapace_path
}
'';
packages = import ./packages.nix pkgs;
in
(pkgs.symlinkJoin {
name = "nushell";
paths = [pkgs.nushell] ++ packages;
nativeBuildInputs = [pkgs.makeWrapper];
postBuild = ''
wrapProgram $out/bin/nu --add-flags "\
--config ${nu-config}"
'';
})
.overrideAttrs (_: {
passthru = {
shellPath = "/bin/nu";
};
meta.mainProgram = "nu";
})