rust/library/portable-simd/subtree-sync.sh

52 lines
1.3 KiB
Bash
Executable file

#!/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/master)" ]; then
echo "$(pwd) is not at origin/master" >&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