{ 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"; }; }; }