dotfiles/modules/editor/dotfiles.nix
2022-06-19 10:02:06 -04:00

46 lines
1.3 KiB
Nix

{ config, pkgs, lib, ... }: {
home-manager.users.${config.user} = {
home.activation = {
# Always clone dotfiles repository if it doesn't exist
cloneDotfiles =
config.home-manager.users.${config.user}.lib.dag.entryAfter
[ "writeBoundary" ] ''
if [ ! -d "${config.dotfilesPath}" ]; then
$DRY_RUN_CMD mkdir --parents $VERBOSE_ARG $(dirname "${config.dotfilesPath}")
$DRY_RUN_CMD ${pkgs.git}/bin/git clone ${config.dotfilesRepo} "${config.dotfilesPath}"
fi
'';
};
programs.fish = let
system = if pkgs.stdenv.isDarwin then "darwin" else "nixos";
sudo = if pkgs.stdenv.isDarwin then "" else "doas";
in {
shellAbbrs = {
nr = "rebuild-${system}";
nro = "rebuild-${system} offline";
};
functions = {
"rebuild-${system}" = {
body = ''
if test "$argv[1]" = "offline"
set option "--option substitute false"
end
pushd ${config.dotfilesPath}
git add --all
popd
echo "${sudo} ${system}-rebuild switch $option --flake ${config.dotfilesPath}"
${sudo} ${system}-rebuild switch $option --flake ${config.dotfilesPath}
'';
};
};
};
};
}