4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
# File 'manifests/install.pp', line 4
class chocolatey::install {
assert_private()
$install_proxy = $::chocolatey::install_proxy
$_install_proxy = $install_proxy ? {
undef => '$false',
default => "'${install_proxy}'",
}
$_download_url = $::chocolatey::chocolatey_download_url
$seven_zip_download_url = $::chocolatey::seven_zip_download_url
$seven_zip_exe = "${facts['choco_temp_dir']}\\7za.exe"
# lint:ignore:only_variable_string
if "${_download_url}" =~ /^http(s)?:\/\/.*api\/v2\/package.*\/$/ and "${::chocolatey::chocolatey_version}" =~ /\d+\./ {
# Assume a nuget server source and we want to download a specific version instead the most current
$download_url = "${_download_url}${::chocolatey::chocolatey_version}"
} else {
$download_url = $_download_url
}
# lint:endignore
if $::chocolatey::use_7zip {
$unzip_type = '7zip'
file { $seven_zip_exe:
ensure => present,
source => $seven_zip_download_url,
replace => false,
mode => '0755',
before => Exec['install_chocolatey_official'],
}
} else {
$unzip_type = 'windows'
}
registry_value { 'ChocolateyInstall environment value':
ensure => present,
path => 'HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\ChocolateyInstall',
type => 'string',
data => $chocolatey::choco_install_location,
}
exec { 'install_chocolatey_official':
command => template('chocolatey/InstallChocolatey.ps1.erb'),
creates => "${::chocolatey::choco_install_location}\\bin\\choco.exe",
provider => powershell,
timeout => $::chocolatey::choco_install_timeout_seconds,
logoutput => $::chocolatey::log_output,
environment => ["ChocolateyInstall=${::chocolatey::choco_install_location}"],
require => Registry_value['ChocolateyInstall environment value'],
}
}
|