Added timer to check if /etc/nixos is clean
This commit is contained in:
parent
3343ec1dec
commit
f50bb2e8c3
@ -5,14 +5,17 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
list-replace = l: e: e':
|
clean-nixos-git-check-script = pkgs.writeScript "clean-nixos-git-check" ''
|
||||||
(let i = lib.lists.findFirstIndex (a: a == e) (-1) l; in
|
if [ -z "$(${pkgs.git}/bin/git -C /etc/nixos status -u --porcelain)" ]
|
||||||
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));
|
then
|
||||||
dovecot-mysaa = pkgs.dovecot.overrideAttrs {
|
echo "/etc/nixos is clean !"
|
||||||
configureFlags =
|
exit 0
|
||||||
list-replace (list-replace pkgs.dovecot.configureFlags "--sysconfdir=/etc" "--sysconfdir=/home/mysaa/.local/etc/")
|
else
|
||||||
"--localstatedir=/var" "--localstatedir=/home/mysaa/.local/var";
|
${pkgs.zenity}/bin/zenity --info --text="/etc/nixos/ is not clean, don't forget to commit !"
|
||||||
}; in
|
exit 0
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
in
|
||||||
{
|
{
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
@ -87,4 +90,33 @@
|
|||||||
WantedBy = [ "timers.target" ];
|
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" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user