diff --git a/profiles/graphical/packages.nix b/profiles/graphical/packages.nix index 35de27e..ee595ae 100644 --- a/profiles/graphical/packages.nix +++ b/profiles/graphical/packages.nix @@ -5,14 +5,17 @@ ... }: let - list-replace = l: e: e': - (let i = lib.lists.findFirstIndex (a: a == e) (-1) l; in - if (i == (-1)) then builtins.throw "Could not find item in list" else (lib.lists.take i l ++ [e'] ++ lib.lists.drop (i+1) l)); - dovecot-mysaa = pkgs.dovecot.overrideAttrs { - configureFlags = - list-replace (list-replace pkgs.dovecot.configureFlags "--sysconfdir=/etc" "--sysconfdir=/home/mysaa/.local/etc/") - "--localstatedir=/var" "--localstatedir=/home/mysaa/.local/var"; - }; in + clean-nixos-git-check-script = pkgs.writeScript "clean-nixos-git-check" '' + if [ -z "$(${pkgs.git}/bin/git -C /etc/nixos status -u --porcelain)" ] + then + echo "/etc/nixos is clean !" + exit 0 + else + ${pkgs.zenity}/bin/zenity --info --text="/etc/nixos/ is not clean, don't forget to commit !" + exit 0 + fi + ''; + in { environment.systemPackages = with pkgs; [ @@ -87,4 +90,33 @@ WantedBy = [ "timers.target" ]; }; }; + + home-manager.users.mysaa.systemd.user = { + services.check-nixos-git-clean = { + Unit = { + Description = "Sends a notification if /etc/nixos is not clean"; + }; + Service = { + Type = "oneshot"; + ExecStart = "${pkgs.bash}/bin/bash ${clean-nixos-git-check-script}"; + }; + }; + timers.check-nixos-git-clean = { + Unit = { + Description = "Bi-hourly reminder that /etc/nixos should be clean"; + }; + Timer = { + OnBootSec = "5min"; + OnUnitActiveSec = "30min"; + Persistent = "true"; + Unit = "check-nixos-git-clean.service"; + }; + Install = { + WantedBy = [ "timers.target" ]; + }; + }; + }; + + + }