diff options
| author | robot-piglet <[email protected]> | 2025-01-16 16:50:58 +0300 |
|---|---|---|
| committer | robot-piglet <[email protected]> | 2025-01-16 17:03:02 +0300 |
| commit | b97da5f54c0edb261f74824aa9a8a643a4ae75f6 (patch) | |
| tree | 2ea3dc77615160742cba9eb802c81191e62ab650 /yql/essentials/docs/scripts | |
| parent | 7e86bcaf10a418760708b0be68e02abd715b745b (diff) | |
Intermediate changes
commit_hash:aad4c6091d19bafc760b4b238153622f73166199
Diffstat (limited to 'yql/essentials/docs/scripts')
| -rwxr-xr-x | yql/essentials/docs/scripts/doc_upgrade_arc.sh | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/yql/essentials/docs/scripts/doc_upgrade_arc.sh b/yql/essentials/docs/scripts/doc_upgrade_arc.sh new file mode 100755 index 00000000000..a165d4ad29a --- /dev/null +++ b/yql/essentials/docs/scripts/doc_upgrade_arc.sh @@ -0,0 +1,88 @@ +#!/bin/bash +set -eu + +TARGET_INFO_FILE="$(realpath $1)" + +if [ ! -f $TARGET_INFO_FILE ]; then + echo "File $TARGET_INFO_FILE doesn't exist. Creating new one" + + if [ "$2" == "" ]; then + echo "Expected source folder as the second argument" >&2 + exit + fi + + if [ ! -d "$2" ]; then + echo "Expected $2 to be a directory" >&2 + exit + fi + + FROM=$(realpath $2) + ARC_ROOT=$(cd $FROM; arc root) + HEAD=$(cd $FROM; arc rev-parse HEAD) + # Normalize FROM relativly to the arc root + FROM=${FROM#$ARC_ROOT/} + echo "$HEAD;$FROM" > $TARGET_INFO_FILE + echo "Filled in $TARGET_INFO_FILE" + exit +fi + +IFS=';' read -r BASE_REV INFO_FROM < "$TARGET_INFO_FILE" +TO=$(dirname $(realpath "$TARGET_INFO_FILE")) +HEAD_REV=$(cd $TO; arc rev-parse HEAD) +ARC_ROOT=$(cd $TO; arc root) +FROM="$ARC_ROOT/$INFO_FROM" + +echo "Base revision: $BASE_REV" +echo "Head revision: $HEAD_REV" +echo "Arc root: $ARC_ROOT" +echo "Source: $FROM" +echo "Target: $TO" + +if [ "$(cd $TO; arc status -s -u all | wc -l)" != "0" ]; then + echo "Target $TO has uncommited changes" >&2 + exit +fi + +cd $ARC_ROOT + +CURRENT_BRANCH=$(arc info | grep 'branch:') +CURRENT_BRANCH=${CURRENT_BRANCH#branch: } +PATCH_FILE=$(mktemp) +BRANCH=upgrade-$(date '+%Y-%m-%d-%H-%M-%S') + +clean_up () { + ARG=$? + echo "Deleting patch file" + rm $PATCH_FILE + exit $ARG +} +trap clean_up EXIT + +echo "Use $BRANCH temporary branch, $PATCH_FILE patch file" +arc co $BASE_REV -b $BRANCH +rsync -r --delete --filter='. -' -v $TO/ $FROM << EOF ++ /*/ ++ *.md ++ toc_*.yaml +- /* +EOF + +arc add -A $INFO_FROM + +arc diff --cached --relative=$INFO_FROM > $PATCH_FILE +arc reset +arc co $INFO_FROM +arc clean -d +arc st +arc co "$CURRENT_BRANCH" +arc br -D $BRANCH +rsync -r --delete --filter='. -' -v $FROM/ $TO << EOF ++ /*/ ++ *.md ++ toc_*.yaml +- /* +EOF + +patch -d $TO -p0 -N -E --no-backup-if-mismatch --merge -i $PATCH_FILE -t + +echo "$HEAD_REV;$INFO_FROM" > $TARGET_INFO_FILE |
