mirror of https://github.com/microsoft/vcpkg.git
69 lines
1.8 KiB
PowerShell
69 lines
1.8 KiB
PowerShell
# Copyright (c) Microsoft Corporation.
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
if (Test-Path -LiteralPath "$PSScriptRoot/utility-prefix.ps1") {
|
|
. "$PSScriptRoot/utility-prefix.ps1"
|
|
}
|
|
|
|
$GitUrl = Get-AssetUrl `
|
|
-InternetUrl 'https://github.com/git-for-windows/git/releases/download/v2.55.0.windows.4/Git-2.55.0.4-64-bit.exe' `
|
|
-BlobAssetName 'Git-2.55.0.4-64-bit.exe'
|
|
|
|
$GitInfContent = @"
|
|
[Setup]
|
|
Lang=default
|
|
Dir=C:\Program Files\Git
|
|
Group=Git
|
|
NoIcons=0
|
|
SetupType=default
|
|
Components=gitlfs,assoc,assoc_sh,scalar
|
|
Tasks=
|
|
EditorOption=VIM
|
|
CustomEditorPath=
|
|
DefaultBranchOption=
|
|
PathOption=Cmd
|
|
SSHOption=OpenSSH
|
|
TortoiseOption=false
|
|
CURLOption=WinSSL
|
|
CRLFOption=CRLFCommitAsIs
|
|
BashTerminalOption=ConHost
|
|
GitPullBehaviorOption=FFOnly
|
|
UseCredentialManager=Enabled
|
|
PerformanceTweaksFSCache=Enabled
|
|
EnableSymlinks=Disabled
|
|
EnableFSMonitor=Disabled
|
|
"@
|
|
|
|
try {
|
|
$installer = Get-LocalOrDownloadedFile -Url $GitUrl
|
|
$gitInfPath = Join-Path (Split-Path -Parent $installer.Path) 'git.inf'
|
|
Set-Content -LiteralPath $gitInfPath -Value $gitInfContent -Encoding ascii
|
|
|
|
Write-Host 'Installing Git for Windows...'
|
|
$proc = Start-Process -FilePath $installer.Path -ArgumentList @(
|
|
'/VERYSILENT',
|
|
'/NORESTART',
|
|
'/NOCANCEL',
|
|
'/SP-',
|
|
'/SUPPRESSMSGBOXES',
|
|
"/LOADINF=`"$gitInfPath`""
|
|
) -Wait -PassThru
|
|
$exitCode = $proc.ExitCode
|
|
|
|
if ($exitCode -eq 0) {
|
|
Write-Host 'Installation successful!'
|
|
} else {
|
|
Write-Error "Installation failed! Exited with $exitCode."
|
|
}
|
|
} catch {
|
|
Write-Error "Installation failed! Exception: $($_.Exception.Message)"
|
|
} finally {
|
|
if ($null -ne $gitInfPath) {
|
|
Remove-Item -LiteralPath $gitInfPath -Force -ErrorAction SilentlyContinue
|
|
}
|
|
|
|
if ($null -ne $installer -and $installer.Temporary) {
|
|
Remove-Item -LiteralPath $installer.Path -Force
|
|
}
|
|
}
|