nix/home: handle dotfiles via vcsh

This commit is contained in:
steveej 2018-11-04 14:52:52 +01:00
parent 48b35e16c7
commit 4081bc6328
3 changed files with 33 additions and 0 deletions

View file

@ -10,6 +10,7 @@ in {
imports = [ imports = [
../profiles/common.nix ../profiles/common.nix
../profiles/qtile-desktop.nix ../profiles/qtile-desktop.nix
../profiles/dotfiles.nix
../programs/emacs.nix ../programs/emacs.nix
../programs/firefox.nix ../programs/firefox.nix
../programs/chromium.nix ../programs/chromium.nix

View file

@ -8,6 +8,7 @@ in {
imports = [ imports = [
../profiles/common.nix ../profiles/common.nix
../profiles/qtile-desktop.nix ../profiles/qtile-desktop.nix
../profiles/dotfiles.nix
../programs/emacs.nix ../programs/emacs.nix
../programs/firefox.nix ../programs/firefox.nix
../programs/chromium.nix ../programs/chromium.nix

View file

@ -0,0 +1,31 @@
{ pkgs
, config
, ...
}:
let
repoHttps = "https://gitlab.com/steveeJ/dotfiles.git";
repoSsh = "git@gitlab.com:/steveeJ/dotfiles.git";
in {
home.activation.vcsh = config.lib.dag.entryAfter["linkGeneration"] ''
$DRY_RUN_CMD ${pkgs.writeScript "activation-script" ''
set -e
export HOST=$(hostname -s)
function set_remotes {
${pkgs.vcsh}/bin/vcsh dotfiles remote set-url origin ${repoHttps}
${pkgs.vcsh}/bin/vcsh dotfiles remote set-url --push origin ${repoSsh}
}
if ! test -d $HOME/.config/vcsh/repo.d/dotfiles.git; then
echo Cloning dotfiles for $HOST...
${pkgs.vcsh}/bin/vcsh clone -b $HOST ${repoHttps}
set_remotes
else
echo Updating dotfiles for $HOST...
set_remotes
${pkgs.vcsh}/bin/vcsh pull $HOST
fi
''};
'';
}