1
0
Fork 0
llvm-premerge-checks/scripts/git_checkout.ps1

39 lines
1.5 KiB
PowerShell
Raw Normal View History

2019-12-13 17:11:54 +01:00
# Copyright 2019 Google LLC
# Licensed under the the Apache License v2.0 with LLVM Exceptions (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# https://llvm.org/LICENSE.txt
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
2019-12-13 18:59:35 +01:00
. ${PSScriptRoot}\common.ps1
2019-12-16 10:19:33 +01:00
#Set-PSDebug -Trace 1
2019-12-13 17:11:54 +01:00
2019-12-13 18:59:35 +01:00
# Wrap git commant in error handling function
2019-12-16 10:19:33 +01:00
function Invoke-Git($cmd) {
Invoke-Call -ScriptBlock { git @cmd } -ErrorAction Stop
2019-12-13 18:59:35 +01:00
}
2019-12-13 17:31:36 +01:00
if (Test-Path -PathType Container "llvm-project"){
Set-Location llvm-project
2019-12-13 17:11:54 +01:00
Write-Output "performing git pull..."
2019-12-16 10:19:33 +01:00
$branch = (git branch) | Out-String
$branch = ($branch -split '\r')[0]
if ($branch -ne "* master"){
Invoke-Call -ScriptBlock { git checkout master} -ErrorAction Stop
}
Invoke-Call -ScriptBlock { git reset --hard } -ErrorAction Stop
Invoke-Call -ScriptBlock { git clean -fdx } -ErrorAction Stop
Invoke-Call -ScriptBlock { git pull } -ErrorAction Stop
2019-12-13 17:11:54 +01:00
# TODO: in case of errors: delete folder and clone
} else {
Write-Output "performing git clone..."
2019-12-16 10:19:33 +01:00
Invoke-Call -ScriptBlock { git clone -q --depth 1 https://github.com/llvm/llvm-project } -ErrorAction Stop
}