Update pull-repo.ps1

This commit is contained in:
Markus Fleschutz 2023-09-06 16:43:16 +02:00
parent 3bfb53cdc5
commit 9e5773e033

View File

@ -1,12 +1,17 @@
<# <#
.SYNOPSIS .SYNOPSIS
Pulls repository updates Pulls updates into a Git repository
.DESCRIPTION .DESCRIPTION
This PowerShell script pulls the latest updates into a local Git repository (including submodules). This PowerShell script pulls the latest updates into a local Git repository (including submodules).
.PARAMETER RepoDir .PARAMETER RepoDir
Specifies the file path to the local Git repository (default is working directory) Specifies the file path to the local Git repository (default is working directory)
.EXAMPLE .EXAMPLE
PS> ./pull-repo C:\MyRepo PS> ./pull-repo.ps1 C:\MyRepo
(1/4) Searching for Git executable... git version 2.42.0.windows.1
(2/4) Checking local repository...
(3/4) Pulling updates...
(4/4) Updating submodules...
Pulled updates into repo 📂UFA1 in 14 sec
.LINK .LINK
https://github.com/fleschutz/PowerShell https://github.com/fleschutz/PowerShell
.NOTES .NOTES
@ -22,7 +27,7 @@ try {
& git --version & git --version
if ($lastExitCode -ne "0") { throw "Can't execute 'git' - make sure Git is installed and available" } if ($lastExitCode -ne "0") { throw "Can't execute 'git' - make sure Git is installed and available" }
Write-Host "⏳ (2/4) Checking local repository... 📂$RepoDir" Write-Host "⏳ (2/4) Checking local repository..."
if (-not(Test-Path "$RepoDir" -pathType container)) { throw "Can't access folder: $RepoDir" } if (-not(Test-Path "$RepoDir" -pathType container)) { throw "Can't access folder: $RepoDir" }
$Result = (git -C "$RepoDir" status) $Result = (git -C "$RepoDir" status)
if ("$Result" -match "HEAD detached at ") { throw "Currently in detached HEAD state (not on a branch!), so nothing to pull" } if ("$Result" -match "HEAD detached at ") { throw "Currently in detached HEAD state (not on a branch!), so nothing to pull" }
@ -37,7 +42,7 @@ try {
if ($lastExitCode -ne "0") { throw "'git submodule update' failed with exit code $lastExitCode" } if ($lastExitCode -ne "0") { throw "'git submodule update' failed with exit code $lastExitCode" }
[int]$Elapsed = $StopWatch.Elapsed.TotalSeconds [int]$Elapsed = $StopWatch.Elapsed.TotalSeconds
"✔️ Pulling updates into repository 📂$RepoDirName took $Elapsed sec" "✔️ Pulled updates into repo 📂$RepoDirName in $Elapsed sec"
exit 0 # success exit 0 # success
} catch { } catch {
"⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])" "⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])"