starship: add nushell integration support

This commit is contained in:
Philipp Mildenberger 2022-10-23 19:12:01 +02:00 committed by Robert Helgesson
parent 4a12f304e0
commit 7ae7250df8
No known key found for this signature in database
GPG Key ID: 36BDAA14C2797E89
1 changed files with 24 additions and 5 deletions

View File

@ -89,6 +89,14 @@ in {
Whether to enable Ion integration.
'';
};
enableNushellIntegration = mkOption {
default = true;
type = types.bool;
description = ''
Whether to enable Nushell integration.
'';
};
};
config = mkIf cfg.enable {
@ -116,10 +124,21 @@ in {
end
'';
programs.ion.initExtra = mkIf cfg.enableIonIntegration ''
if test $TERM != "dumb" && not exists -s INSIDE_EMACS || test $INSIDE_EMACS = "vterm"
eval $(${starshipCmd} init ion)
end
'';
programs.nushell = mkIf cfg.enableNushellIntegration {
# Unfortunately nushell doesn't allow conditionally sourcing nor
# conditionally setting (global) environment variables, which is why the
# check for terminal compatibility (as seen above for the other shells) is
# not done here.
extraEnv = ''
let starship_cache = "${config.xdg.cacheHome}/starship"
if not ($starship_cache | path exists) {
mkdir $starship_cache
}
${starshipCmd} init nu | save ${config.xdg.cacheHome}/starship/init.nu
'';
extraConfig = ''
source ${config.xdg.cacheHome}/starship/init.nu
'';
};
};
}