forked from intitni/CopilotForXcode
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDependencyUpdater.swift
More file actions
76 lines (73 loc) · 3.15 KB
/
DependencyUpdater.swift
File metadata and controls
76 lines (73 loc) · 3.15 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
import CodeiumService
import GitHubCopilotService
import Logger
struct DependencyUpdater {
init() {}
func update() {
Task {
await withTaskGroup(of: Void.self) { taskGroup in
let gitHubCopilot = GitHubCopilotInstallationManager()
switch gitHubCopilot.checkInstallation() {
case .notInstalled: break
case .installed: break
case .unsupported: break
case .outdated:
taskGroup.addTask {
do {
for try await step in gitHubCopilot.installLatestVersion() {
let state = {
switch step {
case .downloading:
return "Downloading"
case .uninstalling:
return "Uninstalling old version"
case .decompressing:
return "Decompressing"
case .done:
return "Done"
}
}()
Logger.service
.error("Update GitHub Copilot language server: \(state)")
}
} catch {
Logger.service.error(
"Update GitHub Copilot language server: \(error.localizedDescription)"
)
}
}
}
let codeium = CodeiumInstallationManager()
switch codeium.checkInstallation() {
case .notInstalled: break
case .installed: break
case .unsupported: break
case .outdated:
taskGroup.addTask {
do {
for try await step in codeium.installLatestVersion() {
let state = {
switch step {
case .downloading:
return "Downloading"
case .uninstalling:
return "Uninstalling old version"
case .decompressing:
return "Decompressing"
case .done:
return "Done"
}
}()
Logger.service.error("Update Codeium language server: \(state)")
}
} catch {
Logger.service.error(
"Update Codeium language server: \(error.localizedDescription)"
)
}
}
}
}
}
}
}