| #!/bin/bash | |
| set -eou pipefail | |
| git fetch origin | |
| pushd $2 | |
| git fetch origin | |
| popd | |
| if [ "$(git rev-parse --show-prefix)" != "" ]; then | |
| echo "Run this script from the git root" >&2 | |
| exit 1 | |
| fi | |
| if [ "$(git rev-parse HEAD)" != "$(git rev-parse origin/main)" ]; then | |
| echo "$(pwd) is not at origin/main" >&2 | |
| exit 1 | |
| fi | |
| if [ ! -f library/portable-simd/git-subtree.sh ]; then | |
| curl -sS https://raw.githubusercontent.com/bjorn3/git/tqc-subtree-portable/contrib/subtree/git-subtree.sh -o library/portable-simd/git-subtree.sh | |
| chmod +x library/portable-simd/git-subtree.sh | |
| fi | |
| today=$(date +%Y-%m-%d) | |
| case $1 in | |
| "push") | |
| upstream=rust-upstream-$today | |
| merge=sync-from-rust-$today | |
| pushd $2 | |
| git checkout master | |
| git pull | |
| popd | |
| library/portable-simd/git-subtree.sh push -P library/portable-simd $2 $upstream | |
| pushd $2 | |
| git checkout -B $merge origin/master | |
| git merge $upstream | |
| popd | |
| echo "Branch \`$merge\` created in \`$2\`. You may need to resolve merge conflicts." | |
| ;; | |
| "pull") | |
| branch=sync-from-portable-simd-$today | |
| git checkout -B $branch | |
| echo "Creating branch \`$branch\`... You may need to resolve merge conflicts." | |
| library/portable-simd/git-subtree.sh pull -P library/portable-simd $2 origin/master | |
| ;; | |
| esac |