Sandro 🐧 | nix-update-auto() {
local args base_branch=master branch current_branch package package_name=() version versions
package="${*: -1}"
case $package in
python:*)
IFS=" " read -r -a package_name <<<"${package//:/ }"
package="python310Packages.${package_name[1]}"
set -- "${@:1:$#-1}" "$package"
;;
*) ;;
esac \
;
args=($(getopt --unquoted --options "hf:v:r:" --long "help,build,test,commit,version-regex:,run:,shell:,version:" -- "$@"))
(
set -e
for branch in master staging-next staging; do
versions+="$(nix eval --raw ".?ref=$branch#$package.version")\n"
done
if ! [[ $(echo -e "$versions" | sort -u | wc -l) != 1 ]]; then
echo "Package has different versions on master and different staging branches. Please check manually."
nix versions "$package"
read -r -n 1 -p "Continue? [any/Ctrl-C]"
echo
fi
current_branch="$(git rev-parse --symbolic-full-name --abbrev-ref HEAD)"
if [[ $current_branch != "${args[*]: -1}" && $current_branch != python-updates ]]; then
if [[ ${*: -1} =~ (libva|python.*Packages.(asgiref|attrs|babel|certifi|cryptography|cython|ddt|httpbin|hypothesis|jsonschema|libcst|lxml|paramiko|pbr|pillow|pycares|pygments|pylint|requests|typed-ast|types-typed-ast|urllib3|xmltodict|zipp)|rust-cbindgen) ]]; then
echo "Targeting staging..."
base_branch="$(git merge-base upstream/master upstream/staging)"
export GIT_NEXT_PUSH_TARGET_BRANCH="$base_branch"
fi
git checkout -b "${args[@]: -1}" "$base_branch"
fi
nix-update --build --commit "${args[@]}"
if [[ $current_branch != python-updates ]]; then
git push
fi
)
}
| 13:01:40 |