{ config, lib, pkgs, ... }: { # dix: https://github.com/faukah/dix # rust based # module from https://github.com/getchoo/borealis/blob/a35749aa6280fbe4cbe72291bb9c4cc643780c76/modules/nixos/custom/activation-diff.nix # nvd: https://discourse.nixos.org/t/nvd-simple-nix-nixos-version-diff-tool/12397 # python based # module from https://github.com/luishfonseca/dotfiles/blob/ab7625ec406b48493eda701911ad1cd017ce5bc1/modules/upgrade-diff.nix # gated on formatAttr which is set by nixos-generators system.activationScripts.show-nixos-closure-diff = lib.mkIf ((config.formatAttr or null) == null) { supportsDryActivation = true; text = if pkgs ? dix then '' ${pkgs.dix}/bin/dix /run/current-system "$systemConfig" '' else '' ${pkgs.nvd}/bin/nvd --nix-bin-dir=${pkgs.nix}/bin diff /run/current-system "$systemConfig" ''; }; }