mirror of
https://github.com/nicoverbruggen/phpmon.git
synced 2025-08-07 03:50:08 +02:00
🏗 WIP: Fake services manager
This commit is contained in:
@ -12,15 +12,25 @@ class FakeServicesManager: ServicesManager {
|
||||
var fixedFormulae: [String] = []
|
||||
var fixedStatus: ServiceStatus = .loading
|
||||
|
||||
override init() {}
|
||||
|
||||
init(
|
||||
formulae: [String] = ["php", "nginx", "dnsmasq"],
|
||||
status: ServiceStatus = .loading
|
||||
) {
|
||||
super.init()
|
||||
|
||||
Log.warn("A fake services manager is being used, so Homebrew formula resolver is set to act in fake mode.")
|
||||
Log.warn("If you do not want this behaviour, never instantiate FakeServicesManager!")
|
||||
|
||||
self.fixedFormulae = formulae
|
||||
self.fixedStatus = status
|
||||
|
||||
self.services = self.formulae.map {
|
||||
let wrapper = ServiceWrapper(formula: $0)
|
||||
wrapper.service = HomebrewService.dummy(named: $0.name, enabled: true)
|
||||
return wrapper
|
||||
}
|
||||
}
|
||||
|
||||
override var formulae: [HomebrewFormula] {
|
||||
|
@ -13,7 +13,7 @@ class ServicesManager: ObservableObject {
|
||||
|
||||
@ObservedObject static var shared: ServicesManager = ValetServicesManager()
|
||||
|
||||
@Published private(set) var services = [ServiceWrapper]()
|
||||
@Published var services = [ServiceWrapper]()
|
||||
|
||||
subscript(name: String) -> ServiceWrapper? {
|
||||
return self.services.first { wrapper in
|
||||
@ -22,6 +22,10 @@ class ServicesManager: ObservableObject {
|
||||
}
|
||||
|
||||
public var statusMessage: String {
|
||||
if self.services.isEmpty {
|
||||
return "Loading..."
|
||||
}
|
||||
|
||||
let statuses = self.services[0...2].map { $0.status }
|
||||
if statuses.contains(.loading) {
|
||||
return "Determining Valet status..."
|
||||
@ -37,6 +41,10 @@ class ServicesManager: ObservableObject {
|
||||
}
|
||||
|
||||
public var statusColor: Color {
|
||||
if self.services.isEmpty {
|
||||
return .yellow
|
||||
}
|
||||
|
||||
let statuses = self.services[0...2].map { $0.status }
|
||||
if statuses.contains(.loading) {
|
||||
return .orange
|
||||
|
@ -148,8 +148,11 @@ public struct BlueButton: ButtonStyle {
|
||||
|
||||
struct ServicesView_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
ServicesView(manager: FakeServicesManager(), perRow: 4)
|
||||
.frame(width: 330.0)
|
||||
.previewDisplayName("Loading")
|
||||
ServicesView(manager: FakeServicesManager(
|
||||
formulae: ["php", "nginx", "dnsmasq"],
|
||||
status: .active
|
||||
), perRow: 4)
|
||||
.frame(width: 330.0)
|
||||
.previewDisplayName("Loading")
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user