1
Fork 0
mirror of https://github.com/RGBCube/nu_scripts synced 2025-08-01 06:37:46 +00:00

modules/nix: init activation-script (#848)

This commit is contained in:
Schweber 2024-05-26 14:55:40 +02:00 committed by GitHub
parent adaae97990
commit 7a5424d7d0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 40 additions and 1 deletions

View file

@ -1,6 +1,6 @@
# Nix
Commands for working with [nix](https://nixos.org/).
Commands for working with [nix/nixos](https://nixos.org/).
### ns
Shorthand search (`nix search nixpkgs ...`) with much nicer output.
@ -24,3 +24,31 @@ Shorthand search (`nix search nixpkgs ...`) with much nicer output.
╰───┴────────────────┴──────────────────────────────────────────────────────────────┴─────────╯
```
### activation-script
Shows changed packages after running `nixos-rebuild switch/boot` and change in total size of installed packages. Changes that don't affect the installed size are filtered out. Intended to be added to `configuration.nix` of `NixOS`.
```
╭─────────────────┬─────────────┬─────────────┬───────────╮
│ Package │ Old_Version │ New_Version │ Diff │
├─────────────────┼─────────────┼─────────────┼───────────┤
│ xwayland │ ∅ │ 24.1.0 │ 5.3 MB │
│ lsp-plugins │ 1.2.15 │ 1.2.16 │ 1.1 MB │
│ libei │ ∅ │ 1.2.1 │ 547.6 KB │
│ libXfont2 │ ∅ │ 2.0.6 │ 270.0 KB │
│ xkbcomp │ ∅ │ 1.4.7 │ 235.7 KB │
│ font-util │ ∅ │ 1.4.1 │ 234.1 KB │
│ libxkbfile │ ∅ │ 1.1.3 │ 174.6 KB │
│ xfsprogs │ 6.6.0 │ 6.8.0 │ 61.0 KB │
│ xcb-util-errors │ ∅ │ 1.0.1 │ 48.5 KB │
│ libieee1284 │ 0.2.11 │ ∅ │ -123.1 KB │
│ libgnomekbd │ 3.28.1 │ ∅ │ -702.0 KB │
│ xwayland │ 24.1.0 │ ∅ │ -5.3 MB │
│ libgweather │ 4.4.0 │ ∅ │ -23.8 MB │
╰─────────────────┴─────────────┴─────────────┴───────────╯
╭──────┬──────────╮
│ Diff │ -22.0 MB │
╰──────┴──────────╯
```

View file

@ -0,0 +1,11 @@
### add to configuration.nix
nix.settings.experimental-features = ["nix-command"];
system.activationScripts.diff = ''
if [[ -e /run/current-system ]]; then
echo
${pkgs.nushell}/bin/nu -c "let diff_closure = ${pkgs.nix}/bin/nix store diff-closures /run/current-system '$systemConfig'; if \$diff_closure != \"\" { let table = \$diff_closure | lines | where \$it =~ KiB | where \$it =~ → | parse -r '^(?<Package>\S+): (?<Old_Version>[^,]+)(?:.*) → (?<New_Version>[^,]+)(?:.*, )(?<DiffBin>.*)$' | insert Diff { get DiffBin | ansi strip | str trim -l -c '+' | into filesize } | reject DiffBin | sort-by -r Diff; print \$table; \$table | math sum }"
fi
'';