lkjdsalkjdsalkjads

This commit is contained in:
2025-03-24 00:59:13 +01:00
parent c2556a0402
commit d17e0a2c13

103
justfile
View File

@@ -248,10 +248,10 @@ rebase-commits commit=`cd "$invokedir"; just _a_commit`:
[no-cd]
_bump +$packages:
#!/usr/bin/env -S bash -euo pipefail
test -e .git
#!/usr/bin/env -S bash -euo pipefail -x
[[ -e .git && flake.nix ]]
printf "%s.src\n" "$@" | xargs just _build_packages results-src-old ||: # TODO: unpack?
config=(
config=(env
NIXPKGS_ALLOW_UNFREE=1
NIXPKGS_ALLOW_BROKEN=1
NIXPKGS_ALLOW_INSECURE=1
@@ -281,59 +281,72 @@ _bump +$packages:
$GIT diff
printf "delta results-src-{old,new}/%s/.\n" "$@"
#fix package=`just _a_package`:
# ./mk-fix.sh "{{package}}"
@fix $package=`just _a_package`:
@fix +packages:
[[ $# -gt 0 ]] || set -- $(just _some_packages); \
cd "$(just _new_worktree fix "$(echo "$package" | rev | cut -d. -f1 | rev)")"; \
just _fix "$package" && $SHELL
[no-cd]
_fix $package:
_fix +packages:
#!/usr/bin/env -S bash -euo pipefail
test -e .git
nix-build . -A "$package".src --out-link result-src
test -d $(readlink result-src) && {
mkdir -p result-src-writeable
rsync -rxL result-src/ result-src-writeable/
chmod -R +w result-src-writeable
} ||:
test -f $(readlink result-src) && {
mkdir result-src-writeable
atool $(readlink result-src) --extract-to=result-src-writeable
if test $(ls result-src-writeable | wc -l ) -eq 1 && test -d result-src-writeable/* ; then
mv result-src-writeable{,-old}
mv result-src-writeable-old/* result-src-writeable
rmdir result-src-writeable-old
fi
} ||:
test -d result-src-writeable && (
cd result-src-writeable
$GIT init
$GIT add .
$GIT commit -m "Base" >/dev/null
)
cat <<-"EOF" > build.nix
#!/usr/bin/env -S nom build -f
let pkgs = import ./. {}; in pkgs.{{ package }}.overrideAttrs { src = ./result-src-writeable; }
EOF
[[ -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
NIXPKGS_ALLOW_UNFREE=1 just build-packages "$package" ||:
if command -v bat >/dev/null;
then bat build.nix
else cat build.nix
fi
NIXPKGS_ALLOW_UNFREE=1 just build-packages "${packages[@]}" ||:
echo "# $package"
echo ' ./build.nix'
echo ' ./results/_rerun.sh'
echo " ./build.nix "${packages[*]/#/-A }"
echo " ./results/_rerun.sh"
pr $number=`just _a_pr`:
#!/usr/bin/env -S bash -euo pipefail
number=$(just _sanitize_pr_url "$number")
if test -d prs/pr-"$number"-* ; then
cd prs/pr-"$number"-* && $SHELL
if [[ -d prs/pr-"$number" ]]; then
cd prs/pr-"$number"
elif test -d prs/pr-"$number"-*; then
cd prs/pr-"$number"-*
else
cd "$(just _new_worktree prs pr-{{ number }} "upstream/master" "")"
gh pr checkout {{ number }}
$GIT branch -D prs-$(basename "$PWD")
$SHELL
(cd master;
$GIT worktree prune
$GIT worktree add ../prs/pr-"$number"
)
cd prs/pr-"$number"
gh pr checkout "$number"
fi
$SHELL
@pr-comment-diff:
cd "$invokedir"; just _pr_post_diff comment
@@ -414,7 +427,7 @@ _mk_worktree $name $dir $base="upstream/master" $onto="":
$GIT worktree add ../"$dir" "$name"
cd ../"$dir"
$GIT pull "$remote" "$branch"
test -z "$onto" || just rebase-onto HEAD "$onto"
just rebase-onto HEAD "$onto"
pop-commits-to-new-worktree $commits=`cd "$invokedir"; just _some_commits`:
#!/usr/bin/env -S bash -euo pipefail
@@ -565,7 +578,7 @@ _packages_json:
gum spin --show-output just list-packages | cut -f1 | fzf --sync --layout=reverse --height 15 | grep .
@_some_packages:
gum spin --show-output just list-packages | cut -f1 | fzf --sync --layout=reverse --multi | grep .
gum spin --show-output just list-packages | cut -f1 | fzf --sync --layout=reverse --height 15 --multi | grep .
@_a_pr:
cd master; gh pr list --limit 1000 --json 'number,title' --state open | jq '.[]|"\(.number) - \(.title)"' -r | gum filter --placeholder "Pick PR..." --height 10 | cut -d' ' -f1