fix: Erlang bin path to user PATH, don't reinst
- 100MB download was running again, even if installed already - need to ensure the bin dir is in PATH for access to erl - Handle PATH manip in install and uninstall
This commit is contained in:
@@ -1,17 +1,40 @@
|
|||||||
$package = 'Erlang'
|
$package = 'Erlang'
|
||||||
$version = 'R16B01'
|
$version = 'R16B01'
|
||||||
|
$installFolder = 'erl5.10.2'
|
||||||
|
$releaseFolder = "$installFolder\releases\$version"
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$params = @{
|
|
||||||
PackageName = $package;
|
$installedPath = (Join-Path "${Env:\ProgramFiles(x86)}" $installFolder),
|
||||||
FileType = 'exe';
|
(Join-Path $Env:ProgramFiles "$installFolder\bin") |
|
||||||
#uses NSIS installer - http://nsis.sourceforge.net/Docs/Chapter3.html
|
? { Test-Path $_ } |
|
||||||
SilentArgs = '/S';
|
Select -First 1
|
||||||
Url = "http://www.erlang.org/download/otp_win32_$($version).exe";
|
|
||||||
Url64Bit = "http://www.erlang.org/download/otp_win64_$($version).exe";
|
# only way to test for installation of this version is by path on disk
|
||||||
|
if (Test-Path $installedPath)
|
||||||
|
{
|
||||||
|
Write-Host "$package $version is already installed to $installedPath"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$params = @{
|
||||||
|
PackageName = $package;
|
||||||
|
FileType = 'exe';
|
||||||
|
#uses NSIS installer - http://nsis.sourceforge.net/Docs/Chapter3.html
|
||||||
|
SilentArgs = '/S';
|
||||||
|
Url = "http://www.erlang.org/download/otp_win32_$($version).exe";
|
||||||
|
Url64Bit = "http://www.erlang.org/download/otp_win64_$($version).exe";
|
||||||
|
}
|
||||||
|
|
||||||
|
Install-ChocolateyPackage @params
|
||||||
}
|
}
|
||||||
|
|
||||||
Install-ChocolateyPackage @params
|
$binPath = (Join-Path "${Env:\ProgramFiles(x86)}" $installFolder),
|
||||||
|
(Join-Path $Env:ProgramFiles "$installFolder\bin") |
|
||||||
|
? { Test-Path $_ } |
|
||||||
|
Select -First 1
|
||||||
|
|
||||||
|
Install-ChocolateyPath $binPath
|
||||||
|
|
||||||
Write-ChocolateySuccess $package
|
Write-ChocolateySuccess $package
|
||||||
} catch {
|
} catch {
|
||||||
|
@@ -19,6 +19,14 @@ try
|
|||||||
}
|
}
|
||||||
|
|
||||||
Uninstall-ChocolateyPackage @uninstallParams
|
Uninstall-ChocolateyPackage @uninstallParams
|
||||||
|
|
||||||
|
$binLocation = Join-Path $installPath 'bin'
|
||||||
|
$userPaths = [Environment]::GetEnvironmentVariable('Path', 'User') -split ';' |
|
||||||
|
? { ($_ -notmatch $binLocation) -and (![String]::IsNullOrEmpty($_)) } |
|
||||||
|
Select-Object -Unique
|
||||||
|
|
||||||
|
[Environment]::SetEnvironmentVariable('Path', ($userPaths -join ';'), 'User')
|
||||||
|
|
||||||
Write-ChocolateySuccess $package
|
Write-ChocolateySuccess $package
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
|
Reference in New Issue
Block a user