44 lines
1.2 KiB
PowerShell
44 lines
1.2 KiB
PowerShell
$ErrorActionPreference = "Stop"
|
|
$scriptDir = $PSScriptRoot
|
|
if ( [string]::IsNullOrWhiteSpace($scriptDir))
|
|
{
|
|
$scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path
|
|
}
|
|
$root = (Resolve-Path -LiteralPath (Join-Path $scriptDir "..")).Path
|
|
Set-Location -LiteralPath $root
|
|
$origin = git remote get-url origin
|
|
$origin = $origin.TrimEnd("/")
|
|
$remoteRoot = $origin -replace "/[^/]+(\.git)?$", ""
|
|
function Fetch-Repo
|
|
{
|
|
param(
|
|
[string]$Repo,
|
|
[string]$Branch,
|
|
[string]$Dir
|
|
)
|
|
if (Test-Path -LiteralPath $Dir -PathType Container)
|
|
{
|
|
git -C $Dir rev-parse --is-inside-work-tree *> $null
|
|
git -C $Dir remote set-url origin $Repo
|
|
git -C $Dir fetch origin $Branch
|
|
git -C $Dir checkout $Branch
|
|
git -C $Dir pull --ff-only origin $Branch
|
|
}
|
|
else
|
|
{
|
|
git clone --branch $Branch --single-branch $Repo $Dir
|
|
}
|
|
}
|
|
function Fetch-RepoEx
|
|
{
|
|
param(
|
|
[string]$Name
|
|
)
|
|
$repo = "$remoteRoot/$Name"
|
|
$branch = "master"
|
|
Fetch-Repo -Repo $repo -Branch $branch -Dir "third_party/$Name"
|
|
}
|
|
Fetch-RepoEx "build_infra"
|
|
Fetch-RepoEx "CPP_Core"
|
|
Fetch-RepoEx "SSR"
|
|
Fetch-RepoEx "eacp_webapp" |