dotfiles/modules/editor/dotfiles.nix

41 lines
1.1 KiB
Nix
Raw Normal View History

2022-05-30 20:07:43 +00:00
{ config, pkgs, lib, ... }: {
home-manager.users.${config.user} = {
home.activation = {
# Always clone dotfiles repository if it doesn't exist
2022-05-30 20:14:02 +00:00
cloneDotfiles =
config.home-manager.users.${config.user}.lib.dag.entryAfter
[ "writeBoundary" ] ''
if [ ! -d "${config.dotfilesPath}" ]; then
2022-06-04 14:29:36 +00:00
$DRY_RUN_CMD mkdir --parents $VERBOSE_ARG $(dirname "${config.dotfilesPath}")
$DRY_RUN_CMD ${pkgs.git}/bin/git clone ${config.dotfilesRepo} "${config.dotfilesPath}"
2022-05-30 20:14:02 +00:00
fi
'';
2022-05-30 20:07:43 +00:00
};
2022-06-20 03:44:29 +00:00
programs.fish = {
2022-06-19 14:02:06 +00:00
shellAbbrs = {
2022-06-20 03:44:29 +00:00
nr = "rebuild-nixos";
nro = "rebuild-nixos offline";
2022-06-19 14:02:06 +00:00
};
functions = {
2022-06-20 03:44:29 +00:00
rebuild-nixos = {
body = ''
2022-06-19 14:02:06 +00:00
if test "$argv[1]" = "offline"
set option "--option substitute false"
end
2022-07-05 23:40:54 +00:00
git -C ${config.dotfilesPath} add --all
2022-06-20 03:54:16 +00:00
commandline -r "doas nixos-rebuild switch $option --flake ${config.dotfilesPath}"
2022-07-05 23:40:54 +00:00
commandline --function execute
'';
};
2022-06-14 22:17:52 +00:00
};
};
2022-05-30 20:07:43 +00:00
};
}