feat: add support for homeConfigurations
This enables support for `homeConfigurations` (the Home Manager standalone configurations).
This commit is contained in:
parent
b7e76df813
commit
838f205020
2 changed files with 51 additions and 8 deletions
|
@ -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}'
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue