2024-04-20 13:42:06 +00:00
|
|
|
{
|
|
|
|
config,
|
|
|
|
pkgs,
|
|
|
|
lib,
|
|
|
|
...
|
|
|
|
}:
|
|
|
|
{
|
2022-05-30 20:07:43 +00:00
|
|
|
|
2023-07-31 00:26:23 +00:00
|
|
|
# Allows me to make sure I can work on my dotfiles locally
|
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
options.dotfiles.enable = lib.mkEnableOption "Clone dotfiles.";
|
2022-05-30 20:07:43 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
config = lib.mkIf config.dotfiles.enable {
|
2022-05-30 20:07:43 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
home-manager.users.${config.user} = {
|
2022-05-30 20:07:43 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
home.activation = {
|
|
|
|
|
|
|
|
# Always clone dotfiles repository if it doesn't exist
|
2024-04-20 13:42:06 +00:00
|
|
|
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
|
|
|
|
'';
|
2022-12-21 21:18:03 +00:00
|
|
|
};
|
2022-05-30 20:07:43 +00:00
|
|
|
|
2022-12-21 21:18:03 +00:00
|
|
|
# Set a variable for dotfiles repo, not necessary but convenient
|
|
|
|
home.sessionVariables.DOTS = config.dotfilesPath;
|
|
|
|
};
|
2022-05-30 20:07:43 +00:00
|
|
|
};
|
|
|
|
}
|