From c2fd0ecfda24377fae5fba38b1221e60971315ec Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Mon, 13 Jul 2026 16:55:42 +0200 Subject: [PATCH] just checkout lol --- justfile | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 59 insertions(+), 5 deletions(-) diff --git a/justfile b/justfile index 8b9da16..9378333 100644 --- a/justfile +++ b/justfile @@ -413,6 +413,12 @@ __build_packages $system $outdir +$attrpaths: chmod +x "$outdir"/_rerun.sh fd . "$outdir" -l +# TODO: redesign or drop +@build-pr-packages $pr=`just _a_pr` $merge=`gum choose --header="which refs/pull//xxx ?" merge head` $attrpaths=`just _some_packages` $args=`gum choose --no-limit -- -j0 "--system "{aarch64,x86_64}-{darwin,linux} --rebuild`: + printf "github:nixos/nixpkgs/refs/pull/"$(just _sanitize_pr_url "$pr")"/$merge#%s\n" $attrpaths | xargs {{XARGS_NL}} echo + nom build $args + (printf "github:nixos/nixpkgs/refs/pull/"$(just _sanitize_pr_url "$pr")"/$merge#%s\n" $attrpaths | xargs {{XARGS_NL}} nom build $args) ||: + printf "github:nixos/nixpkgs/refs/pull/"$(just _sanitize_pr_url "$pr")"/$merge#%s\n" $attrpaths | xargs {{XARGS_NL}} echo + nom build $args + # TODO: use in 'bump' [no-cd] build-package-sources *packages: @@ -473,11 +479,59 @@ _build_package_sources $system +packages: } >build.nix chmod +x build.nix -# TODO: redesign or drop -@build-pr-packages $pr=`just _a_pr` $merge=`gum choose --header="which refs/pull//xxx ?" merge head` $attrpaths=`just _some_packages` $args=`gum choose --no-limit -- -j0 "--system "{aarch64,x86_64}-{darwin,linux} --rebuild`: - printf "github:nixos/nixpkgs/refs/pull/"$(just _sanitize_pr_url "$pr")"/$merge#%s\n" $attrpaths | xargs {{XARGS_NL}} echo + nom build $args - (printf "github:nixos/nixpkgs/refs/pull/"$(just _sanitize_pr_url "$pr")"/$merge#%s\n" $attrpaths | xargs {{XARGS_NL}} nom build $args) ||: - printf "github:nixos/nixpkgs/refs/pull/"$(just _sanitize_pr_url "$pr")"/$merge#%s\n" $attrpaths | xargs {{XARGS_NL}} echo + nom build $args +[no-cd] +checkout-package-sources *packages: + #!/usr/bin/env -S bash -euo pipefail + packages=("$@") + [[ "${#packages[@]}" -gt 0 ]] || readarray -td $'\n' packages < <( just _some_packages ) + just _checkout_package_sources "${packages[@]}" + +[no-cd] +_checkout_package_sources *packages: + #!/usr/bin/env -S bash -euo pipefail + packages=("$@") + verbose() (set -x; "$@";) + if [[ -d results-checkout ]]; then + verbose rm -rf results-checkout/ + fi + delcare -A repo_urls=() + delcare -A repo_revs=() + for package in "${packages[@]}"; do + repo_url=$(verbose nix eval -f default.nix "$package".src.gitRepoUrl --raw ||:) + [[ -n "$repo_url" ]] || continue + + repo_rev=$(verbose nix eval -f default.nix "$package".src.tag --raw ||:) + [[ -n "$repo_rev" ]] || + repo_rev=$(verbose nix eval -f default.nix "$package".src.rev --raw ||:) + [[ -n "$repo_rev" ]] || continue + + repo_urls["$package"]="$repo_url" + repo_urls["$package"]="$repo_rev" + verbose git clone "$repo_url" results-checkout/"$package".src --branch "$repo_rev" ||: + done + { + # echo "#!/usr/bin/env -S nom-build" + echo "#!/usr/bin/env -S nom build -f" + echo "let pkgs = import ./. { }; in {" + for package in "${packages[@]}"; do + # printf " # ./build.nix -A %q" "$package" + echo " /*" + printf " ./build.nix %q\n" "$package" + printf " ./build.nix %q\n" "$package" + echo " */" + printf " %s = pkgs.%s.overrideAttrs { src = ./results-checkout/%s.src; };\n" "$package" "$package" "$package" + done + echo "}" + echo "/*" + echo "nom-build ./build.nix$(printf " -A %q" "${packages[@]}")" + echo "nix-build ./build.nix$(printf " -A %q" "${packages[@]}")" + echo "./build.nix$(printf " %q" "${packages[@]}")" + echo "./build.nix" + printf "git -C ./results-checkout/%s.src diff\n" "${packages[@]}" + echo "*/" + } >build.nix + chmod +x build.nix + # === commit helpers ===