summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/home-manager/personal/programs/devenv.nix48
-rw-r--r--modules/home-manager/personal/programs/emacs.nix14
-rw-r--r--modules/nixos/personal/system.nix26
3 files changed, 46 insertions, 42 deletions
diff --git a/modules/home-manager/personal/programs/devenv.nix b/modules/home-manager/personal/programs/devenv.nix
index 62f2cc2..225425b 100644
--- a/modules/home-manager/personal/programs/devenv.nix
+++ b/modules/home-manager/personal/programs/devenv.nix
@@ -56,25 +56,33 @@ in
];
home.packages = lib.optional importedDevenv pkgs.devenv;
- systemd.user = pkgs.personal.lib.homeManager.serviceWithTimer "devenv-update" {
- Unit = {
- Description = "Update devenv shells";
- After = [
- "network-online.target"
- ];
- };
- Service = {
- Type = "oneshot";
- WorkingDirectory = "${config.home.homeDirectory}";
- ExecStart = "${devenvUpdateScript}/bin/devenv-update";
- };
- Timer = {
- Persistent = true;
- OnCalendar = "daily";
- };
- Install = {
- WantedBy = [ "default.target" ];
- };
- };
+ systemd.user = lib.mkMerge [
+ (pkgs.lib.personal.services.home.serviceWithTimer "devenv-update" {
+ Unit = {
+ Description = "Update devenv shells";
+ After = [
+ "network-online.target"
+ ];
+ };
+ Service = {
+ Type = "oneshot";
+ WorkingDirectory = "${config.home.homeDirectory}";
+ ExecStart = "${devenvUpdateScript}/bin/devenv-update";
+ };
+ Timer = {
+ Persistent = true;
+ OnCalendar = "daily";
+ };
+ Install = {
+ WantedBy = [ "default.target" ];
+ };
+ })
+ ({
+ services.devenv-update = pkgs.lib.personal.services.home.checkNetwork {
+ hosts = [ "github.com" ];
+ restart = true;
+ };
+ })
+ ];
};
}
diff --git a/modules/home-manager/personal/programs/emacs.nix b/modules/home-manager/personal/programs/emacs.nix
index 3b00555..5b579c4 100644
--- a/modules/home-manager/personal/programs/emacs.nix
+++ b/modules/home-manager/personal/programs/emacs.nix
@@ -75,8 +75,8 @@ in
home.file.".spacemacs.d/init.el".source = lib.mkDefault config.personal.home.dotfiles.spacemacs;
# service to update spacemacs
- systemd.user = (
- pkgs.personal.lib.homeManager.serviceWithTimer "spacemacs-update" {
+ systemd.user = lib.mkMerge [
+ (pkgs.lib.personal.services.home.serviceWithTimer "spacemacs-update" {
Unit = {
Description = "Update Spacemacs by pulling the develop branch";
After = [
@@ -96,7 +96,13 @@ in
Install = {
WantedBy = [ "default.target" ];
};
- }
- );
+ })
+ ({
+ services.spacemacs-update = pkgs.lib.personal.services.home.checkNetwork {
+ hosts = [ "github.com" ];
+ restart = true;
+ };
+ })
+ ];
};
}
diff --git a/modules/nixos/personal/system.nix b/modules/nixos/personal/system.nix
index 3337b96..559b3fc 100644
--- a/modules/nixos/personal/system.nix
+++ b/modules/nixos/personal/system.nix
@@ -68,29 +68,16 @@ in
remoteBuilder = with cfgRemote.builder; "${hostName}.${domain}";
- checkNetwork = {
- path = [ pkgs.unixtools.ping ];
- # Check network connectivity
- preStart = "(${
- lib.concatMapStringsSep " && " (host: "ping -c 1 ${host}") cfg.autoUpgrade.checkHosts
- }) || kill -s SIGUSR1 $$";
- unitConfig = {
- StartLimitIntervalSec = 300;
- StartLimitBurst = 5;
- };
- serviceConfig = lib.mkIf (!config.personal.monitoring.enable) {
- Restart = "on-abort";
- RestartSec = 30;
- RestartMode = "direct"; # dependent units will not fail
- };
- };
in
lib.mkMerge [
(lib.mkIf hasFlake {
system.autoUpgrade.flake = cfg.flake;
systemd.services.flake-update = lib.mkIf hasFlakeInputs (
lib.mkMerge [
- checkNetwork
+ (pkgs.lib.personal.services.checkNetwork {
+ hosts = cfg.autoUpgrade.checkHosts;
+ restart = !config.personal.monitoring.enable;
+ })
{
description = "Update flake inputs";
serviceConfig.Type = "oneshot";
@@ -146,7 +133,10 @@ in
flags = lib.optional (!hasFlake) "--upgrade-all";
};
systemd.services.nixos-upgrade = lib.mkMerge [
- checkNetwork
+ (pkgs.lib.personal.services.checkNetwork {
+ hosts = cfg.autoUpgrade.checkHosts;
+ restart = !config.personal.monitoring.enable;
+ })
{
path =
lib.optional reboot pkgs.coreutils