Files
openvino/scripts/submodule_update_with_gitee.sh
Ilya Churaev 0c9abf43a9 Updated copyright headers (#15124)
* Updated copyright headers

* Revert "Fixed linker warnings in docs snippets on Windows (#15119)"

This reverts commit 372699ec49.
2023-01-16 11:02:17 +04:00

85 lines
2.4 KiB
Bash
Executable File

#!/bin/bash
# Copyright (C) 2018-2023 Intel Corporation
# SPDX-License-Identifier: Apache-2.0
#
# Redirects git submodules to gitee mirrors and updates these recursively.
#
# To revert the changed URLs use 'git submodule deinit .'
#
# -----------------------------------------------------------------------------
# Common bash
if [[ -n ${DEBUG_SHELL} ]]
then
set -x # Activate the expand mode if DEBUG is anything but empty.
fi
set -o errexit # Exit if command failed.
set -o pipefail # Exit if pipe failed.
set -o nounset # Exit if variable not set.
die() {
echo "${1:-"Unknown Error"}" 1>&2
exit 1
}
check_git_version() {
currentver="$(git --version 2>&1 |awk 'NR==1{gsub(/"/,"");print $3}')"
requiredver="2.11.0"
if [ "$(printf '%s\n' "$requiredver" "$currentver" | sort -V | head -n1)" = "$requiredver" ]; then
# Greater than or equal to 2.11.0
true
else
# Less than 2.11.0
false
fi
}
# -----------------------------------------------------------------------------
ERR_CANNOT_UPDATE=13
GITEE_GROUP_NAME="openvinotoolkit-prc"
REPO_DIR=${1:-"${PWD}"}
REPO_DIR=$(cd "${REPO_DIR}" && pwd -P)
SCRIPT_SH=$(cd "$(dirname "${0}")" && pwd -P)/$(basename "${0}")
[ -d "${REPO_DIR}" ] || die "${REPO_DIR} is not directory!"
[ -f "${SCRIPT_SH}" ] || die "${SCRIPT_SH} does not exist!"
pushd "${REPO_DIR}" >/dev/null
# Step 0: Check if .gitmodules file exsit, otherwise no submodule update for this repo
[ -f ".gitmodules" ] || exit 0
# Step 1: Init git submodule
git submodule init
# Step 2: Replacing each submodule URL of the current repository to the mirror repos in gitee
for LINE in $(git config -f .gitmodules --list | grep "\.url=../../[^.]\|\.url=https://github.com/[^.]\|\.url=https://git.eclipse.org/[^.]")
do
SUBPATH="${LINE//.url*/}"
LOCATION=$(echo "${LINE}" | sed 's/.*\///' | sed 's/.git//g' | sed 's/.*\.//')
if [ "$LOCATION" = "unity" ]; then
LOCATION="Unity"
fi
SUBURL="https://gitee.com/$GITEE_GROUP_NAME/$LOCATION"
git config submodule."${SUBPATH}".url "${SUBURL}"
done
# Step 3: Getting submodules of the current repository from gitee mirrors
if check_git_version; then
git submodule update --progress || exit $ERR_CANNOT_UPDATE
else
git submodule update || exit $ERR_CANNOT_UPDATE
fi
# Step 4: Replacing URLs for each sub-submodule. The script runs recursively
git submodule foreach "${SCRIPT_SH}"
popd >/dev/null