Advertisement
Guest User

Untitled

a guest
Jul 28th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.58 KB | None | 0 0
  1. # =====================================================================
  2. # Copyright 2017 Chocolatey Software, Inc, and the
  3. # original authors/contributors from ChocolateyGallery
  4. # Copyright 2011 - 2017 RealDimensions Software, LLC, and the
  5. # original authors/contributors from ChocolateyGallery
  6. # at https://github.com/chocolatey/chocolatey.org
  7. #
  8. # Licensed under the Apache License, Version 2.0 (the "License");
  9. # you may not use this file except in compliance with the License.
  10. # You may obtain a copy of the License at
  11. #
  12. # http://www.apache.org/licenses/LICENSE-2.0
  13. #
  14. # Unless required by applicable law or agreed to in writing, software
  15. # distributed under the License is distributed on an "AS IS" BASIS,
  16. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  17. # See the License for the specific language governing permissions and
  18. # limitations under the License.
  19. # =====================================================================
  20.  
  21. # NOTE: Please leave this file as UTF8 w/out BOM - it causes issues with iwr -UseBasicParsing
  22.  
  23. # Environment Variables, specified as $env:NAME in PowerShell.exe and %NAME% in cmd.exe.
  24. # For explicit proxy, please set $env:chocolateyProxyLocation and optionally $env:chocolateyProxyUser and $env:chocolateyProxyPassword
  25. # To use built-in compression (no 7zip download), please set $env:chocolateyUseWindowsCompression = 'true'
  26.  
  27. $url = "https://packages.chocolatey.org/chocolatey.0.9.9.8.nupkg"
  28.  
  29. if ($env:TEMP -eq $null) {
  30. $env:TEMP = Join-Path $env:SystemDrive 'temp'
  31. }
  32. $chocTempDir = Join-Path $env:TEMP "chocolatey"
  33. $tempDir = Join-Path $chocTempDir "chocInstall"
  34. if (![System.IO.Directory]::Exists($tempDir)) {[System.IO.Directory]::CreateDirectory($tempDir)}
  35. $file = Join-Path $tempDir "chocolatey.zip"
  36.  
  37. # PowerShell v2/3 caches the output stream. Then it throws errors due
  38. # to the FileStream not being what is expected. Fixes "The OS handle's
  39. # position is not what FileStream expected. Do not use a handle
  40. # simultaneously in one FileStream and in Win32 code or another
  41. # FileStream."
  42. function Fix-PowerShellOutputRedirectionBug {
  43. try{
  44. # http://www.leeholmes.com/blog/2008/07/30/workaround-the-os-handles-position-is-not-what-filestream-expected/ plus comments
  45. $bindingFlags = [Reflection.BindingFlags] "Instance,NonPublic,GetField"
  46. $objectRef = $host.GetType().GetField("externalHostRef", $bindingFlags).GetValue($host)
  47. $bindingFlags = [Reflection.BindingFlags] "Instance,NonPublic,GetProperty"
  48. $consoleHost = $objectRef.GetType().GetProperty("Value", $bindingFlags).GetValue($objectRef, @())
  49. [void] $consoleHost.GetType().GetProperty("IsStandardOutputRedirected", $bindingFlags).GetValue($consoleHost, @())
  50. $bindingFlags = [Reflection.BindingFlags] "Instance,NonPublic,GetField"
  51. $field = $consoleHost.GetType().GetField("standardOutputWriter", $bindingFlags)
  52. $field.SetValue($consoleHost, [Console]::Out)
  53. [void] $consoleHost.GetType().GetProperty("IsStandardErrorRedirected", $bindingFlags).GetValue($consoleHost, @())
  54. $field2 = $consoleHost.GetType().GetField("standardErrorWriter", $bindingFlags)
  55. $field2.SetValue($consoleHost, [Console]::Error)
  56. } catch {
  57. Write-Output "Unable to apply redirection fix."
  58. }
  59. }
  60.  
  61. Fix-PowerShellOutputRedirectionBug
  62.  
  63. function Download-File {
  64. param (
  65. [string]$url,
  66. [string]$file
  67. )
  68. Write-Output "Downloading $url to $file"
  69. $downloader = new-object System.Net.WebClient
  70.  
  71. $defaultCreds = [System.Net.CredentialCache]::DefaultCredentials
  72. if ($defaultCreds -ne $null) {
  73. $downloader.Credentials = $defaultCreds
  74. }
  75.  
  76. # check if a proxy is required
  77. $explicitProxy = $env:chocolateyProxyLocation
  78. $explicitProxyUser = $env:chocolateyProxyUser
  79. $explicitProxyPassword = $env:chocolateyProxyPassword
  80. if ($explicitProxy -ne $null) {
  81. # explicit proxy
  82. $proxy = New-Object System.Net.WebProxy($explicitProxy, $true)
  83. if ($explicitProxyPassword -ne $null) {
  84. $passwd = ConvertTo-SecureString $explicitProxyPassword -AsPlainText -Force
  85. $proxy.Credentials = New-Object System.Management.Automation.PSCredential ($explicitProxyUser, $passwd)
  86. }
  87.  
  88. Write-Output "Using explicit proxy server '$explicitProxy'."
  89. $downloader.Proxy = $proxy
  90.  
  91. } elseif (!$downloader.Proxy.IsBypassed($url))
  92. {
  93. # system proxy (pass through)
  94. $creds = $defaultCreds
  95. if ($creds -eq $null) {
  96. Write-Debug "Default credentials were null. Attempting backup method"
  97. $cred = get-credential
  98. $creds = $cred.GetNetworkCredential();
  99. }
  100. $proxyaddress = $downloader.Proxy.GetProxy($url).Authority
  101. Write-Output "Using system proxy server '$proxyaddress'."
  102. $proxy = New-Object System.Net.WebProxy($proxyaddress)
  103. $proxy.Credentials = $creds
  104. $downloader.Proxy = $proxy
  105. }
  106.  
  107. $downloader.DownloadFile($url, $file)
  108. }
  109.  
  110. # Download the Chocolatey package
  111. Download-File $url $file
  112.  
  113. # Determine unzipping method
  114. $unzipMethod = '7zip'
  115. if (![string]::IsNullOrEmpty($env:chocolateyUseWindowsCompression)){
  116. Write-Output 'Using built in compression to unzip.'
  117. $unzipMethod = 'builtin'
  118. }
  119.  
  120. if ($unzipMethod -eq '7zip') {
  121. # download 7zip
  122. Write-Output "Download 7Zip commandline tool"
  123. $7zaExe = Join-Path $tempDir '7za.exe'
  124. Download-File 'https://chocolatey.org/7za.exe' "$7zaExe"
  125.  
  126. # unzip the package
  127. Write-Output "Extracting $file to $tempDir..."
  128. Start-Process "$7zaExe" -ArgumentList "x -o`"$tempDir`" -y `"$file`"" -Wait -NoNewWindow
  129. } else {
  130. # unzip the package
  131. Write-Output "Extracting $file to $tempDir..."
  132. $shellApplication = new-object -com shell.application
  133. $zipPackage = $shellApplication.NameSpace($file)
  134. $destinationFolder = $shellApplication.NameSpace($tempDir)
  135. $destinationFolder.CopyHere($zipPackage.Items(),0x10)
  136. }
  137.  
  138. # Call chocolatey install
  139. Write-Output "Installing chocolatey on this machine"
  140. $toolsFolder = Join-Path $tempDir "tools"
  141. $chocInstallPS1 = Join-Path $toolsFolder "chocolateyInstall.ps1"
  142.  
  143. & $chocInstallPS1
  144.  
  145. Write-Output 'Ensuring chocolatey commands are on the path'
  146. $chocInstallVariableName = "ChocolateyInstall"
  147. $chocoPath = [Environment]::GetEnvironmentVariable($chocInstallVariableName)
  148. if ($chocoPath -eq $null -or $chocoPath -eq '') {
  149. $chocoPath = 'C:\ProgramData\Chocolatey'
  150. }
  151.  
  152. $chocoExePath = Join-Path $chocoPath 'bin'
  153.  
  154. if ($($env:Path).ToLower().Contains($($chocoExePath).ToLower()) -eq $false) {
  155. $env:Path = [Environment]::GetEnvironmentVariable('Path',[System.EnvironmentVariableTarget]::Machine);
  156. }
  157.  
  158. Write-Output 'Ensuring chocolatey.nupkg is in the lib folder'
  159. $chocoPkgDir = Join-Path $chocoPath 'lib\chocolatey'
  160. $nupkg = Join-Path $chocoPkgDir 'chocolatey.nupkg'
  161. if (![System.IO.Directory]::Exists($chocoPkgDir)) { [System.IO.Directory]::CreateDirectory($chocoPkgDir); }
  162. Copy-Item "$file" "$nupkg" -Force -ErrorAction SilentlyContinue
  163.  
  164. # SIG # Begin signature block
  165. # MIINVQYJKoZIhvcNAQcCoIINRjCCDUICAQExDzANBglghkgBZQMEAgEFADB5Bgor
  166. # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
  167. # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCynMJTOGks/skN
  168. # lD/AFapbCMGxyTrjs+ejtvwSvN0n06CCCnIwggUwMIIEGKADAgECAhAECRgbX9W7
  169. # ZnVTQ7VvlVAIMA0GCSqGSIb3DQEBCwUAMGUxCzAJBgNVBAYTAlVTMRUwEwYDVQQK
  170. # EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAiBgNV
  171. # BAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0xMzEwMjIxMjAwMDBa
  172. # Fw0yODEwMjIxMjAwMDBaMHIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2Vy
  173. # dCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xMTAvBgNVBAMTKERpZ2lD
  174. # ZXJ0IFNIQTIgQXNzdXJlZCBJRCBDb2RlIFNpZ25pbmcgQ0EwggEiMA0GCSqGSIb3
  175. # DQEBAQUAA4IBDwAwggEKAoIBAQD407Mcfw4Rr2d3B9MLMUkZz9D7RZmxOttE9X/l
  176. # qJ3bMtdx6nadBS63j/qSQ8Cl+YnUNxnXtqrwnIal2CWsDnkoOn7p0WfTxvspJ8fT
  177. # eyOU5JEjlpB3gvmhhCNmElQzUHSxKCa7JGnCwlLyFGeKiUXULaGj6YgsIJWuHEqH
  178. # CN8M9eJNYBi+qsSyrnAxZjNxPqxwoqvOf+l8y5Kh5TsxHM/q8grkV7tKtel05iv+
  179. # bMt+dDk2DZDv5LVOpKnqagqrhPOsZ061xPeM0SAlI+sIZD5SlsHyDxL0xY4PwaLo
  180. # LFH3c7y9hbFig3NBggfkOItqcyDQD2RzPJ6fpjOp/RnfJZPRAgMBAAGjggHNMIIB
  181. # yTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjATBgNVHSUEDDAK
  182. # BggrBgEFBQcDAzB5BggrBgEFBQcBAQRtMGswJAYIKwYBBQUHMAGGGGh0dHA6Ly9v
  183. # Y3NwLmRpZ2ljZXJ0LmNvbTBDBggrBgEFBQcwAoY3aHR0cDovL2NhY2VydHMuZGln
  184. # aWNlcnQuY29tL0RpZ2lDZXJ0QXNzdXJlZElEUm9vdENBLmNydDCBgQYDVR0fBHow
  185. # eDA6oDigNoY0aHR0cDovL2NybDQuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0QXNzdXJl
  186. # ZElEUm9vdENBLmNybDA6oDigNoY0aHR0cDovL2NybDMuZGlnaWNlcnQuY29tL0Rp
  187. # Z2lDZXJ0QXNzdXJlZElEUm9vdENBLmNybDBPBgNVHSAESDBGMDgGCmCGSAGG/WwA
  188. # AgQwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQUzAK
  189. # BghghkgBhv1sAzAdBgNVHQ4EFgQUWsS5eyoKo6XqcQPAYPkt9mV1DlgwHwYDVR0j
  190. # BBgwFoAUReuir/SSy4IxLVGLp6chnfNtyA8wDQYJKoZIhvcNAQELBQADggEBAD7s
  191. # DVoks/Mi0RXILHwlKXaoHV0cLToaxO8wYdd+C2D9wz0PxK+L/e8q3yBVN7Dh9tGS
  192. # dQ9RtG6ljlriXiSBThCk7j9xjmMOE0ut119EefM2FAaK95xGTlz/kLEbBw6RFfu6
  193. # r7VRwo0kriTGxycqoSkoGjpxKAI8LpGjwCUR4pwUR6F6aGivm6dcIFzZcbEMj7uo
  194. # +MUSaJ/PQMtARKUT8OZkDCUIQjKyNookAv4vcn4c10lFluhZHen6dGRrsutmQ9qz
  195. # sIzV6Q3d9gEgzpkxYz0IGhizgZtPxpMQBvwHgfqL2vmCSfdibqFT+hKUGIUukpHq
  196. # aGxEMrJmoecYpJpkUe8wggU6MIIEIqADAgECAhAGsBFbtfCQ0/DaDmIsYn1YMA0G
  197. # CSqGSIb3DQEBCwUAMHIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJ
  198. # bmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xMTAvBgNVBAMTKERpZ2lDZXJ0
  199. # IFNIQTIgQXNzdXJlZCBJRCBDb2RlIFNpZ25pbmcgQ0EwHhcNMTcwMzI4MDAwMDAw
  200. # WhcNMTgwNDAzMTIwMDAwWjB3MQswCQYDVQQGEwJVUzEPMA0GA1UECBMGS2Fuc2Fz
  201. # MQ8wDQYDVQQHEwZUb3Bla2ExIjAgBgNVBAoTGUNob2NvbGF0ZXkgU29mdHdhcmUs
  202. # IEluYy4xIjAgBgNVBAMTGUNob2NvbGF0ZXkgU29mdHdhcmUsIEluYy4wggEiMA0G
  203. # CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDLIWIaEiqkPbIMZi6jD6J8F3YIYPxG
  204. # 3Vw2I8AsM5c63WUmV+bYZQGxY5AHHVFphy9mU6spXgAqVpzkcALjo1oArVscUU34
  205. # 8S4mokGbZVvHlO8ny1b1HzfR4ZPHpUL71btSqpcOElYOOL0wUnf5As/39VN+Wxef
  206. # //D5KTDD17AA2DVvIaXMT+utERbo+c+leaPS4fKo/Q0KvpCt0sKr6LItAMNgaqL4
  207. # 9Z+Dg5n1oHjxAz4ZYhJYdHIPZPoqyeLQ8IuYiqCxKS07tkfvkwlgWxksHpliIKqf
  208. # Jpv0YE2vqlZrcx0WYHNhgX3BIhQa21wxn/XAFNCpgrDgI0u0UupZfxAdAgMBAAGj
  209. # ggHFMIIBwTAfBgNVHSMEGDAWgBRaxLl7KgqjpepxA8Bg+S32ZXUOWDAdBgNVHQ4E
  210. # FgQUJqUaP1/S0OF1EG1dxC6UzM6w6T8wDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQM
  211. # MAoGCCsGAQUFBwMDMHcGA1UdHwRwMG4wNaAzoDGGL2h0dHA6Ly9jcmwzLmRpZ2lj
  212. # ZXJ0LmNvbS9zaGEyLWFzc3VyZWQtY3MtZzEuY3JsMDWgM6Axhi9odHRwOi8vY3Js
  213. # NC5kaWdpY2VydC5jb20vc2hhMi1hc3N1cmVkLWNzLWcxLmNybDBMBgNVHSAERTBD
  214. # MDcGCWCGSAGG/WwDATAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2Vy
  215. # dC5jb20vQ1BTMAgGBmeBDAEEATCBhAYIKwYBBQUHAQEEeDB2MCQGCCsGAQUFBzAB
  216. # hhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wTgYIKwYBBQUHMAKGQmh0dHA6Ly9j
  217. # YWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFNIQTJBc3N1cmVkSURDb2RlU2ln
  218. # bmluZ0NBLmNydDAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQCLBAE/
  219. # 2x4amEecDEoy9g+WmWMROiB4GnkPqj+IbiwftmwC5/7yL3/592HOFMJr0qOgUt51
  220. # moE8SuuLuOGw63c5+/48LJS4jP2XzbVNByRPIxPWorm4t/OzTJNziTowHQ+wLwwI
  221. # 8U97+8DaHCNL7iLZNEiqbVlpF3j7SMWGgf2BVYADJyxluNzf0ZUO+lXN4gOkM8tl
  222. # VDc7SjZEKvu6ckAaxXf7NPbCXVL/3+LvdmoLbT3vJlfzeXqduO3oieB10ic3ug5T
  223. # XtoYmyEk/P3yR3x/TqUlg1x/xaolBxy5TyMeSLcBlYn42fnQL154bvMGwFiCsHWQ
  224. # wY09I0xpEysOMiy8MYICOTCCAjUCAQEwgYYwcjELMAkGA1UEBhMCVVMxFTATBgNV
  225. # BAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTExMC8G
  226. # A1UEAxMoRGlnaUNlcnQgU0hBMiBBc3N1cmVkIElEIENvZGUgU2lnbmluZyBDQQIQ
  227. # BrARW7XwkNPw2g5iLGJ9WDANBglghkgBZQMEAgEFAKCBhDAYBgorBgEEAYI3AgEM
  228. # MQowCKACgAChAoAAMBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisGAQQB
  229. # gjcCAQsxDjAMBgorBgEEAYI3AgEVMC8GCSqGSIb3DQEJBDEiBCB9TOilv/JcBSWp
  230. # H2uTZtFfgNmrf9SCCLXFiRbJcKrEqzANBgkqhkiG9w0BAQEFAASCAQB3F0WhFihF
  231. # hvLO77OqH3bMHSwO3g+bTp+6PtMmlWtrq4vvN2OGPJsDYE1omU0C4QTiowUJ9HwI
  232. # XH0ECB3Dv3RrLgGTvrGHhg7uIbxsWDGt6Yum7Xe65d8lSkRxcHPomjtGsdIFa6M4
  233. # zTS4agTIZOhQPaOIrrid3h+gE0WA/481aJyp5Bhx8+6F/cg2a9p4mlYFmpuEx+Z1
  234. # R6KU+/xPA24vafNTOdjOWI0983kl9Z9aOflU254R1qFFe96QFooorwBOIaiSzQHH
  235. # /QsrNdiygjeA6hU3Omvgdpc5DBgExUBjSB2jR0IH2oa/B7lCO0yNQt4+uH57HemI
  236. # 0v7bupqHtTWU
  237. # SIG # End signature block
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement