lkjsadljkdsalkjdsa
This commit is contained in:
107
justfile
107
justfile
@@ -183,6 +183,55 @@ _build_packages $outdir +$attrpaths:
|
||||
chmod +x "$outdir"/_rerun.sh
|
||||
fd . "$outdir" -l
|
||||
|
||||
# TODO: use in 'bump'
|
||||
[no-cd]
|
||||
build-package-sources +packages:
|
||||
#!/usr/bin/env -S bash -euo pipefail -x
|
||||
[[ -e .git && -f flake.nix ]] || { printf >&2 "%s\n" "ERROR: not in repo root!"; false; }
|
||||
declare packages=("$@")
|
||||
# TODO: allow selecting different names than result-src and results-src-writeable
|
||||
just _build_packages results-src "${packages[@]/%/.src}"
|
||||
[[ -d results-src-writeable ]] && rm -rf results-src-writeable ||:
|
||||
mkdir -p results-src-writeable
|
||||
for result in results-src/* ; do
|
||||
[[ -L "$result" ]] || continue
|
||||
result_writeable=results-src-writeable/"$(basename "$result")"
|
||||
mkdir -p "$result_writeable"
|
||||
if [[ -d "$(readlink "$result")" ]]; then
|
||||
rsync -rxL "$result/" "$result_writeable/" &&
|
||||
chmod -R +w "$result_writeable/" ||:
|
||||
elif [[ -f "$(readlink "$result")" ]]; then
|
||||
atool "$(readlink "$result")" --extract-to="$result_writeable/" ||:
|
||||
if [[ $(ls --almost-all "$result_writeable" | wc -l ) -eq 1 ]] && test -d "$result_writeable"/*; then
|
||||
mv "$result_writeable"{,-old}
|
||||
mv "$result_writeable"-old/* "$result_writeable"
|
||||
rmdir "$result_writeable"-old
|
||||
fi
|
||||
fi
|
||||
(
|
||||
# todo: should i eval nix and query for upstream remote and ref?
|
||||
cd "$result_writeable"
|
||||
$GIT init
|
||||
$GIT add .
|
||||
$GIT commit -m "Base" >/dev/null
|
||||
) ||:
|
||||
done
|
||||
{
|
||||
# printf "#!/usr/bin/env -S nom-build\n"
|
||||
printf "#!/usr/bin/env -S nom build -f\n"
|
||||
printf "let pkgs = import ./. { }; in {\n"
|
||||
for package in "${packages[@]}"; do
|
||||
# printf " # ./build.nix -A %q" "$package"
|
||||
printf " # ./build.nix %q\n" "$package"
|
||||
printf " %s = pkgs.%s.overrideAttrs { src = ./results-src-writeable/%s.src; };\n" "$package" "$package" "$package"
|
||||
done
|
||||
printf "}\n"
|
||||
# printf "# ./build.nix$(printf " -A %q" "${packages[@]}")\n"
|
||||
printf "# ./build.nix$(printf " %q" "${packages[@]}")\n"
|
||||
printf "# ./build.nix\n"
|
||||
} >build.nix
|
||||
chmod +x build.nix
|
||||
|
||||
@build-pr-packages $pr=`just _a_pr` $merge=`gum choose --header="which refs/pull/<id>/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" $attrpaths | xargs echo + nom build $args
|
||||
-(printf "github:nixos/nixpkgs/refs/pull/"$(just _sanitize_pr_url "$pr")"/$merge#%s" $attrpaths | xargs nom build $args) || true
|
||||
@@ -280,55 +329,27 @@ _bump +$packages:
|
||||
$GIT diff
|
||||
printf "delta results-src-{old,new}/%s/.\n" "$@"
|
||||
|
||||
@fix +packages:
|
||||
[[ $# -gt 0 ]] || set -- $(just _some_packages); \
|
||||
cd "$(just _new_worktree fix "$(echo "$package" | rev | cut -d. -f1 | rev)")"; \
|
||||
just _fix "$package" && $SHELL
|
||||
fix *packages:
|
||||
#!/usr/bin/env -S bash -euo pipefail
|
||||
declare packages=("$@")
|
||||
[[ "${#packages[@]}" -gt 0 ]] || packages=($(just _some_packages))
|
||||
[[ "${#packages[@]}" -gt 0 ]] || { printf >&2 "%s\n" "ERROR: no packages chosen..."; false; }
|
||||
cd "$(just _new_worktree fix "$(echo "${packages[0]}" | rev | cut -d. -f1 | rev)")"
|
||||
just _fix "${packages[@]}" ||:
|
||||
$SHELL
|
||||
|
||||
[no-cd]
|
||||
_fix +packages:
|
||||
#!/usr/bin/env -S bash -euo pipefail
|
||||
[[ -e .git && flake.nix ]]
|
||||
local packages=("$@")
|
||||
just _build_packages results-src "${packages[@]/%/.src}" ||:
|
||||
# TODO: make this rutine reuseable?
|
||||
mkdir -p result-src-writeable
|
||||
for result in results-src/*; do;
|
||||
result_writeable=result-src-writeable/$(basename "$result")
|
||||
mkdir -p "$result_writeable"
|
||||
if [[ -d $(readlink "$result") ]]; then
|
||||
rsync -rxL "$result/" "$result_writeable/" &&
|
||||
chmod -R +w "$result_writeable/" ||:
|
||||
elif [[ -f $(readlink "$result") ]]; then
|
||||
atool "$(readlink result-src)" --extract-to="$result_writeable/" ||:
|
||||
if [[ $(ls "$result_writeable" | wc -l ) -eq 1 && test -d "$result_writeable"/* ]]; then
|
||||
mv "$result_writeable"{,-old}
|
||||
mv "$result_writeable"-old/* "$result_writeable"
|
||||
rmdir "$result_writeable"-old
|
||||
fi
|
||||
fi
|
||||
(
|
||||
cd "$result_writeable"
|
||||
$GIT init
|
||||
$GIT add .
|
||||
$GIT commit -m "Base" >/dev/null
|
||||
) ||:
|
||||
done
|
||||
printf >build.nix "#!/usr/bin/env -S nom build -f\n"
|
||||
printf >build.nix "let pkgs = import ./. { }; in {\n%s\n}\n" "$(
|
||||
for package in "${packages[@]}"; do
|
||||
printf " %s = pkgs.%s.overrideAttrs { src = ./result-src-writeable/%s-src; };" "$package" "$package" "$package"
|
||||
done
|
||||
)"
|
||||
chmod +x build.nix
|
||||
[[ -e .git && -f flake.nix ]] || { printf >&2 "%s\n" "ERROR: not in repo root!"; false; }
|
||||
declare packages=("$@")
|
||||
just build-package-sources "${packages[@]}"
|
||||
NIXPKGS_ALLOW_UNFREE=1 just build-packages "${packages[@]}" ||:
|
||||
if command -v bat >/dev/null;
|
||||
then bat build.nix
|
||||
then bat build.nix --style header-filename
|
||||
else cat build.nix
|
||||
fi
|
||||
NIXPKGS_ALLOW_UNFREE=1 just build-packages "${packages[@]}" ||:
|
||||
echo "# $package"
|
||||
echo " ./build.nix "${packages[*]/#/-A }"
|
||||
echo " ./results/_rerun.sh"
|
||||
echo "./results/_rerun.sh --system $(nix config show system)"
|
||||
|
||||
pr $number=`just _a_pr`:
|
||||
#!/usr/bin/env -S bash -euo pipefail
|
||||
@@ -587,7 +608,7 @@ _mk_clean_list:
|
||||
cd "$path"
|
||||
! $GIT diff HEAD --quiet --exit-code >&/dev/null ||
|
||||
$GIT ls-files --others --exclude-standard |
|
||||
grep -qEv '^(update-executables\.txt|results|build\.nix|(asd|do|foo|test|spismeg|packages)[2-9]?.(sh|txt|json)|eval.json|[^/]*\.log)$'
|
||||
grep -qEv '^(update-executables\.txt|results(-.*)?|build\.nix|(asd|do|foo|test|spismeg|packages)[2-9]?\.(sh|txt|json)|(eval|packages)\.json|[^/]*\.log)$'
|
||||
) ; then
|
||||
continue
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user