Keep a log over time with the config commits

This commit is contained in:
Rodrigo Arias 2023-09-02 23:49:41 +02:00
parent 13a70411aa
commit 6848b58e39
2 changed files with 24 additions and 8 deletions

View File

@ -11,6 +11,7 @@
./ssh.nix
./users.nix
./watchdog.nix
./rev.nix
];
nixpkgs.overlays = [
@ -18,6 +19,11 @@
(import ../../pkgs/overlay.nix)
];
system.configurationRevision =
if theFlake ? rev
then theFlake.rev
else throw ("Refusing to build from a dirty Git tree!");
nix.nixPath = [
"nixpkgs=${nixpkgs}"
"bscpkgs=${bscpkgs}"
@ -28,14 +34,6 @@
nix.registry.bscpkgs.flake = bscpkgs;
nix.registry.jungle.flake = theFlake;
system.configurationRevision =
if theFlake ? rev
then theFlake.rev
else throw ("Refusing to build from a dirty Git tree!");
# Save the commit of the config in /etc/nixos/config.rev
environment.etc."nixos/config.rev".text = system.configurationRevision;
environment.systemPackages = with pkgs; [
vim wget git htop tmux pciutils tcpdump ripgrep nix-index nixos-option
nix-diff ipmitool freeipmi ethtool lm_sensors ix cmake gnumake file tree

18
m/common/rev.nix Normal file
View File

@ -0,0 +1,18 @@
{ theFlake, ... }:
let
rev = if theFlake ? rev then theFlake.rev
else throw ("Refusing to build from a dirty Git tree!");
in {
# Save the commit of the config in /etc/configrev
environment.etc.configrev.text = rev + "\n";
# Keep a log with the config over time
system.activationScripts.configRevLog.text = ''
BOOTED=$(cat /run/booted-system/etc/configrev 2>/dev/null || echo unknown)
CURRENT=$(cat /run/current-system/etc/configrev 2>/dev/null || echo unknown)
NEXT=${rev}
DATENOW=$(date --iso-8601=seconds)
echo "$DATENOW booted=$BOOTED current=$CURRENT next=$NEXT" >> /var/configrev.log
'';
}