diff --git a/git-mirror-zip.ps1 b/git-mirror-zip.ps1 new file mode 100644 index 0000000..843b8d9 --- /dev/null +++ b/git-mirror-zip.ps1 @@ -0,0 +1,26 @@ +param( + [Parameter(Mandatory = $true, Position = 0)] + [string]$Url, + + [Parameter(Position = 1)] + [string]$Output = "repo.zip" +) + +$ErrorActionPreference = "Stop" +$WorkDir = ".tmp_git_mirror" + +try { + Write-Host "[1/3] Cloning mirror of $Url ..." + git clone --mirror $Url $WorkDir + + Write-Host "[2/3] Creating $Output with maximum compression ..." + Compress-Archive -Path "$WorkDir\*" -DestinationPath $Output -CompressionLevel Optimal -Force + + $Size = [math]::Round((Get-Item $Output).Length / 1MB, 2) + Write-Host "[3/3] Done: $Output ($Size MB)" +} +finally { + if (Test-Path $WorkDir) { + Remove-Item -Recurse -Force $WorkDir + } +}