Files
pezkuwi-subxt/cumulus/scripts/bridges_update_subtree.sh
T
Branislav Kontur 5d1de99799 BridgeHub subtree update (#2820)
* BH subtree master -> polkadot-staging by default

* Squashed 'bridges/' changes from c9dd8b9dfc..0417308a48

0417308a48 Update docs (#2242)
1a0d3b55f3 Nits for subtree (#2241)
18fca2e122 Ensure that the origin is signed for submit_parachain_heads and submit_finality_proof calls (#2239)
fab51067e7 minor doc fix (#2207)
4feb721d32 backport cumulus changes to polkadot-staging (#2167)
433741942a fix testnet argocd deploy (#2151) (#2152)
ff9eadc7dc Updated BHR/W version + codegen (#2148)

git-subtree-dir: bridges
git-subtree-split: 0417308a489096979ed3e08d0f8caafbfca6e7e9

* Fix deps
2023-07-04 15:18:26 +00:00

86 lines
2.5 KiB
Bash
Executable File

#!/bin/bash
# A script to udpate bridges repo as subtree to Cumulus
# Usage:
# ./scripts/bridges_update_subtree.sh fetch
# ./scripts/bridges_update_subtree.sh patch
# ./scripts/bridges_update_subtree.sh merge
set -e
BRIDGES_BRANCH="${BRANCH:-polkadot-staging}"
BRIDGES_TARGET_DIR="${TARGET_DIR:-bridges}"
function fetch() {
# the script is able to work only on clean git copy
[[ -z "$(git status --porcelain)" ]] || {
echo >&2 "The git copy must be clean (stash all your changes):";
git status --porcelain
exit 1;
}
local bridges_remote=$(git remote -v | grep "parity-bridges-common.git (fetch)" | head -n1 | awk '{print $1;}')
if [ -z "$bridges_remote" ]; then
echo ""
echo "Adding new remote: 'bridges' repo..."
echo ""
echo "... check your YubiKey ..."
git remote add -f bridges git@github.com:paritytech/parity-bridges-common.git
bridges_remote="bridges"
else
echo ""
echo "Fetching remote: '${bridges_remote}' repo..."
echo ""
echo "... check your YubiKey ..."
git fetch ${bridges_remote} --prune
fi
echo ""
echo "Syncing/updating subtree with remote branch '${bridges_remote}/$BRIDGES_BRANCH' to target directory: '$BRIDGES_TARGET_DIR'"
echo ""
echo "... check your YubiKey ..."
git subtree pull --prefix=$BRIDGES_TARGET_DIR ${bridges_remote} $BRIDGES_BRANCH --squash
}
function patch() {
echo ""
echo "Patching/removing unneeded stuff from subtree in target directory: '$BRIDGES_TARGET_DIR'"
$BRIDGES_TARGET_DIR/scripts/verify-pallets-build.sh --ignore-git-state --no-revert
}
function merge() {
echo ""
echo "Merging stuff from subtree in target directory: '$BRIDGES_TARGET_DIR'"
# stage all removed by patch: DU, MD, D, AD - only from subtree directory
git status -s | awk '$1 == "DU" || $1 == "D" || $1 == "MD" || $1 == "AD" {print $2}' | grep "^$BRIDGES_TARGET_DIR/" | xargs git rm -q --ignore-unmatch
echo ""
echo "When all conflicts are resolved, do 'git merge --continue'"
}
function amend() {
echo ""
echo "Amend stuff from subtree in target directory: '$BRIDGES_TARGET_DIR'"
git commit --amend -S -m "updating bridges subtree + remove extra folders"
}
case "$1" in
fetch)
fetch
;;
patch)
patch
;;
merge)
merge
;;
amend)
amend
;;
all)
fetch
patch
;;
esac