mirror of
https://github.com/nicoverbruggen/phpmon.git
synced 2025-11-06 12:50:06 +01:00
🔥 main branch cleanup
After the last merge, there was one file I accidentally included that doesn't need to be here: the legacy ServicesManager class! In order to ensure that 5.7, 6.0 and `main` branches are somewhat in order and easy to merge, I have now removed this file.
This commit is contained in:
@@ -1,78 +0,0 @@
|
|||||||
//
|
|
||||||
// ServicesManager.swift
|
|
||||||
// PHP Monitor
|
|
||||||
//
|
|
||||||
// Created by Nico Verbruggen on 11/06/2022.
|
|
||||||
// Copyright © 2022 Nico Verbruggen. All rights reserved.
|
|
||||||
//
|
|
||||||
|
|
||||||
import Foundation
|
|
||||||
import SwiftUI
|
|
||||||
|
|
||||||
class ServicesManager: ObservableObject {
|
|
||||||
|
|
||||||
static var shared = ServicesManager()
|
|
||||||
|
|
||||||
@Published var rootServices: [String: HomebrewService] = [:]
|
|
||||||
@Published var userServices: [String: HomebrewService] = [:]
|
|
||||||
|
|
||||||
public static func loadHomebrewServices(completed: (() -> Void)? = nil) {
|
|
||||||
let rootServiceNames = [
|
|
||||||
Homebrew.Formulae.php,
|
|
||||||
Homebrew.Formulae.nginx,
|
|
||||||
Homebrew.Formulae.dnsmasq
|
|
||||||
]
|
|
||||||
|
|
||||||
DispatchQueue.global(qos: .background).async {
|
|
||||||
let data = Shell
|
|
||||||
.pipe("sudo \(Paths.brew) services info --all --json", requiresPath: true)
|
|
||||||
.data(using: .utf8)!
|
|
||||||
|
|
||||||
let services = try! JSONDecoder()
|
|
||||||
.decode([HomebrewService].self, from: data)
|
|
||||||
.filter({ return rootServiceNames.contains($0.name) })
|
|
||||||
|
|
||||||
DispatchQueue.main.async {
|
|
||||||
ServicesManager.shared.rootServices = Dictionary(
|
|
||||||
uniqueKeysWithValues: services.map { ($0.name, $0) }
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
let userServiceNames = Preferences.custom.services ?? []
|
|
||||||
|
|
||||||
DispatchQueue.global(qos: .background).async {
|
|
||||||
let data = Shell
|
|
||||||
.pipe("\(Paths.brew) services info --all --json", requiresPath: true)
|
|
||||||
.data(using: .utf8)!
|
|
||||||
|
|
||||||
let services = try! JSONDecoder()
|
|
||||||
.decode([HomebrewService].self, from: data)
|
|
||||||
.filter({ return userServiceNames.contains($0.name) })
|
|
||||||
|
|
||||||
DispatchQueue.main.async {
|
|
||||||
ServicesManager.shared.userServices = Dictionary(
|
|
||||||
uniqueKeysWithValues: services.map { ($0.name, $0) }
|
|
||||||
)
|
|
||||||
completed?()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func loadData() {
|
|
||||||
Self.loadHomebrewServices()
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
Dummy data for preview purposes.
|
|
||||||
*/
|
|
||||||
func withDummyServices(_ services: [String: Bool]) -> Self {
|
|
||||||
for (service, enabled) in services {
|
|
||||||
let item = HomebrewService.dummy(named: service, enabled: enabled)
|
|
||||||
self.rootServices[service] = item
|
|
||||||
}
|
|
||||||
|
|
||||||
return self
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user