Add updated upstream nodejs cookbook
... and its new dependency, chocolatey
This commit is contained in:
parent
18e45cdaab
commit
87d50d067c
118
cookbooks/chocolatey/CHANGELOG.md
Normal file
118
cookbooks/chocolatey/CHANGELOG.md
Normal file
@ -0,0 +1,118 @@
|
|||||||
|
# Changelog for Chocolatey cookbook
|
||||||
|
|
||||||
|
## v3.0.0 (2019-07-11)
|
||||||
|
|
||||||
|
- Add `node['chocolatey']['sensitive']` attribute (default: false) to give users the option to suppress output spam when the install.ps1 file is pushed to the machine.
|
||||||
|
- Require Chef Infra Client 12.15 or later
|
||||||
|
- Resolve minor Cookstyle warnings
|
||||||
|
- Fix `node['chocolatey']['upgrade']` to properly upgrade the `chocolatey` package
|
||||||
|
- Upgrade to the latest and greatest Chocolatey install script
|
||||||
|
|
||||||
|
## v2.0.1 (2018-07-03)
|
||||||
|
|
||||||
|
- Remove mentions of the package provider from the readme and metadata
|
||||||
|
|
||||||
|
## v2.0.0 (2018-05-01)
|
||||||
|
|
||||||
|
### Breaking Change
|
||||||
|
|
||||||
|
The package LWRP has been removed from this cookbook. chocolatey_package was integrated into Chef 12.7, which was released in Feb 2016\. This cookbook now requires Chef 12.7 or later.
|
||||||
|
|
||||||
|
### Other Changes
|
||||||
|
|
||||||
|
- This cookbook no longer requires the Windows cookbook
|
||||||
|
- The install script has been updated to the latest Chocolatey install script
|
||||||
|
- Converted testing to use Delivery Local Mode from within ChefDK
|
||||||
|
|
||||||
|
## v1.2.1 (2017-08-20)
|
||||||
|
|
||||||
|
- Explicitly use the double-dash long option names for `--source` and `--installargs`
|
||||||
|
|
||||||
|
## v1.2.0 (2017-05-04)
|
||||||
|
|
||||||
|
- Change the default `['chocolatey']['upgrade']` attribute value to `false`. Preventing chocolatey from reinstalling every chef run
|
||||||
|
|
||||||
|
## v1.1.1 (2017-04-22)
|
||||||
|
|
||||||
|
- Fix chef 13 converges renaming conflicting `env_path` method
|
||||||
|
|
||||||
|
## v1.1.0 (2017-01-09)
|
||||||
|
|
||||||
|
- Update the chocolatey install script to match chocolatey.org.
|
||||||
|
|
||||||
|
## v1.0.3 (2016-09-12)
|
||||||
|
|
||||||
|
- Loosen windows-cookbook constraint
|
||||||
|
|
||||||
|
## v1.0.2 (2016-08-29)
|
||||||
|
|
||||||
|
- Ensure `chocolateyVersion` attribute is used and the correct version of chocolatey is installed.
|
||||||
|
|
||||||
|
## v1.0.1 (2016-07-15)
|
||||||
|
|
||||||
|
- Always execute chocolatey installer unless guard is satisfied to allow the install to retry on subsequent attempts if it fails.
|
||||||
|
|
||||||
|
## v1.0.0 (2016-03-07)
|
||||||
|
|
||||||
|
- No longer dependent on chocolatey.org for install script
|
||||||
|
- Removed deprecated overwriting of the current_resource and fixed visibility problem with `env_path`
|
||||||
|
|
||||||
|
## v0.6.2 (2016-01-07)
|
||||||
|
|
||||||
|
- Fix Chocolatey detection on chef clients older than 12.4.0
|
||||||
|
|
||||||
|
## v0.6.1 (2015-11-24)
|
||||||
|
|
||||||
|
- Fix LocalJumpError on existing chocolatey package
|
||||||
|
|
||||||
|
## v0.6.0 (2015-11-17)
|
||||||
|
|
||||||
|
- Path Tracking. Tracking additions to the user and machine %PATH% environment and merging them into the current process.
|
||||||
|
- Downcase package name results from choco upgrade.
|
||||||
|
|
||||||
|
## v0.5.1 (2015-11-10)
|
||||||
|
|
||||||
|
- Prepend library include with :: in provder to fix 12.3.0 and likely other versions older than 12.5.1.
|
||||||
|
- Add backward compatibiliy to new metadata.rb attributes `source_url` and `issues_url`.
|
||||||
|
|
||||||
|
## v0.5.0 (2015-11-09)
|
||||||
|
|
||||||
|
- Refactored install script (and .kitchen.yml) to support installing Chocolatey in test-kitchen behind a proxy.
|
||||||
|
- Download `node['chocolatey']['Uri']` via `remote_file` resource instead of .net web client
|
||||||
|
- Set `chocolateyProxyLocation` environment variable to `Chef::Config['https_proxy']` if one is set before chocolatey install
|
||||||
|
- Changed helpers module namespacing from: `ChocolateyHelpers` to `Chocolatey::Helpers`
|
||||||
|
- Add ChefSpec unit tests
|
||||||
|
- Add ServerSpec integration tests
|
||||||
|
- Gemfile: bump foodcritic to 5.0 and Berkshelf to 4.0
|
||||||
|
- Add ChefSpec matchers
|
||||||
|
|
||||||
|
## v0.4.1 (2015-10-15)
|
||||||
|
|
||||||
|
- Adds example how to install package with version
|
||||||
|
- use the vanilla script resource to bypass 64bit interpreter builder introduced in Chef 12.5
|
||||||
|
|
||||||
|
## v0.4.0 (2015-06-30)
|
||||||
|
|
||||||
|
- Refactor script to download Chocolatey install script
|
||||||
|
- Chocolatey install: add proxy support
|
||||||
|
- fix for 64-bit chocolatey installs
|
||||||
|
|
||||||
|
## v0.3.0 (2015-04-20)
|
||||||
|
|
||||||
|
- Support for chocolatey >= 0.9.9
|
||||||
|
- Make package name case insensitive
|
||||||
|
|
||||||
|
## v0.2.0 (2014-09-24)
|
||||||
|
|
||||||
|
- Allow spaces in the path to the "choco" command.
|
||||||
|
- Update tests to use Rakefile
|
||||||
|
- Support Chocolatey version 0.9.8.24+
|
||||||
|
- Support custom command line options when installing packages
|
||||||
|
|
||||||
|
## v0.1.0 (2014-02-20)
|
||||||
|
|
||||||
|
- Fix and tests
|
||||||
|
|
||||||
|
## v0.0.5 (2013-04-30)
|
||||||
|
|
||||||
|
- Initial release
|
46
cookbooks/chocolatey/README.md
Normal file
46
cookbooks/chocolatey/README.md
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
# chocolatey Cookbook
|
||||||
|
|
||||||
|
[](https://supermarket.getchef.com/cookbooks/chocolatey) 
|
||||||
|
|
||||||
|
Install Chocolatey with the default recipe.
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
### Platform
|
||||||
|
|
||||||
|
- Windows
|
||||||
|
|
||||||
|
### Chef Infra Client
|
||||||
|
|
||||||
|
- 12.15 or greater
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
As of Chocolatey version [0.9.8.24](https://github.com/chocolatey/chocolatey/blob/master/CHANGELOG.md#09824-july-3-2014) the install directory for Chocolatey has changed from `C:\Chocolatey` to `C:\ProgramData\Chocolatey`.
|
||||||
|
|
||||||
|
More information can be gotten from the [Chocolateywiki](https://github.com/chocolatey/chocolatey/wiki/DefaultChocolateyInstallReasoning).
|
||||||
|
|
||||||
|
## Attributes
|
||||||
|
|
||||||
|
All attributes below are pre-pended with `node['chocolatey']`
|
||||||
|
|
||||||
|
Attribute | Description | Type | Default
|
||||||
|
---------------------------------------------------- | ----------------------------------------------------------------------------------------- | ------- | ---------------------------------------------------------------------------------
|
||||||
|
`['upgrade']` | Whether to upgrade Chocolatey if it's already installed | Boolean | false
|
||||||
|
`['install_vars']['chocolateyProxyLocation']` | HTTPS proxy for Chocolatey install script | String | Chef::Config['https_proxy'] or ENV['https_proxy']
|
||||||
|
`['install_vars']['chocolateyProxyUser']` | Proxy user for authenticating proxies | String | nil
|
||||||
|
`['install_vars']['chocolateyProxyPassword']` | Proxy user password | String | nil
|
||||||
|
`['install_vars']['chocolateyVersion']` | Version of Chocolatey to install, e.g. '0.9.9.11' | String | nil (download latest version)
|
||||||
|
`['install_vars']['chocolateyDownloadUrl']` | Chocolatey .nupkg file URL. Use this if you host an internal copy of the chocolatey.nupkg | String | <https://chocolatey.org/api/v2/package/chocolatey> (download from chocolatey.org)
|
||||||
|
`['install_vars']['chocolateyUseWindowsCompression']`| To use built-in compression instead of 7zip (requires additional download) set to `true` | String | nil (use 7zip)
|
||||||
|
`['sensitive']` | When true, will suppress writing the contents of install.ps1 to the console | Boolean | false
|
||||||
|
|
||||||
|
## Recipes
|
||||||
|
|
||||||
|
- `chocolatey::default` - installs Chocolatey
|
||||||
|
|
||||||
|
## License and Maintainer
|
||||||
|
|
||||||
|
Maintainer:: Guilhem Lettron ([guilhem@lettron.fr](mailto:guilhem@lettron.fr))
|
||||||
|
|
||||||
|
License:: Apache 2.0
|
12
cookbooks/chocolatey/attributes/default.rb
Normal file
12
cookbooks/chocolatey/attributes/default.rb
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
default['chocolatey']['upgrade'] = false
|
||||||
|
default['chocolatey']['sensitive'] = false
|
||||||
|
|
||||||
|
# Chocolatey install.ps1 env vars. See https://chocolatey.org/install.ps1
|
||||||
|
default['chocolatey']['install_vars'].tap do |env|
|
||||||
|
env['chocolateyProxyLocation'] = Chef::Config['https_proxy'] || ENV['https_proxy']
|
||||||
|
env['chocolateyProxyUser'] = nil
|
||||||
|
env['chocolateyProxyPassword'] = nil
|
||||||
|
env['chocolateyVersion'] = nil
|
||||||
|
env['chocolateyDownloadUrl'] = 'https://chocolatey.org/api/v2/package/chocolatey'
|
||||||
|
env['chocolateyUseWindowsCompression'] = nil
|
||||||
|
end
|
421
cookbooks/chocolatey/files/install.ps1
Normal file
421
cookbooks/chocolatey/files/install.ps1
Normal file
@ -0,0 +1,421 @@
|
|||||||
|
# =====================================================================
|
||||||
|
# Copyright 2017 - 2020 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.
|
||||||
|
# =====================================================================
|
||||||
|
|
||||||
|
# For organizational deployments of Chocolatey, please see https://chocolatey.org/docs/how-to-setup-offline-installation
|
||||||
|
|
||||||
|
# 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
|
||||||
|
# For an explicit version of Chocolatey, please set $env:chocolateyVersion = 'versionnumber'
|
||||||
|
# To target a different url for chocolatey.nupkg, please set $env:chocolateyDownloadUrl = 'full url to nupkg file'
|
||||||
|
# NOTE: $env:chocolateyDownloadUrl does not work with $env:chocolateyVersion.
|
||||||
|
# To use built-in compression instead of 7zip (requires additional download), please set $env:chocolateyUseWindowsCompression = 'true'
|
||||||
|
# To bypass the use of any proxy, please set $env:chocolateyIgnoreProxy = 'true'
|
||||||
|
|
||||||
|
#specifically use the API to get the latest version (below)
|
||||||
|
$url = ''
|
||||||
|
|
||||||
|
$chocolateyVersion = $env:chocolateyVersion
|
||||||
|
if (![string]::IsNullOrEmpty($chocolateyVersion)){
|
||||||
|
Write-Output "Downloading specific version of Chocolatey: $chocolateyVersion"
|
||||||
|
$url = "https://chocolatey.org/api/v2/package/chocolatey/$chocolateyVersion"
|
||||||
|
}
|
||||||
|
|
||||||
|
$chocolateyDownloadUrl = $env:chocolateyDownloadUrl
|
||||||
|
if (![string]::IsNullOrEmpty($chocolateyDownloadUrl)){
|
||||||
|
Write-Output "Downloading Chocolatey from : $chocolateyDownloadUrl"
|
||||||
|
$url = "$chocolateyDownloadUrl"
|
||||||
|
}
|
||||||
|
|
||||||
|
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)) {[void][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 {
|
||||||
|
$poshMajorVerion = $PSVersionTable.PSVersion.Major
|
||||||
|
|
||||||
|
if ($poshMajorVerion -lt 4) {
|
||||||
|
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
|
||||||
|
|
||||||
|
# Attempt to set highest encryption available for SecurityProtocol.
|
||||||
|
# PowerShell will not set this by default (until maybe .NET 4.6.x). This
|
||||||
|
# will typically produce a message for PowerShell v2 (just an info
|
||||||
|
# message though)
|
||||||
|
try {
|
||||||
|
# Set TLS 1.2 (3072) as that is the minimum required by Chocolatey.org.
|
||||||
|
# Use integers because the enumeration value for TLS 1.2 won't exist
|
||||||
|
# in .NET 4.0, even though they are addressable if .NET 4.5+ is
|
||||||
|
# installed (.NET 4.5 is an in-place upgrade).
|
||||||
|
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
|
||||||
|
} catch {
|
||||||
|
Write-Output 'Unable to set PowerShell to use TLS 1.2. This is required for contacting Chocolatey as of 03 FEB 2020. https://chocolatey.org/blog/remove-support-for-old-tls-versions. If you see underlying connection closed or trust errors, you may need to do one or more of the following: (1) upgrade to .NET Framework 4.5+ and PowerShell v3+, (2) Call [System.Net.ServicePointManager]::SecurityProtocol = 3072; in PowerShell prior to attempting installation, (3) specify internal Chocolatey package location (set $env:chocolateyDownloadUrl prior to install or host the package internally), (4) use the Download + PowerShell method of install. See https://chocolatey.org/docs/installation for all install options.'
|
||||||
|
}
|
||||||
|
|
||||||
|
function Get-Downloader {
|
||||||
|
param (
|
||||||
|
[string]$url
|
||||||
|
)
|
||||||
|
|
||||||
|
$downloader = new-object System.Net.WebClient
|
||||||
|
|
||||||
|
$defaultCreds = [System.Net.CredentialCache]::DefaultCredentials
|
||||||
|
if ($defaultCreds -ne $null) {
|
||||||
|
$downloader.Credentials = $defaultCreds
|
||||||
|
}
|
||||||
|
|
||||||
|
$ignoreProxy = $env:chocolateyIgnoreProxy
|
||||||
|
if ($ignoreProxy -ne $null -and $ignoreProxy -eq 'true') {
|
||||||
|
Write-Debug "Explicitly bypassing proxy due to user environment variable"
|
||||||
|
$downloader.Proxy = [System.Net.GlobalProxySelection]::GetEmptyWebProxy()
|
||||||
|
} else {
|
||||||
|
# check if a proxy is required
|
||||||
|
$explicitProxy = $env:chocolateyProxyLocation
|
||||||
|
$explicitProxyUser = $env:chocolateyProxyUser
|
||||||
|
$explicitProxyPassword = $env:chocolateyProxyPassword
|
||||||
|
if ($explicitProxy -ne $null -and $explicitProxy -ne '') {
|
||||||
|
# explicit proxy
|
||||||
|
$proxy = New-Object System.Net.WebProxy($explicitProxy, $true)
|
||||||
|
if ($explicitProxyPassword -ne $null -and $explicitProxyPassword -ne '') {
|
||||||
|
$passwd = ConvertTo-SecureString $explicitProxyPassword -AsPlainText -Force
|
||||||
|
$proxy.Credentials = New-Object System.Management.Automation.PSCredential ($explicitProxyUser, $passwd)
|
||||||
|
}
|
||||||
|
|
||||||
|
Write-Debug "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-Debug "Using system proxy server '$proxyaddress'."
|
||||||
|
$proxy = New-Object System.Net.WebProxy($proxyaddress)
|
||||||
|
$proxy.Credentials = $creds
|
||||||
|
$downloader.Proxy = $proxy
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $downloader
|
||||||
|
}
|
||||||
|
|
||||||
|
function Download-String {
|
||||||
|
param (
|
||||||
|
[string]$url
|
||||||
|
)
|
||||||
|
$downloader = Get-Downloader $url
|
||||||
|
|
||||||
|
return $downloader.DownloadString($url)
|
||||||
|
}
|
||||||
|
|
||||||
|
function Download-File {
|
||||||
|
param (
|
||||||
|
[string]$url,
|
||||||
|
[string]$file
|
||||||
|
)
|
||||||
|
#Write-Output "Downloading $url to $file"
|
||||||
|
$downloader = Get-Downloader $url
|
||||||
|
|
||||||
|
$downloader.DownloadFile($url, $file)
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($url -eq $null -or $url -eq '') {
|
||||||
|
Write-Output "Getting latest version of the Chocolatey package for download."
|
||||||
|
$url = 'https://chocolatey.org/api/v2/Packages()?$filter=((Id%20eq%20%27chocolatey%27)%20and%20(not%20IsPrerelease))%20and%20IsLatestVersion'
|
||||||
|
[xml]$result = Download-String $url
|
||||||
|
$url = $result.feed.entry.content.src
|
||||||
|
}
|
||||||
|
|
||||||
|
# Download the Chocolatey package
|
||||||
|
Write-Output "Getting Chocolatey from $url."
|
||||||
|
Download-File $url $file
|
||||||
|
|
||||||
|
# Determine unzipping method
|
||||||
|
# 7zip is the most compatible so use it by default
|
||||||
|
$7zaExe = Join-Path $tempDir '7za.exe'
|
||||||
|
$unzipMethod = '7zip'
|
||||||
|
$useWindowsCompression = $env:chocolateyUseWindowsCompression
|
||||||
|
if ($useWindowsCompression -ne $null -and $useWindowsCompression -eq 'true') {
|
||||||
|
Write-Output 'Using built-in compression to unzip'
|
||||||
|
$unzipMethod = 'builtin'
|
||||||
|
} elseif (-Not (Test-Path ($7zaExe))) {
|
||||||
|
Write-Output "Downloading 7-Zip commandline tool prior to extraction."
|
||||||
|
# download 7zip
|
||||||
|
Download-File 'https://chocolatey.org/7za.exe' "$7zaExe"
|
||||||
|
}
|
||||||
|
|
||||||
|
# unzip the package
|
||||||
|
Write-Output "Extracting $file to $tempDir..."
|
||||||
|
if ($unzipMethod -eq '7zip') {
|
||||||
|
$params = "x -o`"$tempDir`" -bd -y `"$file`""
|
||||||
|
# use more robust Process as compared to Start-Process -Wait (which doesn't
|
||||||
|
# wait for the process to finish in PowerShell v3)
|
||||||
|
$process = New-Object System.Diagnostics.Process
|
||||||
|
$process.StartInfo = New-Object System.Diagnostics.ProcessStartInfo($7zaExe, $params)
|
||||||
|
$process.StartInfo.RedirectStandardOutput = $true
|
||||||
|
$process.StartInfo.UseShellExecute = $false
|
||||||
|
$process.StartInfo.WindowStyle = [System.Diagnostics.ProcessWindowStyle]::Hidden
|
||||||
|
$process.Start() | Out-Null
|
||||||
|
$process.BeginOutputReadLine()
|
||||||
|
$process.WaitForExit()
|
||||||
|
$exitCode = $process.ExitCode
|
||||||
|
$process.Dispose()
|
||||||
|
|
||||||
|
$errorMessage = "Unable to unzip package using 7zip. Perhaps try setting `$env:chocolateyUseWindowsCompression = 'true' and call install again. Error:"
|
||||||
|
switch ($exitCode) {
|
||||||
|
0 { break }
|
||||||
|
1 { throw "$errorMessage Some files could not be extracted" }
|
||||||
|
2 { throw "$errorMessage 7-Zip encountered a fatal error while extracting the files" }
|
||||||
|
7 { throw "$errorMessage 7-Zip command line error" }
|
||||||
|
8 { throw "$errorMessage 7-Zip out of memory" }
|
||||||
|
255 { throw "$errorMessage Extraction cancelled by the user" }
|
||||||
|
default { throw "$errorMessage 7-Zip signalled an unknown error (code $exitCode)" }
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if ($PSVersionTable.PSVersion.Major -lt 5) {
|
||||||
|
try {
|
||||||
|
$shellApplication = new-object -com shell.application
|
||||||
|
$zipPackage = $shellApplication.NameSpace($file)
|
||||||
|
$destinationFolder = $shellApplication.NameSpace($tempDir)
|
||||||
|
$destinationFolder.CopyHere($zipPackage.Items(),0x10)
|
||||||
|
} catch {
|
||||||
|
throw "Unable to unzip package using built-in compression. Set `$env:chocolateyUseWindowsCompression = 'false' and call install again to use 7zip to unzip. Error: `n $_"
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Expand-Archive -Path "$file" -DestinationPath "$tempDir" -Force
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# 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 = "$env:ALLUSERSPROFILE\Chocolatey"
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(Test-Path ($chocoPath))) {
|
||||||
|
$chocoPath = "$env:SYSTEMDRIVE\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
|
||||||
|
# MIIcpwYJKoZIhvcNAQcCoIIcmDCCHJQCAQExDzANBglghkgBZQMEAgEFADB5Bgor
|
||||||
|
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
|
||||||
|
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDNxwdauklvXMYd
|
||||||
|
# R6F324woy4ZDT1pBVoUMp0tAZ0LTVKCCF7EwggUwMIIEGKADAgECAhAECRgbX9W7
|
||||||
|
# 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
|
||||||
|
# aGxEMrJmoecYpJpkUe8wggU6MIIEIqADAgECAhAH+0XZ9wtVKQNgl7T04UNwMA0G
|
||||||
|
# CSqGSIb3DQEBCwUAMHIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJ
|
||||||
|
# bmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xMTAvBgNVBAMTKERpZ2lDZXJ0
|
||||||
|
# IFNIQTIgQXNzdXJlZCBJRCBDb2RlIFNpZ25pbmcgQ0EwHhcNMTgwMzMwMDAwMDAw
|
||||||
|
# WhcNMjEwNDE0MTIwMDAwWjB3MQswCQYDVQQGEwJVUzEPMA0GA1UECBMGS2Fuc2Fz
|
||||||
|
# MQ8wDQYDVQQHEwZUb3Bla2ExIjAgBgNVBAoTGUNob2NvbGF0ZXkgU29mdHdhcmUs
|
||||||
|
# IEluYy4xIjAgBgNVBAMTGUNob2NvbGF0ZXkgU29mdHdhcmUsIEluYy4wggEiMA0G
|
||||||
|
# CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC4irdLWVJryfKSgPPCyMN+nBmxtZIm
|
||||||
|
# mTBhJMaYVJ6gtfvHcFakH7IC8TcjcEIrkK7wB/2vEJkEqiOTgbVQPZLnfX8ZAxhd
|
||||||
|
# UiJmwQHEiSwLzoo2B35ROQ9qdOsn1bYIEzDpaqm/XwYH925LLpxhr9oCkBNf5dZs
|
||||||
|
# e5bc/s1J5sQ9HRYwpb3MimmNHGpNP/YhjXX/kNFCZIv3mUadFHi+talYIN5dp6ai
|
||||||
|
# /k+qgZeL5klPdmjyIgf3JiDywCf7j5nSbm3sWarYjM5vLe/oD+eK70fez30a17Cy
|
||||||
|
# 97Jtqmdz6WUV1BcbMWeb9b8x369UJq5vt7vGwVFDOeGjwffuVHLRvWLnAgMBAAGj
|
||||||
|
# ggHFMIIBwTAfBgNVHSMEGDAWgBRaxLl7KgqjpepxA8Bg+S32ZXUOWDAdBgNVHQ4E
|
||||||
|
# FgQUqRlYCMLOvsDUS4mx9UA1avD3fvgwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQM
|
||||||
|
# MAoGCCsGAQUFBwMDMHcGA1UdHwRwMG4wNaAzoDGGL2h0dHA6Ly9jcmwzLmRpZ2lj
|
||||||
|
# ZXJ0LmNvbS9zaGEyLWFzc3VyZWQtY3MtZzEuY3JsMDWgM6Axhi9odHRwOi8vY3Js
|
||||||
|
# NC5kaWdpY2VydC5jb20vc2hhMi1hc3N1cmVkLWNzLWcxLmNybDBMBgNVHSAERTBD
|
||||||
|
# MDcGCWCGSAGG/WwDATAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2Vy
|
||||||
|
# dC5jb20vQ1BTMAgGBmeBDAEEATCBhAYIKwYBBQUHAQEEeDB2MCQGCCsGAQUFBzAB
|
||||||
|
# hhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wTgYIKwYBBQUHMAKGQmh0dHA6Ly9j
|
||||||
|
# YWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFNIQTJBc3N1cmVkSURDb2RlU2ln
|
||||||
|
# bmluZ0NBLmNydDAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQA+ddcs
|
||||||
|
# z/NB/+V+AIlUNOVTlGDNCtn1AfvwoRZg9XMmx0/S0EKayfVFTk/x96WMQgxL+/5x
|
||||||
|
# B8Uhw6anlhbPC6bjBcIxRj/IUgR7yJ/NAykyM1x+pWvkPZV3slwe0GDPwhaqGUTU
|
||||||
|
# aG8njO4EvA682a1o7wqQFR1MIltjtuPB2gp311LLxP1k5dpUMgaA0lAfnbRr+5dc
|
||||||
|
# QOFWslkho1eBf0xlzSrhRGPy0e/IYWpl+/sEwXhD88QUkN7dSXY0fMlyGQfn6H4f
|
||||||
|
# ozBQvCk37eoE0uAtkUrWAlJxO/4Esi83ko4hokwQJHaN64/7NdNaKlG3shC9+2QM
|
||||||
|
# kY3j3BU+Ym2GZgtBMIIGajCCBVKgAwIBAgIQAwGaAjr/WLFr1tXq5hfwZjANBgkq
|
||||||
|
# hkiG9w0BAQUFADBiMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5j
|
||||||
|
# MRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBB
|
||||||
|
# c3N1cmVkIElEIENBLTEwHhcNMTQxMDIyMDAwMDAwWhcNMjQxMDIyMDAwMDAwWjBH
|
||||||
|
# MQswCQYDVQQGEwJVUzERMA8GA1UEChMIRGlnaUNlcnQxJTAjBgNVBAMTHERpZ2lD
|
||||||
|
# ZXJ0IFRpbWVzdGFtcCBSZXNwb25kZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
|
||||||
|
# ggEKAoIBAQCjZF38fLPggjXg4PbGKuZJdTvMbuBTqZ8fZFnmfGt/a4ydVfiS457V
|
||||||
|
# WmNbAklQ2YPOb2bu3cuF6V+l+dSHdIhEOxnJ5fWRn8YUOawk6qhLLJGJzF4o9GS2
|
||||||
|
# ULf1ErNzlgpno75hn67z/RJ4dQ6mWxT9RSOOhkRVfRiGBYxVh3lIRvfKDo2n3k5f
|
||||||
|
# 4qi2LVkCYYhhchhoubh87ubnNC8xd4EwH7s2AY3vJ+P3mvBMMWSN4+v6GYeofs/s
|
||||||
|
# jAw2W3rBerh4x8kGLkYQyI3oBGDbvHN0+k7Y/qpA8bLOcEaD6dpAoVk62RUJV5lW
|
||||||
|
# MJPzyWHM0AjMa+xiQpGsAsDvpPCJEY93AgMBAAGjggM1MIIDMTAOBgNVHQ8BAf8E
|
||||||
|
# BAMCB4AwDAYDVR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDCCAb8G
|
||||||
|
# A1UdIASCAbYwggGyMIIBoQYJYIZIAYb9bAcBMIIBkjAoBggrBgEFBQcCARYcaHR0
|
||||||
|
# cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQUzCCAWQGCCsGAQUFBwICMIIBVh6CAVIA
|
||||||
|
# QQBuAHkAIAB1AHMAZQAgAG8AZgAgAHQAaABpAHMAIABDAGUAcgB0AGkAZgBpAGMA
|
||||||
|
# YQB0AGUAIABjAG8AbgBzAHQAaQB0AHUAdABlAHMAIABhAGMAYwBlAHAAdABhAG4A
|
||||||
|
# YwBlACAAbwBmACAAdABoAGUAIABEAGkAZwBpAEMAZQByAHQAIABDAFAALwBDAFAA
|
||||||
|
# UwAgAGEAbgBkACAAdABoAGUAIABSAGUAbAB5AGkAbgBnACAAUABhAHIAdAB5ACAA
|
||||||
|
# QQBnAHIAZQBlAG0AZQBuAHQAIAB3AGgAaQBjAGgAIABsAGkAbQBpAHQAIABsAGkA
|
||||||
|
# YQBiAGkAbABpAHQAeQAgAGEAbgBkACAAYQByAGUAIABpAG4AYwBvAHIAcABvAHIA
|
||||||
|
# YQB0AGUAZAAgAGgAZQByAGUAaQBuACAAYgB5ACAAcgBlAGYAZQByAGUAbgBjAGUA
|
||||||
|
# LjALBglghkgBhv1sAxUwHwYDVR0jBBgwFoAUFQASKxOYspkH7R7for5XDStnAs0w
|
||||||
|
# HQYDVR0OBBYEFGFaTSS2STKdSip5GoNL9B6Jwcp9MH0GA1UdHwR2MHQwOKA2oDSG
|
||||||
|
# Mmh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRENBLTEu
|
||||||
|
# Y3JsMDigNqA0hjJodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1
|
||||||
|
# cmVkSURDQS0xLmNybDB3BggrBgEFBQcBAQRrMGkwJAYIKwYBBQUHMAGGGGh0dHA6
|
||||||
|
# Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBBBggrBgEFBQcwAoY1aHR0cDovL2NhY2VydHMu
|
||||||
|
# ZGlnaWNlcnQuY29tL0RpZ2lDZXJ0QXNzdXJlZElEQ0EtMS5jcnQwDQYJKoZIhvcN
|
||||||
|
# AQEFBQADggEBAJ0lfhszTbImgVybhs4jIA+Ah+WI//+x1GosMe06FxlxF82pG7xa
|
||||||
|
# FjkAneNshORaQPveBgGMN/qbsZ0kfv4gpFetW7easGAm6mlXIV00Lx9xsIOUGQVr
|
||||||
|
# NZAQoHuXx/Y/5+IRQaa9YtnwJz04HShvOlIJ8OxwYtNiS7Dgc6aSwNOOMdgv420X
|
||||||
|
# Ewbu5AO2FKvzj0OncZ0h3RTKFV2SQdr5D4HRmXQNJsQOfxu19aDxxncGKBXp2JPl
|
||||||
|
# VRbwuwqrHNtcSCdmyKOLChzlldquxC5ZoGHd2vNtomHpigtt7BIYvfdVVEADkitr
|
||||||
|
# wlHCCkivsNRu4PQUCjob4489yq9qjXvc2EQwggbNMIIFtaADAgECAhAG/fkDlgOt
|
||||||
|
# 6gAK6z8nu7obMA0GCSqGSIb3DQEBBQUAMGUxCzAJBgNVBAYTAlVTMRUwEwYDVQQK
|
||||||
|
# EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAiBgNV
|
||||||
|
# BAMTG0RpZ2lDZXJ0IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBa
|
||||||
|
# Fw0yMTExMTAwMDAwMDBaMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2Vy
|
||||||
|
# dCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lD
|
||||||
|
# ZXJ0IEFzc3VyZWQgSUQgQ0EtMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
||||||
|
# ggEBAOiCLZn5ysJClaWAc0Bw0p5WVFypxNJBBo/JM/xNRZFcgZ/tLJz4FlnfnrUk
|
||||||
|
# FcKYubR3SdyJxArar8tea+2tsHEx6886QAxGTZPsi3o2CAOrDDT+GEmC/sfHMUiA
|
||||||
|
# fB6iD5IOUMnGh+s2P9gww/+m9/uizW9zI/6sVgWQ8DIhFonGcIj5BZd9o8dD3QLo
|
||||||
|
# Oz3tsUGj7T++25VIxO4es/K8DCuZ0MZdEkKB4YNugnM/JksUkK5ZZgrEjb7Szgau
|
||||||
|
# rYRvSISbT0C58Uzyr5j79s5AXVz2qPEvr+yJIvJrGGWxwXOt1/HYzx4KdFxCuGh+
|
||||||
|
# t9V3CidWfA9ipD8yFGCV/QcEogkCAwEAAaOCA3owggN2MA4GA1UdDwEB/wQEAwIB
|
||||||
|
# hjA7BgNVHSUENDAyBggrBgEFBQcDAQYIKwYBBQUHAwIGCCsGAQUFBwMDBggrBgEF
|
||||||
|
# BQcDBAYIKwYBBQUHAwgwggHSBgNVHSAEggHJMIIBxTCCAbQGCmCGSAGG/WwAAQQw
|
||||||
|
# ggGkMDoGCCsGAQUFBwIBFi5odHRwOi8vd3d3LmRpZ2ljZXJ0LmNvbS9zc2wtY3Bz
|
||||||
|
# LXJlcG9zaXRvcnkuaHRtMIIBZAYIKwYBBQUHAgIwggFWHoIBUgBBAG4AeQAgAHUA
|
||||||
|
# cwBlACAAbwBmACAAdABoAGkAcwAgAEMAZQByAHQAaQBmAGkAYwBhAHQAZQAgAGMA
|
||||||
|
# bwBuAHMAdABpAHQAdQB0AGUAcwAgAGEAYwBjAGUAcAB0AGEAbgBjAGUAIABvAGYA
|
||||||
|
# IAB0AGgAZQAgAEQAaQBnAGkAQwBlAHIAdAAgAEMAUAAvAEMAUABTACAAYQBuAGQA
|
||||||
|
# IAB0AGgAZQAgAFIAZQBsAHkAaQBuAGcAIABQAGEAcgB0AHkAIABBAGcAcgBlAGUA
|
||||||
|
# bQBlAG4AdAAgAHcAaABpAGMAaAAgAGwAaQBtAGkAdAAgAGwAaQBhAGIAaQBsAGkA
|
||||||
|
# dAB5ACAAYQBuAGQAIABhAHIAZQAgAGkAbgBjAG8AcgBwAG8AcgBhAHQAZQBkACAA
|
||||||
|
# aABlAHIAZQBpAG4AIABiAHkAIAByAGUAZgBlAHIAZQBuAGMAZQAuMAsGCWCGSAGG
|
||||||
|
# /WwDFTASBgNVHRMBAf8ECDAGAQH/AgEAMHkGCCsGAQUFBwEBBG0wazAkBggrBgEF
|
||||||
|
# BQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEMGCCsGAQUFBzAChjdodHRw
|
||||||
|
# Oi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1cmVkSURSb290Q0Eu
|
||||||
|
# Y3J0MIGBBgNVHR8EejB4MDqgOKA2hjRodHRwOi8vY3JsMy5kaWdpY2VydC5jb20v
|
||||||
|
# RGlnaUNlcnRBc3N1cmVkSURSb290Q0EuY3JsMDqgOKA2hjRodHRwOi8vY3JsNC5k
|
||||||
|
# aWdpY2VydC5jb20vRGlnaUNlcnRBc3N1cmVkSURSb290Q0EuY3JsMB0GA1UdDgQW
|
||||||
|
# BBQVABIrE5iymQftHt+ivlcNK2cCzTAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun
|
||||||
|
# pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEARlA+ybcoJKc4HbZbKa9Sz1LpMUer
|
||||||
|
# Vlx71Q0LQbPv7HUfdDjyslxhopyVw1Dkgrkj0bo6hnKtOHisdV0XFzRyR4WUVtHr
|
||||||
|
# uzaEd8wkpfMEGVWp5+Pnq2LN+4stkMLA0rWUvV5PsQXSDj0aqRRbpoYxYqioM+Sb
|
||||||
|
# OafE9c4deHaUJXPkKqvPnHZL7V/CSxbkS3BMAIke/MV5vEwSV/5f4R68Al2o/vsH
|
||||||
|
# OE8Nxl2RuQ9nRc3Wg+3nkg2NsWmMT/tZ4CMP0qquAHzunEIOz5HXJ7cW7g/DvXwK
|
||||||
|
# oO4sCFWFIrjrGBpN/CohrUkxg0eVd3HcsRtLSxwQnHcUwZ1PL1qVCCkQJjGCBEww
|
||||||
|
# ggRIAgEBMIGGMHIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMx
|
||||||
|
# GTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xMTAvBgNVBAMTKERpZ2lDZXJ0IFNI
|
||||||
|
# QTIgQXNzdXJlZCBJRCBDb2RlIFNpZ25pbmcgQ0ECEAf7Rdn3C1UpA2CXtPThQ3Aw
|
||||||
|
# DQYJYIZIAWUDBAIBBQCggYQwGAYKKwYBBAGCNwIBDDEKMAigAoAAoQKAADAZBgkq
|
||||||
|
# hkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGC
|
||||||
|
# NwIBFTAvBgkqhkiG9w0BCQQxIgQgVOMYjIaBHu7LkOhlbFNa1FFBBUFQu8BKOfZZ
|
||||||
|
# AK2CtCUwDQYJKoZIhvcNAQEBBQAEggEAccxIsQDitasvwWmCy+JQLBU4qNfShPld
|
||||||
|
# fVFg7Dte5/KpHMEd6rgw0ECoN1H8nabSf3dVMPDWGTdXzYVc+zB5Nmhlwy/9CGAs
|
||||||
|
# XmIICX16xcwYb18miih52j/m5JXT4NhTIl/+e5mF4nyoJUJeBJwIUSDuV3rHyOpE
|
||||||
|
# 90BGZXJPX2ItGbp1J//bMDECzkxRtSRDxNCQ8QlS0YBc2h+ftQFmlmb86N8XCqdB
|
||||||
|
# 32paBD1OmhH7tVB9eXQRQ9rtNLbVUB790d/IGYkHU7zlVMwxpI7wYNqgdcV9bv5z
|
||||||
|
# O9GaG8QaQXxxtIB/hH5m5wWvcberqJb2qr5Ke6U1mPV1T6G6TGdctKGCAg8wggIL
|
||||||
|
# BgkqhkiG9w0BCQYxggH8MIIB+AIBATB2MGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQK
|
||||||
|
# EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNV
|
||||||
|
# BAMTGERpZ2lDZXJ0IEFzc3VyZWQgSUQgQ0EtMQIQAwGaAjr/WLFr1tXq5hfwZjAJ
|
||||||
|
# BgUrDgMCGgUAoF0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0B
|
||||||
|
# CQUxDxcNMjAwNDE2MDA1MDU0WjAjBgkqhkiG9w0BCQQxFgQUSnVQXFG9NidxPlpR
|
||||||
|
# Zbf9t65cx2kwDQYJKoZIhvcNAQEBBQAEggEAlpX/WR+PI6eEsARfNpjEQAdcOOG6
|
||||||
|
# Kp1TyXOaikIUh0BI7IjCiGRr7LbXQdkZIMcl3UD8TN+GQ59RsHSsYaAQJozUW9uo
|
||||||
|
# pj3NaQJaKwHB15zHzcD1TMi18zCCPlebPmUTDsbICWBWangCST0zqU849+3tlx7E
|
||||||
|
# LLjYjs/ybeS7aQffy1Dv87ElCYWsVuoQ0n9U/7hqJ3pv88SM52xmg9IlexfOanCz
|
||||||
|
# tTAM+ke9OcXuPhoZJuDL3c8gaWxELpkokMoqX0UCgCgY4RTmJ44mC9GcYKSnpMQZ
|
||||||
|
# qFot8MXA8t5cdxN2EL8j0ASufyE0oucys4cs+yiN65GWds7YbjYC/ihG6A==
|
||||||
|
# SIG # End signature block
|
55
cookbooks/chocolatey/libraries/helpers.rb
Normal file
55
cookbooks/chocolatey/libraries/helpers.rb
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
module Chocolatey
|
||||||
|
module Helpers
|
||||||
|
# include the PowershellOut module from the windows cookbook
|
||||||
|
# in case we are running an older chef client
|
||||||
|
include Chef::Mixin::PowershellOut
|
||||||
|
|
||||||
|
# Get the ChocolateyInstall directory from the environment.
|
||||||
|
def chocolatey_install
|
||||||
|
ENV.fetch('ChocolateyInstall') { |env_var| machine_env_var(env_var) }
|
||||||
|
end
|
||||||
|
|
||||||
|
# The Chocolatey command.
|
||||||
|
#
|
||||||
|
# Reference: https://github.com/chocolatey/chocolatey-cookbook/pull/16#issuecomment-47975896
|
||||||
|
def chocolatey_executable
|
||||||
|
"\"#{::File.join(chocolatey_install, 'bin', 'choco')}\""
|
||||||
|
end
|
||||||
|
|
||||||
|
def chocolatey_lib_dir
|
||||||
|
File.join(chocolatey_install, 'lib', 'chocolatey')
|
||||||
|
end
|
||||||
|
|
||||||
|
# Check if Chocolatey is installed
|
||||||
|
def chocolatey_installed?
|
||||||
|
return @is_chocolatey_installed if @is_chocolatey_installed
|
||||||
|
return false if chocolatey_install.nil?
|
||||||
|
# choco /? returns an exit status of -1 with chocolatey 0.9.9 => use list
|
||||||
|
cmd = Mixlib::ShellOut.new("#{chocolatey_executable} list -l chocolatey")
|
||||||
|
cmd.run_command
|
||||||
|
@is_chocolatey_installed = cmd.exitstatus == 0
|
||||||
|
end
|
||||||
|
|
||||||
|
# combine the local path with the user and machine paths
|
||||||
|
def environment_path(local_path)
|
||||||
|
machine = env_var('PATH', 'MACHINE').split(';')
|
||||||
|
user = env_var('PATH', 'USER').split(';')
|
||||||
|
local = local_path.split(';')
|
||||||
|
combined = local.concat(machine).concat(user).uniq.compact
|
||||||
|
combined.join(';')
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def machine_env_var(env_var)
|
||||||
|
env_var(env_var, 'MACHINE')
|
||||||
|
end
|
||||||
|
|
||||||
|
def env_var(env_var, scope)
|
||||||
|
env_var = powershell_out!(
|
||||||
|
"[System.Environment]::GetEnvironmentVariable('#{env_var}', '#{scope}')"
|
||||||
|
)
|
||||||
|
env_var.stdout.chomp
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
1
cookbooks/chocolatey/metadata.json
Normal file
1
cookbooks/chocolatey/metadata.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"name":"chocolatey","version":"3.0.0","description":"Install Chocolatey on Windows","long_description":"","maintainer":"Guilhem Lettron","maintainer_email":"guilhem.lettron@youscribe.com","license":"Apache-2.0","platforms":{"windows":">= 0.0.0"},"dependencies":{},"recommendations":{},"suggestions":{},"conflicting":{},"providing":{},"replacing":{},"attributes":{},"groupings":{},"recipes":{},"source_url":"https://github.com/chocolatey/chocolatey-cookbook","issues_url":"https://github.com/chocolatey/chocolatey-cookbook/issues","chef_version":[[">= 12.15"]],"ohai_version":[]}
|
13
cookbooks/chocolatey/metadata.rb
Normal file
13
cookbooks/chocolatey/metadata.rb
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
name 'chocolatey'
|
||||||
|
maintainer 'Guilhem Lettron'
|
||||||
|
maintainer_email 'guilhem.lettron@youscribe.com'
|
||||||
|
license 'Apache-2.0'
|
||||||
|
description 'Install Chocolatey on Windows'
|
||||||
|
version '3.0.0'
|
||||||
|
|
||||||
|
source_url 'https://github.com/chocolatey/chocolatey-cookbook'
|
||||||
|
issues_url 'https://github.com/chocolatey/chocolatey-cookbook/issues'
|
||||||
|
|
||||||
|
supports 'windows'
|
||||||
|
|
||||||
|
chef_version '>= 12.15'
|
48
cookbooks/chocolatey/recipes/default.rb
Normal file
48
cookbooks/chocolatey/recipes/default.rb
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
#
|
||||||
|
# Cookbook:: chocolatey
|
||||||
|
# recipe:: default
|
||||||
|
# Author:: Guilhem Lettron <guilhem.lettron@youscribe.com>
|
||||||
|
#
|
||||||
|
# Copyright:: 2012, Societe Publica.
|
||||||
|
# Copyright:: 2015, Doug Ireton
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
unless platform_family?('windows')
|
||||||
|
return "Chocolatey install not supported on #{node['platform_family']}"
|
||||||
|
end
|
||||||
|
|
||||||
|
Chef::Resource.include Chocolatey::Helpers
|
||||||
|
|
||||||
|
install_ps1 = File.join(Chef::Config['file_cache_path'], 'chocolatey-install.ps1')
|
||||||
|
|
||||||
|
cookbook_file install_ps1 do
|
||||||
|
action :create
|
||||||
|
backup false
|
||||||
|
source 'install.ps1'
|
||||||
|
sensitive node['chocolatey']['sensitive']
|
||||||
|
end
|
||||||
|
|
||||||
|
powershell_script 'Install Chocolatey' do
|
||||||
|
environment node['chocolatey']['install_vars']
|
||||||
|
cwd Chef::Config['file_cache_path']
|
||||||
|
code install_ps1
|
||||||
|
not_if { chocolatey_installed? }
|
||||||
|
end
|
||||||
|
|
||||||
|
if node['chocolatey']['upgrade']
|
||||||
|
chocolatey_package 'chocolatey' do
|
||||||
|
action :upgrade
|
||||||
|
version node['chocolatey']['install_vars']['chocolateyVersion']
|
||||||
|
end
|
||||||
|
end
|
202
cookbooks/nodejs/LICENSE
Normal file
202
cookbooks/nodejs/LICENSE
Normal file
@ -0,0 +1,202 @@
|
|||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following
|
||||||
|
boilerplate notice, with the fields enclosed by brackets "{}"
|
||||||
|
replaced with your own identifying information. (Don't include
|
||||||
|
the brackets!) The text should be enclosed in the appropriate
|
||||||
|
comment syntax for the file format. We also recommend that a
|
||||||
|
file or class name and description of purpose be included on the
|
||||||
|
same "printed page" as the copyright notice for easier
|
||||||
|
identification within third-party archives.
|
||||||
|
|
||||||
|
Copyright {yyyy} {name of copyright owner}
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
115
cookbooks/nodejs/chefignore
Normal file
115
cookbooks/nodejs/chefignore
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
# Put files/directories that should be ignored in this file when uploading
|
||||||
|
# to a Chef Infra Server or Supermarket.
|
||||||
|
# Lines that start with '# ' are comments.
|
||||||
|
|
||||||
|
# OS generated files #
|
||||||
|
######################
|
||||||
|
.DS_Store
|
||||||
|
ehthumbs.db
|
||||||
|
Icon?
|
||||||
|
nohup.out
|
||||||
|
Thumbs.db
|
||||||
|
.envrc
|
||||||
|
|
||||||
|
# EDITORS #
|
||||||
|
###########
|
||||||
|
.#*
|
||||||
|
.project
|
||||||
|
.settings
|
||||||
|
*_flymake
|
||||||
|
*_flymake.*
|
||||||
|
*.bak
|
||||||
|
*.sw[a-z]
|
||||||
|
*.tmproj
|
||||||
|
*~
|
||||||
|
\#*
|
||||||
|
REVISION
|
||||||
|
TAGS*
|
||||||
|
tmtags
|
||||||
|
.vscode
|
||||||
|
.editorconfig
|
||||||
|
|
||||||
|
## COMPILED ##
|
||||||
|
##############
|
||||||
|
*.class
|
||||||
|
*.com
|
||||||
|
*.dll
|
||||||
|
*.exe
|
||||||
|
*.o
|
||||||
|
*.pyc
|
||||||
|
*.so
|
||||||
|
*/rdoc/
|
||||||
|
a.out
|
||||||
|
mkmf.log
|
||||||
|
|
||||||
|
# Testing #
|
||||||
|
###########
|
||||||
|
.circleci/*
|
||||||
|
.codeclimate.yml
|
||||||
|
.delivery/*
|
||||||
|
.foodcritic
|
||||||
|
.kitchen*
|
||||||
|
.mdlrc
|
||||||
|
.overcommit.yml
|
||||||
|
.rspec
|
||||||
|
.rubocop.yml
|
||||||
|
.travis.yml
|
||||||
|
.watchr
|
||||||
|
.yamllint
|
||||||
|
azure-pipelines.yml
|
||||||
|
Dangerfile
|
||||||
|
examples/*
|
||||||
|
features/*
|
||||||
|
Guardfile
|
||||||
|
kitchen.yml*
|
||||||
|
mlc_config.json
|
||||||
|
Procfile
|
||||||
|
Rakefile
|
||||||
|
spec/*
|
||||||
|
test/*
|
||||||
|
|
||||||
|
# SCM #
|
||||||
|
#######
|
||||||
|
.git
|
||||||
|
.gitattributes
|
||||||
|
.gitconfig
|
||||||
|
.github/*
|
||||||
|
.gitignore
|
||||||
|
.gitkeep
|
||||||
|
.gitmodules
|
||||||
|
.svn
|
||||||
|
*/.bzr/*
|
||||||
|
*/.git
|
||||||
|
*/.hg/*
|
||||||
|
*/.svn/*
|
||||||
|
|
||||||
|
# Berkshelf #
|
||||||
|
#############
|
||||||
|
Berksfile
|
||||||
|
Berksfile.lock
|
||||||
|
cookbooks/*
|
||||||
|
tmp
|
||||||
|
|
||||||
|
# Bundler #
|
||||||
|
###########
|
||||||
|
vendor/*
|
||||||
|
Gemfile
|
||||||
|
Gemfile.lock
|
||||||
|
|
||||||
|
# Policyfile #
|
||||||
|
##############
|
||||||
|
Policyfile.rb
|
||||||
|
Policyfile.lock.json
|
||||||
|
|
||||||
|
# Documentation #
|
||||||
|
#############
|
||||||
|
CODE_OF_CONDUCT*
|
||||||
|
CONTRIBUTING*
|
||||||
|
documentation/*
|
||||||
|
TESTING*
|
||||||
|
UPGRADING*
|
||||||
|
|
||||||
|
# Vagrant #
|
||||||
|
###########
|
||||||
|
.vagrant
|
||||||
|
Vagrantfile
|
88
cookbooks/nodejs/kitchen.dokken.yml
Normal file
88
cookbooks/nodejs/kitchen.dokken.yml
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
---
|
||||||
|
driver:
|
||||||
|
name: dokken
|
||||||
|
privileged: true # because Docker and SystemD
|
||||||
|
chef_version: <%= ENV['CHEF_VERSION'] || 'current' %>
|
||||||
|
chef_license: accept-no-persist
|
||||||
|
|
||||||
|
transport:
|
||||||
|
name: dokken
|
||||||
|
|
||||||
|
provisioner:
|
||||||
|
name: dokken
|
||||||
|
deprecations_as_errors: true
|
||||||
|
|
||||||
|
verifier:
|
||||||
|
name: inspec
|
||||||
|
|
||||||
|
platforms:
|
||||||
|
- name: amazonlinux
|
||||||
|
driver:
|
||||||
|
image: dokken/amazonlinux
|
||||||
|
pid_one_command: /sbin/init
|
||||||
|
|
||||||
|
- name: amazonlinux-2
|
||||||
|
driver:
|
||||||
|
image: dokken/amazonlinux-2
|
||||||
|
pid_one_command: /usr/lib/systemd/systemd
|
||||||
|
|
||||||
|
- name: debian-8
|
||||||
|
driver:
|
||||||
|
image: dokken/debian-8
|
||||||
|
pid_one_command: /bin/systemd
|
||||||
|
intermediate_instructions:
|
||||||
|
- RUN /usr/bin/apt-get update
|
||||||
|
|
||||||
|
- name: debian-9
|
||||||
|
driver:
|
||||||
|
image: dokken/debian-9
|
||||||
|
pid_one_command: /bin/systemd
|
||||||
|
intermediate_instructions:
|
||||||
|
- RUN /usr/bin/apt-get update
|
||||||
|
|
||||||
|
- name: debian-10
|
||||||
|
driver:
|
||||||
|
image: dokken/debian-10
|
||||||
|
pid_one_command: /bin/systemd
|
||||||
|
intermediate_instructions:
|
||||||
|
- RUN /usr/bin/apt-get update
|
||||||
|
|
||||||
|
- name: centos-7
|
||||||
|
driver:
|
||||||
|
image: dokken/centos-7
|
||||||
|
pid_one_command: /usr/lib/systemd/systemd
|
||||||
|
|
||||||
|
- name: centos-8
|
||||||
|
driver:
|
||||||
|
image: dokken/centos-8
|
||||||
|
pid_one_command: /usr/lib/systemd/systemd
|
||||||
|
|
||||||
|
- name: fedora-latest
|
||||||
|
driver:
|
||||||
|
image: dokken/fedora-latest
|
||||||
|
pid_one_command: /usr/lib/systemd/systemd
|
||||||
|
|
||||||
|
- name: opensuse-leap-15
|
||||||
|
driver:
|
||||||
|
image: dokken/opensuse-leap-15
|
||||||
|
pid_one_command: /bin/systemd
|
||||||
|
|
||||||
|
- name: ubuntu-18.04
|
||||||
|
driver:
|
||||||
|
image: dokken/ubuntu-18.04
|
||||||
|
pid_one_command: /bin/systemd
|
||||||
|
intermediate_instructions:
|
||||||
|
- RUN /usr/bin/apt-get update
|
||||||
|
|
||||||
|
- name: ubuntu-20.04
|
||||||
|
driver:
|
||||||
|
image: dokken/ubuntu-20.04
|
||||||
|
pid_one_command: /bin/systemd
|
||||||
|
intermediate_instructions:
|
||||||
|
- RUN /usr/bin/apt-get update
|
||||||
|
- RUN /usr/bin/apt-get install python -y
|
||||||
|
|
||||||
|
- name: opensuse-leap-15
|
||||||
|
driver:
|
||||||
|
image: dokken/opensuse-leap-15
|
||||||
|
pid_one_command: /bin/systemd
|
16
cookbooks/nodejs/metadata.rb
Normal file
16
cookbooks/nodejs/metadata.rb
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
name 'nodejs'
|
||||||
|
maintainer 'redguide'
|
||||||
|
maintainer_email 'guilhem@lettron.fr'
|
||||||
|
license 'Apache-2.0'
|
||||||
|
description 'Installs/Configures node.js'
|
||||||
|
source_url 'https://github.com/redguide/nodejs'
|
||||||
|
issues_url 'https://github.com/redguide/nodejs/issues'
|
||||||
|
chef_version '>= 14'
|
||||||
|
version '7.3.1'
|
||||||
|
|
||||||
|
depends 'ark', '>= 2.0.2'
|
||||||
|
depends 'chocolatey', '>= 3.0'
|
||||||
|
|
||||||
|
%w(debian ubuntu centos redhat scientific oracle amazon smartos mac_os_x opensuseleap suse windows).each do |os|
|
||||||
|
supports os
|
||||||
|
end
|
24
cookbooks/nodejs/recipes/nodejs_from_chocolatey.rb
Normal file
24
cookbooks/nodejs/recipes/nodejs_from_chocolatey.rb
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
#
|
||||||
|
# Author:: Hossein Margani (hossein@margani.dev)
|
||||||
|
# Cookbook:: nodejs
|
||||||
|
# Recipe:: install_from_chocolatey
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
|
||||||
|
include_recipe 'chocolatey'
|
||||||
|
|
||||||
|
chocolatey_package 'nodejs-lts' do
|
||||||
|
version node['nodejs']['version'] if node['nodejs']['version']
|
||||||
|
action :upgrade
|
||||||
|
end
|
Loading…
x
Reference in New Issue
Block a user