1
0
Fork 0
mirror of https://github.com/nix-community/home-manager.git synced 2025-12-06 00:51:04 +01:00

oh-my-posh: build-time nushell config generation

This commit is contained in:
jaredmontoya 2025-03-21 20:11:07 +01:00 committed by Austin Horstman
parent 287cbbbf80
commit 812a12d014
2 changed files with 14 additions and 23 deletions

View file

@ -68,27 +68,26 @@ in {
}; };
programs.bash.initExtra = mkIf cfg.enableBashIntegration '' programs.bash.initExtra = mkIf cfg.enableBashIntegration ''
eval "$(${cfg.package}/bin/oh-my-posh init bash ${configArgument})" eval "$(${lib.getExe cfg.package} init bash ${configArgument})"
''; '';
programs.zsh.initContent = mkIf cfg.enableZshIntegration '' programs.zsh.initContent = mkIf cfg.enableZshIntegration ''
eval "$(${cfg.package}/bin/oh-my-posh init zsh ${configArgument})" eval "$(${lib.getExe cfg.package} init zsh ${configArgument})"
''; '';
programs.fish.shellInit = mkIf cfg.enableFishIntegration '' programs.fish.shellInit = mkIf cfg.enableFishIntegration ''
${cfg.package}/bin/oh-my-posh init fish ${configArgument} | source ${lib.getExe cfg.package} init fish ${configArgument} | source
''; '';
programs.nushell = mkIf cfg.enableNushellIntegration { programs.nushell = mkIf cfg.enableNushellIntegration {
extraEnv = ''
let oh_my_posh_cache = "${config.xdg.cacheHome}/oh-my-posh"
if not ($oh_my_posh_cache | path exists) {
mkdir $oh_my_posh_cache
}
${cfg.package}/bin/oh-my-posh init nu ${configArgument} --print | save --force ${config.xdg.cacheHome}/oh-my-posh/init.nu
'';
extraConfig = '' extraConfig = ''
source ${config.xdg.cacheHome}/oh-my-posh/init.nu source ${
pkgs.runCommand "oh-my-posh-nushell-config" { } ''
${
lib.getExe cfg.package
} init nu ${configArgument} --print >> "$out"
''
}
''; '';
}; };
}; };

View file

@ -1,4 +1,4 @@
{ pkgs, config, ... }: { lib, pkgs, realPkgs, config, ... }:
{ {
programs = { programs = {
@ -10,25 +10,17 @@
}; };
}; };
_module.args.pkgs = lib.mkForce realPkgs;
nmt.script = let nmt.script = let
configFile = if pkgs.stdenv.isDarwin && !config.xdg.enable then configFile = if pkgs.stdenv.isDarwin && !config.xdg.enable then
"home-files/Library/Application Support/nushell/config.nu" "home-files/Library/Application Support/nushell/config.nu"
else else
"home-files/.config/nushell/config.nu"; "home-files/.config/nushell/config.nu";
envFile = if pkgs.stdenv.isDarwin && !config.xdg.enable then
"home-files/Library/Application Support/nushell/env.nu"
else
"home-files/.config/nushell/env.nu";
in '' in ''
assertFileExists "${envFile}"
assertFileRegex \
"${envFile}" \
'/bin/oh-my-posh init nu --config .*--print \| save --force /.*/home-files/\.cache/oh-my-posh/init\.nu'
assertFileExists "${configFile}" assertFileExists "${configFile}"
assertFileRegex \ assertFileRegex \
"${configFile}" \ "${configFile}" \
'source /.*/\.cache/oh-my-posh/init\.nu' 'source /nix/store/[^/]*-oh-my-posh-nushell-config'
''; '';
} }