#!/usr/bin/env bash set -euo pipefail root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" cd "$root" origin="$(git remote get-url origin)" origin="${origin%/}" remote_root="$(printf '%s\n' "$origin" | sed -E 's#/[^/]+(\.git)?$##')" fetch_repo() { local repo="$1" local branch="$2" local dir="$3" if [ -d "$dir" ]; then echo "文件夹【$dir】已存在 跳过初始化 " else git clone --branch "$branch" --single-branch "$repo" "$dir" fi } fetch_repo_ex() { local name="$1" local repo="${remote_root}/${name}" local branch="master" fetch_repo "$repo" "$branch" "third_party/${name}" } fetch_repo_ex "build_infra" fetch_repo_ex "CPP_Core" fetch_repo_ex "SSR" fetch_repo_ex "eacp_webapp"