feat: create action
Hopefully it works?
This commit is contained in:
commit
abb495c57a
3 changed files with 170 additions and 0 deletions
70
create-report.sh
Executable file
70
create-report.sh
Executable file
|
@ -0,0 +1,70 @@
|
|||
#!/bin/sh
|
||||
|
||||
set -eu
|
||||
|
||||
echo 'Retrieving Flake information' >&2
|
||||
flake_info=$(nix flake show --json 2>/dev/null)
|
||||
packages=$(
|
||||
jq --raw-output '.packages."x86_64-linux" | keys[]' <<-EOF
|
||||
$flake_info
|
||||
EOF
|
||||
)
|
||||
echo "Packages:" >&2
|
||||
echo "$packages" >&2
|
||||
configurations=$(
|
||||
jq --raw-output '.nixosConfigurations | keys[]' <<-EOF
|
||||
$flake_info
|
||||
EOF
|
||||
)
|
||||
echo "NixOS Configurations:" >&2
|
||||
echo "$configurations" >&2
|
||||
|
||||
package_size_table() {
|
||||
table='| Installable | NAR Size | Closure Size |
|
||||
|-------------|---------:|-------------:|
|
||||
'
|
||||
for package in $packages; do
|
||||
echo "Building $package" >&2
|
||||
path=$(nix build --print-out-paths ".#$package" 2>/dev/null)
|
||||
echo "Calculating size of $package" >&2
|
||||
row=$(nix path-info --size --closure-size --human-readable "$path" 2>/dev/null |
|
||||
sed "s/^\(\S\+\)\(\s\+\)\(\S\+\)\(\s\+\)\(\S\+\)$/| \`$package\` | \3 | \5 |/")
|
||||
table="$table$row
|
||||
"
|
||||
done
|
||||
|
||||
printf '%s' "$table"
|
||||
}
|
||||
|
||||
configuration_size_table() {
|
||||
table='| NixOS Configuration | NAR Size | Closure Size |
|
||||
|-------------|---------:|-------------:|
|
||||
'
|
||||
for config in $configurations; do
|
||||
echo "Building $config" >&2
|
||||
path=$(nix build --print-out-paths ".#nixosConfigurations.$config.config.system.build.toplevel" 2>/dev/null)
|
||||
echo "Calculating size of $config" >&2
|
||||
row=$(nix path-info --size --closure-size --human-readable "$path" 2>/dev/null |
|
||||
sed "s/^\(\S\+\)\(\s\+\)\(\S\+\)\(\s\+\)\(\S\+\)$/| \`$config\` | \3 | \5 |/")
|
||||
table="$table$row
|
||||
"
|
||||
done
|
||||
|
||||
printf '%s' "$table"
|
||||
}
|
||||
|
||||
markdown() {
|
||||
cat <<-EOF
|
||||
## Outputs' size
|
||||
|
||||
### NixOS Configurations sizes
|
||||
|
||||
$(configuration_size_table)
|
||||
|
||||
### Package sizes
|
||||
|
||||
$(package_size_table)
|
||||
EOF
|
||||
}
|
||||
|
||||
markdown > size-report.md
|
Loading…
Add table
Add a link
Reference in a new issue