mirror of
https://github.com/nicoverbruggen/phpmon.git
synced 2025-08-07 20:10:08 +02:00
55 lines
1.5 KiB
Swift
55 lines
1.5 KiB
Swift
//
|
|
// FakeServicesManager.swift
|
|
// PHP Monitor
|
|
//
|
|
// Created by Nico Verbruggen on 23/12/2022.
|
|
// Copyright © 2022 Nico Verbruggen. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
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, do not make use of a `FakeServicesManager`!")
|
|
|
|
self.fixedFormulae = formulae
|
|
self.fixedStatus = status
|
|
|
|
self.serviceWrappers = self.formulae.map {
|
|
let wrapper = ServiceWrapper(formula: $0)
|
|
wrapper.isBusy = (status == .loading)
|
|
wrapper.service = HomebrewService.dummy(named: $0.name, enabled: true)
|
|
return wrapper
|
|
}
|
|
}
|
|
|
|
override var formulae: [HomebrewFormula] {
|
|
return fixedFormulae.map { formula in
|
|
return HomebrewFormula.init(formula, elevated: false)
|
|
}
|
|
}
|
|
|
|
override func updateServices() async {
|
|
await delay(seconds: 0.3)
|
|
|
|
for formula in self.serviceWrappers {
|
|
formula.service?.running = true
|
|
formula.isBusy = false
|
|
}
|
|
|
|
print("Sending the update!")
|
|
broadcastServicesUpdated()
|
|
}
|
|
}
|