From 035fbdfd00f165dbbb33ecae22472fb33e93548c Mon Sep 17 00:00:00 2001 From: Dmitry Voronin Date: Sun, 3 Mar 2024 20:34:06 +0300 Subject: [PATCH] AutoUpdate : Move from dotfiles to a separate module. --- .config/linux/system/flake.nix | 4 +++- .../system/module/common/AutoRebuild.nix | 0 .../linux/system/module/common/AutoUpdate.nix | 23 +++++++++++++++++++ .../linux/system/module/common/Dotfiles.nix | 1 - .config/linux/system/user/Dasha.nix | 3 --- 5 files changed, 26 insertions(+), 5 deletions(-) delete mode 100644 .config/linux/system/module/common/AutoRebuild.nix create mode 100644 .config/linux/system/module/common/AutoUpdate.nix diff --git a/.config/linux/system/flake.nix b/.config/linux/system/flake.nix index 9fc3339..f931ba0 100644 --- a/.config/linux/system/flake.nix +++ b/.config/linux/system/flake.nix @@ -105,6 +105,7 @@ # Common modules used across all hosts. nixosModules.common.imports = [ + ./module/common/AutoRebuild.nix ./module/common/Bash.nix ./module/common/Bootloader.nix ./module/common/Distrobox.nix @@ -225,7 +226,8 @@ modules = [ "${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix" "${nixpkgs}/nixos/modules/installer/cd-dvd/channel.nix" - { networking.wireless.enable = nixpkgs.lib.mkForce false; } + { networking.wireless.enable = nixpkgs.lib.mkForce false; } + { systemd.services.autoupdate.wantedBy = nixpkgs.lib.mkForce []; } ({ pkgs, ... }: { boot.kernelPackages = nixpkgs.lib.mkForce pkgs.linuxPackages; }) ./module/Gnome.nix ]; diff --git a/.config/linux/system/module/common/AutoRebuild.nix b/.config/linux/system/module/common/AutoRebuild.nix deleted file mode 100644 index e69de29..0000000 diff --git a/.config/linux/system/module/common/AutoUpdate.nix b/.config/linux/system/module/common/AutoUpdate.nix new file mode 100644 index 0000000..d262053 --- /dev/null +++ b/.config/linux/system/module/common/AutoUpdate.nix @@ -0,0 +1,23 @@ +{ pkgs, inputs, lib, config, ... }: { + systemd.services.autoupdate = { + description = "Automatically rebuild the system."; + wantedBy = [ "multi-user.target" ]; + wants = [ "dotfiles.service" ]; + after = [ "dotfiles.service" ]; + serviceConfig.Type = "oneshot"; + path = with pkgs; [ + git + ]; + script = '' + ${config.system.build.nixos-rebuild}/bin/nixos-rebuild boot --flake "/root/.config/linux/system#$HOSTNAME" + ''; + }; + systemd.timers.autoupdate = { + timerConfig = { + OnCalendar = "daily"; + Persistent = true; + Unit = "autoupdate.service"; + }; + wantedBy = [ "timers.target" ]; + }; +} diff --git a/.config/linux/system/module/common/Dotfiles.nix b/.config/linux/system/module/common/Dotfiles.nix index c938f12..8bc30a1 100644 --- a/.config/linux/system/module/common/Dotfiles.nix +++ b/.config/linux/system/module/common/Dotfiles.nix @@ -29,7 +29,6 @@ ${lib.getExe pkgs.git} clean -f }; ${lib.getExe pkgs.git} pull - [[ "$UID" = "0" ]] && [[ "$HOSTNAME" != "live" ]] && ${config.system.build.nixos-rebuild}/bin/nixos-rebuild boot --flake "/root/.config/linux/system#$HOSTNAME" ''; }; timer = { diff --git a/.config/linux/system/user/Dasha.nix b/.config/linux/system/user/Dasha.nix index 2bbb07e..af780f5 100644 --- a/.config/linux/system/user/Dasha.nix +++ b/.config/linux/system/user/Dasha.nix @@ -8,7 +8,4 @@ extraGroups = [ "networkmanager" ]; packages = with pkgs; [ ]; }; - - # Disable dconfload. - systemd.user.services.dconfload.wantedBy = lib.mkForce [ ]; }