feat: add support for homeConfigurations
All checks were successful
/ check (treefmt) (push) Successful in 3s
/ report-size (push) Successful in 2s
/ report-download-check (push) Successful in 1s

This enables support for `homeConfigurations` (the Home Manager
standalone configurations).
This commit is contained in:
Jalil David Salamé Messina 2025-06-02 18:30:23 +02:00
parent b7e76df813
commit 838f205020
Signed by: jalil
GPG key ID: F016B9E770737A0B
2 changed files with 51 additions and 8 deletions

View file

@ -20,13 +20,22 @@ packages=$(
log "$packages"
endgroup
group 'Show Home Manager Configurations'
hmConfigs=$(
jq --raw-output '.homeConfigurations | select(. != null) | keys[]' <<-EOF
$flake_info
EOF
)
log "$hmConfigs"
endgroup
group 'Show NixOS Configurations'
configurations=$(
nixosConfigs=$(
jq --raw-output '.nixosConfigurations | select(. != null) | keys[]' <<-EOF
$flake_info
EOF
)
log "$configurations"
log "$nixosConfigs"
endgroup
pkgs_json() {
@ -42,10 +51,22 @@ pkgs_json() {
endgroup
}
configs_json() {
hm_configs_json() {
group 'Building Home Manager configurations'
trap endgroup RETURN
for config in $hmConfigs; do
log "Building $config"
path=$(nix build --print-out-paths ".#homeConfigurations.$config.activationPackages")
log "Calculating size of $config"
nix path-info --closure-size --json "$path" |
jq --compact-output --arg pkg "$config" '.[] | {"name": $pkg, "size": .closureSize, "narSize": .narSize}'
done
}
nixos_configs_json() {
group 'Building NixOS configurations'
trap endgroup RETURN
for config in $configurations; do
for config in $nixosConfigs; do
log "Building $config"
path=$(nix build --print-out-paths ".#nixosConfigurations.$config.config.system.build.toplevel")
log "Calculating size of $config"
@ -55,9 +76,11 @@ configs_json() {
}
pkgs=$(pkgs_json | jq --slurp '.')
configs=$(configs_json | jq --slurp '.')
hmConfigs=$(hm_configs_json | jq --slurp '.')
nixosConfigs=$(nixos_configs_json | jq --slurp '.')
echo "{}" | jq \
--argjson pkgs "$pkgs" \
--argjson configs "$configs" \
'{"packages": $pkgs, "nixosConfigurations": $configs}'
--argjson nixosConfigs "$nixosConfigs" \
--argjson hmConfigs "$hmConfigs" \
'{"packages": $pkgs, "nixosConfigurations": $nixosConfigs, "homeConfigurations": $hmConfigs}'