nixos-config/systems/x86_64-linux/stargate/guix-substitute.nix

59 lines
1.6 KiB
Nix

{
pkgs,
lib,
config,
...
}:
with lib.custom; let
enable = false;
in {
custom.services.guix = {inherit enable;};
systemd.timers."guix-build" = {
inherit enable;
wantedBy = ["timers.target"];
timerConfig = {
OnBootSec = "120m";
OnUnitActiveSec = "120m";
Unit = "guix-build.service";
};
};
systemd.services."guix-build" = {
inherit enable;
script = let
gitRepo = "/root/dotfiles";
git = "${pkgs.git}/bin/git";
echo = "${pkgs.coreutils}/bin/echo";
repoUrl = "https://git.kylekrein.com/kylekrein/dotfiles.git";
guix = "${pkgs.guix}/bin/guix time-machine -C ${gitRepo}/guix-config/channels-lock.scm --";
in ''
if [ ! -d "${gitRepo}" ]; then
${echo} "dotfiles repo not found, cloning..."
${git} clone "${repoUrl}" "${gitRepo}"
else
${echo} "Updating repo..."
cd "${gitRepo}"
${git} fetch --all
${git} reset --hard origin/master
fi
cd "${gitRepo}"
${echo} "Building packages..."
${guix} build -L "${gitRepo}" ${gitRepo}/guix-config/packages/*
${echo} "Building system config..."
${guix} system build -L "${gitRepo}" ${gitRepo}/guix-config/system/anaconda.scm
${echo} "Building home config..."
${guix} home build -L "${gitRepo}" ${gitRepo}/guix-config/home/workstation.scm
${echo} "All builds complete!"
'';
serviceConfig = {
Type = "oneshot";
User = "root";
WorkingDirectory = "/root";
};
};
}