Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # =====================================================================
- # Copyright 2017 Chocolatey Software, Inc, and the
- # original authors/contributors from ChocolateyGallery
- # Copyright 2011 - 2017 RealDimensions Software, LLC, and the
- # original authors/contributors from ChocolateyGallery
- # at https://github.com/chocolatey/chocolatey.org
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- # =====================================================================
- # NOTE: Please leave this file as UTF8 w/out BOM - it causes issues with iwr -UseBasicParsing
- # Environment Variables, specified as $env:NAME in PowerShell.exe and %NAME% in cmd.exe.
- # For explicit proxy, please set $env:chocolateyProxyLocation and optionally $env:chocolateyProxyUser and $env:chocolateyProxyPassword
- # To use built-in compression (no 7zip download), please set $env:chocolateyUseWindowsCompression = 'true'
- $url = "https://packages.chocolatey.org/chocolatey.0.9.9.8.nupkg"
- if ($env:TEMP -eq $null) {
- $env:TEMP = Join-Path $env:SystemDrive 'temp'
- }
- $chocTempDir = Join-Path $env:TEMP "chocolatey"
- $tempDir = Join-Path $chocTempDir "chocInstall"
- if (![System.IO.Directory]::Exists($tempDir)) {[System.IO.Directory]::CreateDirectory($tempDir)}
- $file = Join-Path $tempDir "chocolatey.zip"
- # PowerShell v2/3 caches the output stream. Then it throws errors due
- # to the FileStream not being what is expected. Fixes "The OS handle's
- # position is not what FileStream expected. Do not use a handle
- # simultaneously in one FileStream and in Win32 code or another
- # FileStream."
- function Fix-PowerShellOutputRedirectionBug {
- try{
- # http://www.leeholmes.com/blog/2008/07/30/workaround-the-os-handles-position-is-not-what-filestream-expected/ plus comments
- $bindingFlags = [Reflection.BindingFlags] "Instance,NonPublic,GetField"
- $objectRef = $host.GetType().GetField("externalHostRef", $bindingFlags).GetValue($host)
- $bindingFlags = [Reflection.BindingFlags] "Instance,NonPublic,GetProperty"
- $consoleHost = $objectRef.GetType().GetProperty("Value", $bindingFlags).GetValue($objectRef, @())
- [void] $consoleHost.GetType().GetProperty("IsStandardOutputRedirected", $bindingFlags).GetValue($consoleHost, @())
- $bindingFlags = [Reflection.BindingFlags] "Instance,NonPublic,GetField"
- $field = $consoleHost.GetType().GetField("standardOutputWriter", $bindingFlags)
- $field.SetValue($consoleHost, [Console]::Out)
- [void] $consoleHost.GetType().GetProperty("IsStandardErrorRedirected", $bindingFlags).GetValue($consoleHost, @())
- $field2 = $consoleHost.GetType().GetField("standardErrorWriter", $bindingFlags)
- $field2.SetValue($consoleHost, [Console]::Error)
- } catch {
- Write-Output "Unable to apply redirection fix."
- }
- }
- Fix-PowerShellOutputRedirectionBug
- function Download-File {
- param (
- [string]$url,
- [string]$file
- )
- Write-Output "Downloading $url to $file"
- $downloader = new-object System.Net.WebClient
- $defaultCreds = [System.Net.CredentialCache]::DefaultCredentials
- if ($defaultCreds -ne $null) {
- $downloader.Credentials = $defaultCreds
- }
- # check if a proxy is required
- $explicitProxy = $env:chocolateyProxyLocation
- $explicitProxyUser = $env:chocolateyProxyUser
- $explicitProxyPassword = $env:chocolateyProxyPassword
- if ($explicitProxy -ne $null) {
- # explicit proxy
- $proxy = New-Object System.Net.WebProxy($explicitProxy, $true)
- if ($explicitProxyPassword -ne $null) {
- $passwd = ConvertTo-SecureString $explicitProxyPassword -AsPlainText -Force
- $proxy.Credentials = New-Object System.Management.Automation.PSCredential ($explicitProxyUser, $passwd)
- }
- Write-Output "Using explicit proxy server '$explicitProxy'."
- $downloader.Proxy = $proxy
- } elseif (!$downloader.Proxy.IsBypassed($url))
- {
- # system proxy (pass through)
- $creds = $defaultCreds
- if ($creds -eq $null) {
- Write-Debug "Default credentials were null. Attempting backup method"
- $cred = get-credential
- $creds = $cred.GetNetworkCredential();
- }
- $proxyaddress = $downloader.Proxy.GetProxy($url).Authority
- Write-Output "Using system proxy server '$proxyaddress'."
- $proxy = New-Object System.Net.WebProxy($proxyaddress)
- $proxy.Credentials = $creds
- $downloader.Proxy = $proxy
- }
- $downloader.DownloadFile($url, $file)
- }
- # Download the Chocolatey package
- Download-File $url $file
- # Determine unzipping method
- $unzipMethod = '7zip'
- if (![string]::IsNullOrEmpty($env:chocolateyUseWindowsCompression)){
- Write-Output 'Using built in compression to unzip.'
- $unzipMethod = 'builtin'
- }
- if ($unzipMethod -eq '7zip') {
- # download 7zip
- Write-Output "Download 7Zip commandline tool"
- $7zaExe = Join-Path $tempDir '7za.exe'
- Download-File 'https://chocolatey.org/7za.exe' "$7zaExe"
- # unzip the package
- Write-Output "Extracting $file to $tempDir..."
- Start-Process "$7zaExe" -ArgumentList "x -o`"$tempDir`" -y `"$file`"" -Wait -NoNewWindow
- } else {
- # unzip the package
- Write-Output "Extracting $file to $tempDir..."
- $shellApplication = new-object -com shell.application
- $zipPackage = $shellApplication.NameSpace($file)
- $destinationFolder = $shellApplication.NameSpace($tempDir)
- $destinationFolder.CopyHere($zipPackage.Items(),0x10)
- }
- # Call chocolatey install
- Write-Output "Installing chocolatey on this machine"
- $toolsFolder = Join-Path $tempDir "tools"
- $chocInstallPS1 = Join-Path $toolsFolder "chocolateyInstall.ps1"
- & $chocInstallPS1
- Write-Output 'Ensuring chocolatey commands are on the path'
- $chocInstallVariableName = "ChocolateyInstall"
- $chocoPath = [Environment]::GetEnvironmentVariable($chocInstallVariableName)
- if ($chocoPath -eq $null -or $chocoPath -eq '') {
- $chocoPath = 'C:\ProgramData\Chocolatey'
- }
- $chocoExePath = Join-Path $chocoPath 'bin'
- if ($($env:Path).ToLower().Contains($($chocoExePath).ToLower()) -eq $false) {
- $env:Path = [Environment]::GetEnvironmentVariable('Path',[System.EnvironmentVariableTarget]::Machine);
- }
- Write-Output 'Ensuring chocolatey.nupkg is in the lib folder'
- $chocoPkgDir = Join-Path $chocoPath 'lib\chocolatey'
- $nupkg = Join-Path $chocoPkgDir 'chocolatey.nupkg'
- if (![System.IO.Directory]::Exists($chocoPkgDir)) { [System.IO.Directory]::CreateDirectory($chocoPkgDir); }
- Copy-Item "$file" "$nupkg" -Force -ErrorAction SilentlyContinue
- # SIG # Begin signature block
- # MIINVQYJKoZIhvcNAQcCoIINRjCCDUICAQExDzANBglghkgBZQMEAgEFADB5Bgor
- # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
- # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCynMJTOGks/skN
- # lD/AFapbCMGxyTrjs+ejtvwSvN0n06CCCnIwggUwMIIEGKADAgECAhAECRgbX9W7
- # ZnVTQ7VvlVAIMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYTAlVTMRUwEwYDVQQK
- # EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAiBgNV
- # BAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0xMzEwMjIxMjAwMDBa
- # Fw0yODEwMjIxMjAwMDBaMHIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2Vy
- # dCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xMTAvBgNVBAMTKERpZ2lD
- # ZXJ0IFNIQTIgQXNzdXJlZCBJRCBDb2RlIFNpZ25pbmcgQ0EwggEiMA0GCSqGSIb3
- # DQEBAQUAA4IBDwAwggEKAoIBAQD407Mcfw4Rr2d3B9MLMUkZz9D7RZmxOttE9X/l
- # qJ3bMtdx6nadBS63j/qSQ8Cl+YnUNxnXtqrwnIal2CWsDnkoOn7p0WfTxvspJ8fT
- # eyOU5JEjlpB3gvmhhCNmElQzUHSxKCa7JGnCwlLyFGeKiUXULaGj6YgsIJWuHEqH
- # CN8M9eJNYBi+qsSyrnAxZjNxPqxwoqvOf+l8y5Kh5TsxHM/q8grkV7tKtel05iv+
- # bMt+dDk2DZDv5LVOpKnqagqrhPOsZ061xPeM0SAlI+sIZD5SlsHyDxL0xY4PwaLo
- # LFH3c7y9hbFig3NBggfkOItqcyDQD2RzPJ6fpjOp/RnfJZPRAgMBAAGjggHNMIIB
- # yTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjATBgNVHSUEDDAK
- # BggrBgEFBQcDAzB5BggrBgEFBQcBAQRtMGswJAYIKwYBBQUHMAGGGGh0dHA6Ly9v
- # Y3NwLmRpZ2ljZXJ0LmNvbTBDBggrBgEFBQcwAoY3aHR0cDovL2NhY2VydHMuZGln
- # aWNlcnQuY29tL0RpZ2lDZXJ0QXNzdXJlZElEUm9vdENBLmNydDCBgQYDVR0fBHow
- # eDA6oDigNoY0aHR0cDovL2NybDQuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0QXNzdXJl
- # ZElEUm9vdENBLmNybDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0Rp
- # Z2lDZXJ0QXNzdXJlZElEUm9vdENBLmNybDBPBgNVHSAESDBGMDgGCmCGSAGG/WwA
- # AgQwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQUzAK
- # BghghkgBhv1sAzAdBgNVHQ4EFgQUWsS5eyoKo6XqcQPAYPkt9mV1DlgwHwYDVR0j
- # BBgwFoAUReuir/SSy4IxLVGLp6chnfNtyA8wDQYJKoZIhvcNAQELBQADggEBAD7s
- # DVoks/Mi0RXILHwlKXaoHV0cLToaxO8wYdd+C2D9wz0PxK+L/e8q3yBVN7Dh9tGS
- # dQ9RtG6ljlriXiSBThCk7j9xjmMOE0ut119EefM2FAaK95xGTlz/kLEbBw6RFfu6
- # r7VRwo0kriTGxycqoSkoGjpxKAI8LpGjwCUR4pwUR6F6aGivm6dcIFzZcbEMj7uo
- # +MUSaJ/PQMtARKUT8OZkDCUIQjKyNookAv4vcn4c10lFluhZHen6dGRrsutmQ9qz
- # sIzV6Q3d9gEgzpkxYz0IGhizgZtPxpMQBvwHgfqL2vmCSfdibqFT+hKUGIUukpHq
- # aGxEMrJmoecYpJpkUe8wggU6MIIEIqADAgECAhAGsBFbtfCQ0/DaDmIsYn1YMA0G
- # CSqGSIb3DQEBCwUAMHIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJ
- # bmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xMTAvBgNVBAMTKERpZ2lDZXJ0
- # IFNIQTIgQXNzdXJlZCBJRCBDb2RlIFNpZ25pbmcgQ0EwHhcNMTcwMzI4MDAwMDAw
- # WhcNMTgwNDAzMTIwMDAwWjB3MQswCQYDVQQGEwJVUzEPMA0GA1UECBMGS2Fuc2Fz
- # MQ8wDQYDVQQHEwZUb3Bla2ExIjAgBgNVBAoTGUNob2NvbGF0ZXkgU29mdHdhcmUs
- # IEluYy4xIjAgBgNVBAMTGUNob2NvbGF0ZXkgU29mdHdhcmUsIEluYy4wggEiMA0G
- # CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDLIWIaEiqkPbIMZi6jD6J8F3YIYPxG
- # 3Vw2I8AsM5c63WUmV+bYZQGxY5AHHVFphy9mU6spXgAqVpzkcALjo1oArVscUU34
- # 8S4mokGbZVvHlO8ny1b1HzfR4ZPHpUL71btSqpcOElYOOL0wUnf5As/39VN+Wxef
- # //D5KTDD17AA2DVvIaXMT+utERbo+c+leaPS4fKo/Q0KvpCt0sKr6LItAMNgaqL4
- # 9Z+Dg5n1oHjxAz4ZYhJYdHIPZPoqyeLQ8IuYiqCxKS07tkfvkwlgWxksHpliIKqf
- # Jpv0YE2vqlZrcx0WYHNhgX3BIhQa21wxn/XAFNCpgrDgI0u0UupZfxAdAgMBAAGj
- # ggHFMIIBwTAfBgNVHSMEGDAWgBRaxLl7KgqjpepxA8Bg+S32ZXUOWDAdBgNVHQ4E
- # FgQUJqUaP1/S0OF1EG1dxC6UzM6w6T8wDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQM
- # MAoGCCsGAQUFBwMDMHcGA1UdHwRwMG4wNaAzoDGGL2h0dHA6Ly9jcmwzLmRpZ2lj
- # ZXJ0LmNvbS9zaGEyLWFzc3VyZWQtY3MtZzEuY3JsMDWgM6Axhi9odHRwOi8vY3Js
- # NC5kaWdpY2VydC5jb20vc2hhMi1hc3N1cmVkLWNzLWcxLmNybDBMBgNVHSAERTBD
- # MDcGCWCGSAGG/WwDATAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2Vy
- # dC5jb20vQ1BTMAgGBmeBDAEEATCBhAYIKwYBBQUHAQEEeDB2MCQGCCsGAQUFBzAB
- # hhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wTgYIKwYBBQUHMAKGQmh0dHA6Ly9j
- # YWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFNIQTJBc3N1cmVkSURDb2RlU2ln
- # bmluZ0NBLmNydDAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCLBAE/
- # 2x4amEecDEoy9g+WmWMROiB4GnkPqj+IbiwftmwC5/7yL3/592HOFMJr0qOgUt51
- # moE8SuuLuOGw63c5+/48LJS4jP2XzbVNByRPIxPWorm4t/OzTJNziTowHQ+wLwwI
- # 8U97+8DaHCNL7iLZNEiqbVlpF3j7SMWGgf2BVYADJyxluNzf0ZUO+lXN4gOkM8tl
- # VDc7SjZEKvu6ckAaxXf7NPbCXVL/3+LvdmoLbT3vJlfzeXqduO3oieB10ic3ug5T
- # XtoYmyEk/P3yR3x/TqUlg1x/xaolBxy5TyMeSLcBlYn42fnQL154bvMGwFiCsHWQ
- # wY09I0xpEysOMiy8MYICOTCCAjUCAQEwgYYwcjELMAkGA1UEBhMCVVMxFTATBgNV
- # BAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTExMC8G
- # A1UEAxMoRGlnaUNlcnQgU0hBMiBBc3N1cmVkIElEIENvZGUgU2lnbmluZyBDQQIQ
- # BrARW7XwkNPw2g5iLGJ9WDANBglghkgBZQMEAgEFAKCBhDAYBgorBgEEAYI3AgEM
- # MQowCKACgAChAoAAMBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisGAQQB
- # gjcCAQsxDjAMBgorBgEEAYI3AgEVMC8GCSqGSIb3DQEJBDEiBCB9TOilv/JcBSWp
- # H2uTZtFfgNmrf9SCCLXFiRbJcKrEqzANBgkqhkiG9w0BAQEFAASCAQB3F0WhFihF
- # hvLO77OqH3bMHSwO3g+bTp+6PtMmlWtrq4vvN2OGPJsDYE1omU0C4QTiowUJ9HwI
- # XH0ECB3Dv3RrLgGTvrGHhg7uIbxsWDGt6Yum7Xe65d8lSkRxcHPomjtGsdIFa6M4
- # zTS4agTIZOhQPaOIrrid3h+gE0WA/481aJyp5Bhx8+6F/cg2a9p4mlYFmpuEx+Z1
- # R6KU+/xPA24vafNTOdjOWI0983kl9Z9aOflU254R1qFFe96QFooorwBOIaiSzQHH
- # /QsrNdiygjeA6hU3Omvgdpc5DBgExUBjSB2jR0IH2oa/B7lCO0yNQt4+uH57HemI
- # 0v7bupqHtTWU
- # SIG # End signature block
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement