#!/usr/bin/env bash set -eu -o pipefail resultsRoot=$(readlink -f "$1") echo "[+] Realizing nix closures" casync="$(nix-build -A nix-casync)"/bin/nix_casync massRebuildBeforeClosure="$(nix-build -A massRebuild.before)" massRebuildAfterClosure="$(nix-build -A massRebuild.after)" nixpkgsChannelsStableClosure="$(nix-build -A nixpkgsChannels.stable)" nixpkgsChannelsUnstableClosure="$(nix-build -A nixpkgsChannels.unstable)" firefoxBumpBeforeClosure="$(nix-build -A firefoxBump.before)" firefoxBumpAfterClosure="$(nix-build -A firefoxBump.after)" gimpBumpBeforeClosure="$(nix-build -A gimpBump.before)" gimpBumpAfterClosure="$(nix-build -A gimpBump.after)" emacsBumpBeforeClosure="$(nix-build -A emacsBump.before)" emacsBumpAfterClosure="$(nix-build -A emacsBump.after)" openmpiBumpBeforeClosure="$(nix-build -A openmpiBump.before)" openmpiBumpAfterClosure="$(nix-build -A openmpiBump.after)" function collectMetricsForClosure () { echo "[+] Collecting Casync-related Metrics" ./casync "${casync}" 65536 "${closure}" "${resultsDir}"/casync.csv echo "[+] Collecting NAR-related Metrics" ./nar "${closure}" > "${resultsDir}"/nar.csv echo "[+] Collecting file-related Metrics" ./file "${closure}" "${resultsDir}"/file.csv "${resultsDir}"/file-xz-compressed.csv } # Before mass rebuild resultsDir="${resultsRoot}"/before-mass-rebuild mkdir -p "${resultsDir}" closure="${massRebuildBeforeClosure}" collectMetricsForClosure # After mass rebuild resultsDir="${resultsRoot}"/after-mass-rebuild mkdir -p "${resultsDir}" closure="${massRebuildAfterClosure}" collectMetricsForClosure # Channel stable resultsDir="${resultsRoot}"/nixpkgs-stable-channel mkdir -p "${resultsDir}" closure="${nixpkgsChannelsStableClosure}" collectMetricsForClosure # Channel Unstable resultsDir="${resultsRoot}"/nixpkgs-unstable-channel mkdir -p "${resultsDir}" closure="${nixpkgsChannelsUnstableClosure}" collectMetricsForClosure # Before Firefox Bump resultsDir="${resultsRoot}"/before-firefox-bump mkdir -p "${resultsDir}" closure="${firefoxBumpBeforeClosure}" collectMetricsForClosure # After Firefox Bump resultsDir="${resultsRoot}"/after-firefox-bump mkdir -p "${resultsDir}" closure="${firefoxBumpAfterClosure}" collectMetricsForClosure # Before gimp Bump resultsDir="${resultsRoot}"/before-gimp-bump mkdir -p "${resultsDir}" closure="${gimpBumpBeforeClosure}" collectMetricsForClosure # After gimp Bump resultsDir="${resultsRoot}"/after-gimp-bump mkdir -p "${resultsDir}" closure="${gimpBumpAfterClosure}" collectMetricsForClosure # Before emacs Bump resultsDir="${resultsRoot}"/before-emacs-bump mkdir -p "${resultsDir}" closure="${emacsBumpBeforeClosure}" collectMetricsForClosure # After emacs Bump resultsDir="${resultsRoot}"/after-emacs-bump mkdir -p "${resultsDir}" closure="${emacsBumpAfterClosure}" collectMetricsForClosure # Before openmpi Bump resultsDir="${resultsRoot}"/before-openmpi-bump mkdir -p "${resultsDir}" closure="${openmpiBumpBeforeClosure}" collectMetricsForClosure # After openmpi Bump resultsDir="${resultsRoot}"/after-openmpi-bump mkdir -p "${resultsDir}" closure="${openmpiBumpAfterClosure}" collectMetricsForClosure