5
5
. Parameter Versions
6
6
The versions of Unity to test for.
7
7
#>
8
- function Get-TargetResource
9
- {
8
+ function Get-TargetResource {
10
9
[CmdletBinding ()]
11
10
[OutputType ([System.Collections.Hashtable ])]
12
11
param
@@ -22,16 +21,14 @@ function Get-TargetResource
22
21
$setupInstances = Get-UnitySetupInstance | Where-Object { $splitVersions -contains $_.Version }
23
22
$result = @ {
24
23
" Versions" = $setupInstances | Select-Object - ExpandProperty Version | Sort-Object - Unique
25
- " Ensure" = if ($setupInstances.Count -gt 0 ) { ' Present' } else { ' Absent' }
24
+ " Ensure" = if ($setupInstances.Count -gt 0 ) { ' Present' } else { ' Absent' }
26
25
}
27
26
28
27
Write-Verbose " Found versions: $ ( $result [' Versions' ]) "
29
28
30
- if ( $setupInstances.Count -gt 0 )
31
- {
29
+ if ( $setupInstances.Count -gt 0 ) {
32
30
$components = $setupInstances [0 ].Components;
33
- for ( $i = 1 ; $i -lt $setupInstances.Count ; $i ++ )
34
- {
31
+ for ( $i = 1 ; $i -lt $setupInstances.Count ; $i ++ ) {
35
32
$components = $components -band $setupInstances [$i ].Components;
36
33
}
37
34
@@ -57,53 +54,51 @@ function Get-TargetResource
57
54
Only uninstalls whole versions of Unity. Ensuring components doesn't
58
55
mean other components weren't previously installed and aren't still available.
59
56
#>
60
- function Set-TargetResource
61
- {
57
+ function Set-TargetResource {
62
58
[CmdletBinding ()]
63
59
param
64
60
(
65
61
[parameter (Mandatory = $true )]
66
62
[System.String ]
67
63
$Versions ,
68
64
69
- [ValidateSet (" Present" , " Absent" )]
65
+ [ValidateSet (" Present" , " Absent" )]
70
66
[System.String ]
71
67
$Ensure = ' Present' ,
72
68
73
69
[System.String []]
74
- $Components = @ (' All' )
70
+ $Components = @ (' All' )
75
71
)
76
72
77
73
Write-Verbose " Begin executing Set to Ensure $Versions with $Components are $Ensure "
78
74
79
75
[string []]$splitVersions = $Versions -split ' ,' | ForEach-Object { $_.Trim () }
80
76
81
- switch ($Ensure ) {
77
+ switch ($Ensure ) {
82
78
' Present' {
83
- foreach ($version in $splitVersions )
84
- {
79
+ foreach ($version in $splitVersions ) {
85
80
$findArgs = @ {
86
- ' Version' = $version
81
+ ' Version' = $version
87
82
' Components' = New-UnitySetupComponent - Components $Components
88
83
}
89
84
90
85
$installArgs = @ { ' Cache' = " $env: TEMP \.unitysetup" }
91
86
92
87
$setupInstances = Get-UnitySetupInstance | Select-UnitySetupInstance - Version $version
93
- if ($setupInstances.Count -gt 0 ) {
88
+ if ($setupInstances.Count -gt 0 ) {
94
89
$findArgs [" Components" ] = ($findArgs.Components -band (-bnot ($setupInstances [0 ].Components -band $findArgs.Components )))
95
90
$installArgs [" Destination" ] = $setupInstances [0 ].Path
96
91
}
97
92
98
93
# No missing components for this version
99
- if ( $findArgs.Components -eq 0 ) {
94
+ if ( $findArgs.Components -eq 0 ) {
100
95
Write-Verbose " All components of $version were installed"
101
96
continue ;
102
97
}
103
98
104
99
Write-Verbose " Finding $ ( $findArgs [" Components" ]) installers for $version "
105
100
$installArgs [" Installers" ] = Find-UnitySetupInstaller @findArgs - WarningAction Stop
106
- if ( $installArgs.Installers.Count -gt 0 ) {
101
+ if ( $installArgs.Installers.Count -gt 0 ) {
107
102
Write-Verbose " Starting install of $ ( $installArgs.Installers.Count ) components for $version "
108
103
Install-UnitySetupInstance @installArgs
109
104
Write-Verbose " Finished install of $ ( $installArgs.Installers.Count ) components for $version "
@@ -114,7 +109,7 @@ function Set-TargetResource
114
109
$setupInstances = Get-UnitySetupInstance | Where-Object { $splitVersions -contains $_.Version }
115
110
Write-Verbose " Found $ ( $setupInstances.Count ) instance(s) of $splitVersions "
116
111
117
- if ( $setupInstances.Count -gt 0 ) {
112
+ if ( $setupInstances.Count -gt 0 ) {
118
113
Write-Verbose " Starting uninstall of $ ( $setupInstances.Count ) versions of Unity"
119
114
Uninstall-UnitySetupInstance - Instances $setupInstances
120
115
Write-Verbose " Finished uninstall of $ ( $setupInstances.Count ) versions of Unity"
@@ -137,8 +132,7 @@ function Set-TargetResource
137
132
. Notes
138
133
This test is not strict. Versions and Components not described are not considered.
139
134
#>
140
- function Test-TargetResource
141
- {
135
+ function Test-TargetResource {
142
136
[CmdletBinding ()]
143
137
[OutputType ([System.Boolean ])]
144
138
param
@@ -147,7 +141,7 @@ function Test-TargetResource
147
141
[System.String ]
148
142
$Versions ,
149
143
150
- [ValidateSet (" Present" , " Absent" )]
144
+ [ValidateSet (" Present" , " Absent" )]
151
145
[System.String ]
152
146
$Ensure = ' Present' ,
153
147
@@ -160,38 +154,35 @@ function Test-TargetResource
160
154
[string []]$splitVersions = $Versions -split ' ,' | ForEach-Object { $_.Trim () }
161
155
162
156
$result = $true
163
- switch ( $Ensure )
164
- {
157
+ switch ( $Ensure ) {
165
158
' Present' {
166
159
$setupComponents = New-UnitySetupComponent - Components $Components
167
- foreach ($version in $splitVersions )
168
- {
160
+ foreach ($version in $splitVersions ) {
169
161
Write-Verbose " Starting test for $version "
170
162
$setupInstances = Get-UnitySetupInstance | Select-UnitySetupInstance - Version $version
171
163
Write-Verbose " Found $ ( $setupInstances.Count ) instance(s) of $version "
172
164
173
- if ($setupInstances.Count -eq 0 ) {
165
+ if ($setupInstances.Count -eq 0 ) {
174
166
Write-Verbose " Found $version missing."
175
167
$result = $false
176
168
break
177
169
}
178
170
179
171
$availableComponents = ($setupInstances [0 ].Components -band $setupComponents )
180
- if ($availableComponents -ne $setupComponents ){
172
+ if ($availableComponents -ne $setupComponents ) {
181
173
$missingComponents = New-UnitySetupComponent ($setupComponents -bxor $availableComponents )
182
174
Write-Verbose " Found $version missing $ ( $missingComponents ) "
183
175
$result = $false
184
176
break
185
177
}
186
178
}
187
179
}
188
- ' Absent' {
189
- foreach ($version in $splitVersions )
190
- {
180
+ ' Absent' {
181
+ foreach ($version in $splitVersions ) {
191
182
$setupInstances = Get-UnitySetupInstance | Select-UnitySetupInstance - Version $version
192
183
Write-Verbose " Found $ ( $setupInstances.Count ) instance(s) of $version "
193
184
194
- if ($setupInstances.Count -gt 0 ) {
185
+ if ($setupInstances.Count -gt 0 ) {
195
186
Write-Verbose " Found $version installed."
196
187
$result = $false
197
188
break
0 commit comments