Files
pezkuwi-subxt/scripts/bridges_update_subtree.sh
T
Serban Iorga 142a11ad95 Update bridges subtree (#1392)
* Move the bridges subtree under root

* Squashed 'bridges/' changes from 277f0d5496..e50398d1c5

e50398d1c5 bridges subtree fixes (#2528)
99af07522d Markdown linter (#1309) (#2526)
733ff0fe7a `polkadot-staging` branch: Use polkadot-sdk dependencies (#2524)
e8a59f141e Fix benchmark with new XCM::V3 `MAX_INSTRUCTIONS_TO_DECODE` (#2514)
62b185de15 Backport `polkadot-sdk` changes to `polkadot-staging` (#2518)
d9658f4d5b Fix equivocation detection containers startup (#2516) (#2517)
d65db28a8f Backport: building images from locally built binaries (#2513)
5fdbaf45f6 Start the equivocation detection loop from the complex relayer (#2507) (#2512)
7fbb67de46 Backport: Implement basic equivocations detection loop (#2375)
cb7efe245c Manually update deps in polkadot staging (#2371)
d17981fc33 #2351 to polkadot-staging (#2359)

git-subtree-dir: bridges
git-subtree-split: e50398d1c594e4e96df70b0bd376e565d17e8558

* Reapply diener workspacify

* Fix Cargo.toml

* Fix test

* Adjustments
2023-09-11 11:47:45 +03: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