forked from HCK-CI/HLK-Setup-Scripts
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathextra_software.ps1
87 lines (66 loc) · 2.9 KB
/
extra_software.ps1
1
2
3
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
$ErrorActionPreference = "Stop"
. "$PSScriptRoot\auxiliary.ps1"
function Get-ExtraSoftwareConfig {
param ([PSCustomObject]$Directory)
if ($KITTYPE -eq 'HCK') {
$full_kit = "${KITTYPE}".ToLower()
}
else {
$full_kit = "${KITTYPE}${HLKKITVER}".ToLower()
}
$config_list = @(
"${Directory}\${full_kit}-config.json",
"${Directory}\config.json"
)
foreach ($config_name in $config_list) {
if (Test-Path -Path "$config_name" -PathType Leaf) {
return $(Get-Content -Raw -Path "$config_name" | ConvertFrom-Json)
}
}
Write-Error "Failed to find any config files: $([System.String]::Join(" ", $config_list))"
}
function Install-ExtraSoftware {
param ([PSCustomObject]$Config, [String]$Path)
Write-Output "Processing: $Config"
$arguments = $Config.install_args. `
Replace('@sw_path@', $Path). `
Replace('@file_name@', $Config.file_name). `
Replace('@temp@', ${env:TEMP})
Execute-Command -Path "$($Config.install_cmd)" -Arguments "$arguments"
}
function Install-ClientExtraSoftwareBeforeKit {
Write-Output "Installing extra software before kit installation"
Get-ChildItem -Path "$EXTRASOFTWAREDIRECTORY" -Directory | ForEach-Object {
$config = Get-ExtraSoftwareConfig -Directory "$($_.FullName)"
if ($config.install_dest -eq 'client' -And $config.install_time.kit -eq 'before') {
Install-ExtraSoftware -Config $config -Path "$($_.FullName)"
}
}
}
function Install-ClientExtraSoftwareAfterKit {
Write-Output "Installing extra software after kit installation"
Get-ChildItem -Path "$EXTRASOFTWAREDIRECTORY" -Directory | ForEach-Object {
$config = Get-ExtraSoftwareConfig -Directory "$($_.FullName)"
if ($config.install_dest -eq 'client' -And $config.install_time.kit -eq 'after') {
Install-ExtraSoftware -Config $config -Path "$($_.FullName)"
}
}
}
function Install-StudioExtraSoftwareBeforeKit {
Write-Output "Installing extra software before kit installation"
Get-ChildItem -Path "$EXTRASOFTWAREDIRECTORY" -Directory | ForEach-Object {
$config = Get-ExtraSoftwareConfig -Directory "$($_.FullName)"
if ($config.install_dest -eq 'studio' -And $config.install_time.kit -eq 'before') {
Install-ExtraSoftware -Config $config -Path "$($_.FullName)"
}
}
}
function Install-StudioExtraSoftwareAfterKit {
Write-Output "Installing extra software after kit installation"
Get-ChildItem -Path "$EXTRASOFTWAREDIRECTORY" -Directory | ForEach-Object {
$config = Get-ExtraSoftwareConfig -Directory "$($_.FullName)"
if ($config.install_dest -eq 'studio' -And $config.install_time.kit -eq 'after') {
Install-ExtraSoftware -Config $config -Path "$($_.FullName)"
}
}
}