1
0
mirror of https://github.com/nicoverbruggen/phpmon.git synced 2025-08-07 03:50:08 +02:00

🏗 WIP: Functional services list

This commit is contained in:
2023-01-06 12:59:15 +01:00
parent 3d505aebde
commit 291d20b2b3
2 changed files with 46 additions and 50 deletions

View File

@ -91,7 +91,7 @@
</CommandLineArgument>
<CommandLineArgument
argument = "--configuration:~/.phpmon_fconf_working.json"
isEnabled = "YES">
isEnabled = "NO">
</CommandLineArgument>
<CommandLineArgument
argument = "--configuration:~/.phpmon_fconf_broken.json"

View File

@ -17,54 +17,50 @@ class ValetServicesManager: ServicesManager {
}
override func reloadServicesStatus() async {
// TODO
await withTaskGroup(of: [HomebrewService].self, body: { group in
group.addTask {
let rootServiceNames = self.formulae
.filter { $0.elevated }
.map { $0.name }
let rootJson = await Shell
.pipe("sudo \(Paths.brew) services info --all --json")
.out.data(using: .utf8)!
return try! JSONDecoder()
.decode([HomebrewService].self, from: rootJson)
.filter({ return rootServiceNames.contains($0.name) })
}
group.addTask {
let userServiceNames = self.formulae
.filter { !$0.elevated }
.map { $0.name }
let normalJson = await Shell
.pipe("\(Paths.brew) services info --all --json")
.out.data(using: .utf8)!
return try! JSONDecoder()
.decode([HomebrewService].self, from: normalJson)
.filter({ return userServiceNames.contains($0.name) })
}
for await services in group {
for service in services {
guard let wrapper = self[service.name] else {
break
}
wrapper.service = service
}
}
for wrapper in serviceWrappers {
wrapper.isBusy = false
}
self.broadcastServicesUpdated()
})
}
}
// TODO
/*
public static func loadHomebrewServices() async {
await Self.shared.updateServicesList()
Task {
let rootServiceNames = Self.shared.formulae
.filter { $0.elevated }
.map { $0.name }
let rootJson = await Shell
.pipe("sudo \(Paths.brew) services info --all --json")
.out.data(using: .utf8)!
let rootServices = try! JSONDecoder()
.decode([HomebrewService].self, from: rootJson)
.filter({ return rootServiceNames.contains($0.name) })
Task { @MainActor in
for service in rootServices {
Self.shared.services[service.name]!.service = service
}
}
}
Task {
let userServiceNames = Self.shared.formulae
.filter { !$0.elevated }
.map { $0.name }
let normalJson = await Shell
.pipe("\(Paths.brew) services info --all --json")
.out.data(using: .utf8)!
let userServices = try! JSONDecoder()
.decode([HomebrewService].self, from: normalJson)
.filter({ return userServiceNames.contains($0.name) })
Task { @MainActor in
for service in userServices {
Self.shared.services[service.name]!.service = service
}
}
}
}
*/