fix(report): use nix eval to list the components
All checks were successful
/ report-size-pr (pull_request) Successful in 3s
/ report-download-check-pr (pull_request) Successful in 1s
/ check (treefmt) (push) Successful in 3s
/ report-size (push) Successful in 2s
/ report-download-check (push) Successful in 0s

This is less error prone than parsing the information from `nix flake
show`.
This commit is contained in:
Jalil David Salamé Messina 2025-07-13 18:39:23 +02:00
parent 6b0b78e496
commit e5d1a0751a
Signed by: jalil
GPG key ID: F016B9E770737A0B

View file

@ -7,24 +7,25 @@ util_path="${GITHUB_ACTION_PATH:-.}/scripts/utils.sh"
# shellcheck source=scripts/utils.sh
. "${util_path}"
group 'Retrieving Flake information'
flake_info=$(nix flake show --json --quiet --quiet)
endgroup
system=$(nix eval --impure --json --expr 'builtins.currentSystem')
group 'Show Packages'
packages=$(echo "$flake_info" | jq --raw-output --argjson system "$system" 'getpath(["packages", $system]) | select(. != null) | keys[]')
# Extract the names of a flake attrset
get_names() {
nix eval --json --apply builtins.attrNames "$1" 2>/dev/null | jq --raw-output '.[]'
}
group "Show Packages for $system"
packages=$(get_names .#packages."$system")
[ -z "$packages" ] || log "$packages"
endgroup
group 'Show Home Manager Configurations'
hmConfigs=$(echo "$flake_info" | jq --raw-output '.homeConfigurations | select(. != null) | keys[]')
hmConfigs=$(get_names .#homeConfigurations)
[ -z "$hmConfigs" ] || log "$hmConfigs"
endgroup
group 'Show NixOS Configurations'
nixosConfigs=$(echo "$flake_info" | jq --raw-output '.nixosConfigurations | select(. != null) | keys[]')
nixosConfigs=$(get_names .#nixosConfigurations)
[ -z "$nixosConfigs" ] || log "$nixosConfigs"
endgroup