mirror of
https://github.com/nix-community/home-manager.git
synced 2025-03-26 01:51:37 +00:00
Previous test didn't verify they were actually in correct order, updating test to check configuration is generated, as expected.
74 lines
1.8 KiB
Nix
74 lines
1.8 KiB
Nix
{ lib, pkgs, ... }: {
|
|
programs.zsh = {
|
|
enable = true;
|
|
|
|
initContent = lib.mkMerge [
|
|
(lib.mkBefore ''
|
|
# High priority (mkBefore)
|
|
echo "High priority content"
|
|
'')
|
|
|
|
(lib.mkAfter ''
|
|
# Low priority (mkAfter)
|
|
echo "Low priority content"
|
|
'')
|
|
|
|
''
|
|
# Default priority
|
|
echo "Default priority content"
|
|
''
|
|
];
|
|
|
|
zprof.enable = true;
|
|
};
|
|
|
|
nmt.script = let
|
|
expectedFile = pkgs.writeTextFile {
|
|
name = ".zshrc";
|
|
text = ''
|
|
zmodload zsh/zprof
|
|
|
|
# High priority (mkBefore)
|
|
echo "High priority content"
|
|
|
|
typeset -U path cdpath fpath manpath
|
|
for profile in ''${(z)NIX_PROFILES}; do
|
|
fpath+=($profile/share/zsh/site-functions $profile/share/zsh/$ZSH_VERSION/functions $profile/share/zsh/vendor-completions)
|
|
done
|
|
|
|
HELPDIR="@zsh@/share/zsh/$ZSH_VERSION/help"
|
|
|
|
autoload -U compinit && compinit
|
|
# Default priority
|
|
echo "Default priority content"
|
|
|
|
# History options should be set in .zshrc and after oh-my-zsh sourcing.
|
|
# See https://github.com/nix-community/home-manager/issues/177.
|
|
HISTSIZE="10000"
|
|
SAVEHIST="10000"
|
|
|
|
HISTFILE="$HOME/.zsh_history"
|
|
mkdir -p "$(dirname "$HISTFILE")"
|
|
|
|
setopt HIST_FCNTL_LOCK
|
|
unsetopt APPEND_HISTORY
|
|
setopt HIST_IGNORE_DUPS
|
|
unsetopt HIST_IGNORE_ALL_DUPS
|
|
unsetopt HIST_SAVE_NO_DUPS
|
|
unsetopt HIST_FIND_NO_DUPS
|
|
setopt HIST_IGNORE_SPACE
|
|
unsetopt HIST_EXPIRE_DUPS_FIRST
|
|
setopt SHARE_HISTORY
|
|
unsetopt EXTENDED_HISTORY
|
|
|
|
|
|
zprof
|
|
# Low priority (mkAfter)
|
|
echo "Low priority content"
|
|
'';
|
|
};
|
|
in ''
|
|
assertFileExists home-files/.zshrc
|
|
assertFileContent home-files/.zshrc ${expectedFile}
|
|
'';
|
|
}
|