-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprereq.ps1
More file actions
77 lines (58 loc) · 1.83 KB
/
Copy pathprereq.ps1
File metadata and controls
77 lines (58 loc) · 1.83 KB
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
class Prerequisites : Step {
static [string] hidden $description = @'
Your system must meet these prerequisites:
- PowerShell Core (v7+)
- helm v3.1+ (https://github.com/helm/helm/releases/tag/v3.2.4)
- kubectl (https://kubernetes.io/docs/tasks/tools/install-kubectl/)
'@
Prerequisites([ConfigInput] $config) : base(
[Prerequisites].Name,
$config,
'',
'',
'') {}
[bool]Run() {
Write-HostSection 'Prerequisites' ([Prerequisites]::description)
Write-Host 'Checking prerequisites...'; ([Step]$this).Delay()
$prereqMessages = @()
$this.config.prereqsSatisified = Test-SetupPreqs ([ref]$prereqMessages) -checkKubectlVersion:$false
if (-not $this.config.prereqsSatisified) {
$this.config.missingPrereqs = $prereqMessages
Read-HostEnter "`nPress Enter to view missing prerequisites..."
return $true
}
Write-Host 'Done'
return $this.ShouldProceed()
}
[bool]ShouldProceed() {
$response = Read-HostChoice `
"`nYour system meets the prerequisites. Do you want to continue?" `
([tuple]::Create('Yes', 'Yes, continue running setup'),[tuple]::Create([question]::previousStepLabel, 'Go back to the previous step'))
0
return $response -eq 0
}
}
class PrequisitesNotMet : Step {
static [string] hidden $description = @'
Your system does not meet the prerequisites. Rerun this script after
updating your system/environment.
'@
PrequisitesNotMet([ConfigInput] $config) : base(
[PrequisitesNotMet].Name,
$config,
'',
'',
'') {}
[bool]Run() {
Write-HostSection 'Prequisites Not Met' ([PrequisitesNotMet]::description)
Write-Host "The following issues were detected:`n"
foreach ($prereqMessage in $this.config.missingPrereqs) {
Write-Host $prereqMessage
}
Read-HostEnter "`nPress Enter to abort..."
return $true
}
[bool]CanRun() {
return -not $this.config.prereqsSatisified
}
}