From 95b66fe2bf645759c4c23ca5ec8e16dcf200a57d Mon Sep 17 00:00:00 2001 From: Markus Fleschutz Date: Fri, 1 Sep 2023 13:25:04 +0200 Subject: [PATCH] Update sync-repo.ps1 --- Scripts/sync-repo.ps1 | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/Scripts/sync-repo.ps1 b/Scripts/sync-repo.ps1 index 41aa1317..2339a063 100755 --- a/Scripts/sync-repo.ps1 +++ b/Scripts/sync-repo.ps1 @@ -3,17 +3,22 @@ Synchronizes a repo .DESCRIPTION This PowerShell script synchronizes a local Git repository by push and pull (including submodules). -.PARAMETER RepoDir +.PARAMETER path Specifies the path to the Git repository .EXAMPLE - PS> ./sync-repo C:\MyRepo + PS> ./sync-repo.ps1 C:\MyRepo + ⏳ (1/4) Searching for Git executable... git version 2.42.0.windows.1 + ⏳ (2/4) Checking local repository... πŸ“‚C:\MyRepo + ⏳ (3/4) Pulling remote updates... Already up to date. + ⏳ (4/4) Pushing local updates... Everything up-to-date + βœ”οΈ Synced repo πŸ“‚MyRepo in 5 sec .LINK https://github.com/fleschutz/PowerShell .NOTES Author: Markus Fleschutz | License: CC0 #> -param([string]$RepoDir = "$PWD") +param([string]$path = "$PWD") try { $StopWatch = [system.diagnostics.stopwatch]::startNew() @@ -22,20 +27,20 @@ try { & git --version if ($lastExitCode -ne "0") { throw "Can't execute 'git' - make sure Git is installed and available" } - Write-Host "⏳ (2/4) Checking local repository... πŸ“‚$RepoDir" - if (!(Test-Path "$RepoDir" -pathType container)) { throw "Can't access folder: $RepoDir" } - $RepoDirName = (Get-Item "$RepoDir").Name + Write-Host "⏳ (2/4) Checking local repository... πŸ“‚$path" + if (!(Test-Path "$path" -pathType container)) { throw "Can't access folder: $path" } + $pathName = (Get-Item "$path").Name - Write-Host "⏳ (3/4) Pushing local updates... " -noNewline - & git -C "$RepoDir" push + Write-Host "⏳ (3/4) Pulling remote updates... " -noNewline + & git -C "$Path" pull --all --recurse-submodules + if ($lastExitCode -ne "0") { throw "'git pull --all --recurse-submodes' failed" } + + Write-Host "⏳ (4/4) Pushing local updates... " -noNewline + & git -C "$Path" push if ($lastExitCode -ne "0") { throw "'git push' failed" } - Write-Host "⏳ (4/4) Pulling remote updates... " -noNewline - & git -C "$RepoDir" pull --all --recurse-submodules - if ($lastExitCode -ne "0") { throw "'git pull' failed" } - [int]$Elapsed = $StopWatch.Elapsed.TotalSeconds - "βœ”οΈ synchronized repo πŸ“‚$RepoDirName in $Elapsed sec" + "βœ”οΈ Synced repo πŸ“‚$pathName in $Elapsed sec" exit 0 # success } catch { "⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])"