mirror of
https://github.com/nmasur/dotfiles
synced 2024-11-26 23:35:36 +00:00
37 lines
1.1 KiB
Nix
37 lines
1.1 KiB
Nix
{ config, pkgs, lib, ... }: {
|
|
|
|
options.dotfiles.enable = lib.mkEnableOption "Clone dotfiles.";
|
|
|
|
config = lib.mkIf config.dotfiles.enable {
|
|
|
|
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}")
|
|
|
|
# Force HTTPS because anonymous SSH doesn't work
|
|
GIT_CONFIG_COUNT=1 \
|
|
GIT_CONFIG_KEY_0="url.https://github.com/.insteadOf" \
|
|
GIT_CONFIG_VALUE_0="git@github.com:" \
|
|
$DRY_RUN_CMD \
|
|
${pkgs.git}/bin/git clone ${config.dotfilesRepo} "${config.dotfilesPath}"
|
|
fi
|
|
'';
|
|
|
|
};
|
|
|
|
# Set a variable for dotfiles repo, not necessary but convenient
|
|
home.sessionVariables.DOTS = config.dotfilesPath;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|