mirror of
https://github.com/nicoverbruggen/phpmon.git
synced 2025-08-08 04:20:07 +02:00
♻️ Cleanup
This commit is contained in:
@ -94,8 +94,6 @@
|
|||||||
C42337A3281F19F000459A48 /* Xdebug.swift in Sources */ = {isa = PBXBuildFile; fileRef = C42337A2281F19F000459A48 /* Xdebug.swift */; };
|
C42337A3281F19F000459A48 /* Xdebug.swift in Sources */ = {isa = PBXBuildFile; fileRef = C42337A2281F19F000459A48 /* Xdebug.swift */; };
|
||||||
C42759672627662800093CAE /* NSMenuExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C42759662627662800093CAE /* NSMenuExtension.swift */; };
|
C42759672627662800093CAE /* NSMenuExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C42759662627662800093CAE /* NSMenuExtension.swift */; };
|
||||||
C42759682627662800093CAE /* NSMenuExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C42759662627662800093CAE /* NSMenuExtension.swift */; };
|
C42759682627662800093CAE /* NSMenuExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C42759662627662800093CAE /* NSMenuExtension.swift */; };
|
||||||
C42800AA28452AA10099C999 /* StatusMenu+Items.swift in Sources */ = {isa = PBXBuildFile; fileRef = C42800A928452AA10099C999 /* StatusMenu+Items.swift */; };
|
|
||||||
C42800AB28452AA50099C999 /* StatusMenu+Items.swift in Sources */ = {isa = PBXBuildFile; fileRef = C42800A928452AA10099C999 /* StatusMenu+Items.swift */; };
|
|
||||||
C4297F7A28970D59004C4630 /* WarningView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4297F7928970D59004C4630 /* WarningView.swift */; };
|
C4297F7A28970D59004C4630 /* WarningView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4297F7928970D59004C4630 /* WarningView.swift */; };
|
||||||
C42C49DB27C2806F0074ABAC /* MainMenu+FixMyValet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C42C49DA27C2806F0074ABAC /* MainMenu+FixMyValet.swift */; };
|
C42C49DB27C2806F0074ABAC /* MainMenu+FixMyValet.swift in Sources */ = {isa = PBXBuildFile; fileRef = C42C49DA27C2806F0074ABAC /* MainMenu+FixMyValet.swift */; };
|
||||||
C42CFB1627DFDE7900862737 /* nginx-site.test in Resources */ = {isa = PBXBuildFile; fileRef = C42CFB1527DFDE7900862737 /* nginx-site.test */; };
|
C42CFB1627DFDE7900862737 /* nginx-site.test in Resources */ = {isa = PBXBuildFile; fileRef = C42CFB1527DFDE7900862737 /* nginx-site.test */; };
|
||||||
@ -210,6 +208,8 @@
|
|||||||
C4C0E8EB27F88B80002D32A9 /* ValetProxy+Fake.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4C0E8E927F88B80002D32A9 /* ValetProxy+Fake.swift */; };
|
C4C0E8EB27F88B80002D32A9 /* ValetProxy+Fake.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4C0E8E927F88B80002D32A9 /* ValetProxy+Fake.swift */; };
|
||||||
C4C1019B27C65C6F001FACC2 /* Process.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4C1019A27C65C6F001FACC2 /* Process.swift */; };
|
C4C1019B27C65C6F001FACC2 /* Process.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4C1019A27C65C6F001FACC2 /* Process.swift */; };
|
||||||
C4C1019C27C65C6F001FACC2 /* Process.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4C1019A27C65C6F001FACC2 /* Process.swift */; };
|
C4C1019C27C65C6F001FACC2 /* Process.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4C1019A27C65C6F001FACC2 /* Process.swift */; };
|
||||||
|
C4C3643928AE4FCE00C0770E /* StatusMenu+Items.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4C3643828AE4FCE00C0770E /* StatusMenu+Items.swift */; };
|
||||||
|
C4C3643A28AE4FCE00C0770E /* StatusMenu+Items.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4C3643828AE4FCE00C0770E /* StatusMenu+Items.swift */; };
|
||||||
C4C3ED412783497000AB15D8 /* MainMenu+Startup.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4C3ED402783497000AB15D8 /* MainMenu+Startup.swift */; };
|
C4C3ED412783497000AB15D8 /* MainMenu+Startup.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4C3ED402783497000AB15D8 /* MainMenu+Startup.swift */; };
|
||||||
C4C3ED4327834C5200AB15D8 /* CustomPrefs.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4C3ED4227834C5200AB15D8 /* CustomPrefs.swift */; };
|
C4C3ED4327834C5200AB15D8 /* CustomPrefs.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4C3ED4227834C5200AB15D8 /* CustomPrefs.swift */; };
|
||||||
C4C8E818276F54D8003AC782 /* App+ConfigWatch.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4C8E817276F54D8003AC782 /* App+ConfigWatch.swift */; };
|
C4C8E818276F54D8003AC782 /* App+ConfigWatch.swift in Sources */ = {isa = PBXBuildFile; fileRef = C4C8E817276F54D8003AC782 /* App+ConfigWatch.swift */; };
|
||||||
@ -358,7 +358,6 @@
|
|||||||
C4232EE42612526500158FC6 /* Credits.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = Credits.html; sourceTree = "<group>"; };
|
C4232EE42612526500158FC6 /* Credits.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = Credits.html; sourceTree = "<group>"; };
|
||||||
C42337A2281F19F000459A48 /* Xdebug.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Xdebug.swift; sourceTree = "<group>"; };
|
C42337A2281F19F000459A48 /* Xdebug.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Xdebug.swift; sourceTree = "<group>"; };
|
||||||
C42759662627662800093CAE /* NSMenuExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NSMenuExtension.swift; sourceTree = "<group>"; };
|
C42759662627662800093CAE /* NSMenuExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NSMenuExtension.swift; sourceTree = "<group>"; };
|
||||||
C42800A928452AA10099C999 /* StatusMenu+Items.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "StatusMenu+Items.swift"; sourceTree = "<group>"; };
|
|
||||||
C4297F7928970D59004C4630 /* WarningView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WarningView.swift; sourceTree = "<group>"; };
|
C4297F7928970D59004C4630 /* WarningView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WarningView.swift; sourceTree = "<group>"; };
|
||||||
C42C49DA27C2806F0074ABAC /* MainMenu+FixMyValet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "MainMenu+FixMyValet.swift"; sourceTree = "<group>"; };
|
C42C49DA27C2806F0074ABAC /* MainMenu+FixMyValet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "MainMenu+FixMyValet.swift"; sourceTree = "<group>"; };
|
||||||
C42CFB1527DFDE7900862737 /* nginx-site.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "nginx-site.test"; sourceTree = "<group>"; };
|
C42CFB1527DFDE7900862737 /* nginx-site.test */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = "nginx-site.test"; sourceTree = "<group>"; };
|
||||||
@ -432,6 +431,7 @@
|
|||||||
C4C0E8E627F88B41002D32A9 /* ProxyScanner.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProxyScanner.swift; sourceTree = "<group>"; };
|
C4C0E8E627F88B41002D32A9 /* ProxyScanner.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProxyScanner.swift; sourceTree = "<group>"; };
|
||||||
C4C0E8E927F88B80002D32A9 /* ValetProxy+Fake.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ValetProxy+Fake.swift"; sourceTree = "<group>"; };
|
C4C0E8E927F88B80002D32A9 /* ValetProxy+Fake.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ValetProxy+Fake.swift"; sourceTree = "<group>"; };
|
||||||
C4C1019A27C65C6F001FACC2 /* Process.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Process.swift; sourceTree = "<group>"; };
|
C4C1019A27C65C6F001FACC2 /* Process.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Process.swift; sourceTree = "<group>"; };
|
||||||
|
C4C3643828AE4FCE00C0770E /* StatusMenu+Items.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "StatusMenu+Items.swift"; sourceTree = "<group>"; };
|
||||||
C4C3ED402783497000AB15D8 /* MainMenu+Startup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "MainMenu+Startup.swift"; sourceTree = "<group>"; };
|
C4C3ED402783497000AB15D8 /* MainMenu+Startup.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "MainMenu+Startup.swift"; sourceTree = "<group>"; };
|
||||||
C4C3ED4227834C5200AB15D8 /* CustomPrefs.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomPrefs.swift; sourceTree = "<group>"; };
|
C4C3ED4227834C5200AB15D8 /* CustomPrefs.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomPrefs.swift; sourceTree = "<group>"; };
|
||||||
C4C8E817276F54D8003AC782 /* App+ConfigWatch.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "App+ConfigWatch.swift"; sourceTree = "<group>"; };
|
C4C8E817276F54D8003AC782 /* App+ConfigWatch.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "App+ConfigWatch.swift"; sourceTree = "<group>"; };
|
||||||
@ -832,7 +832,7 @@
|
|||||||
C42C49DA27C2806F0074ABAC /* MainMenu+FixMyValet.swift */,
|
C42C49DA27C2806F0074ABAC /* MainMenu+FixMyValet.swift */,
|
||||||
C4F361602836BFD9003598CC /* MainMenu+Actions.swift */,
|
C4F361602836BFD9003598CC /* MainMenu+Actions.swift */,
|
||||||
C47331A1247093B7009A0597 /* StatusMenu.swift */,
|
C47331A1247093B7009A0597 /* StatusMenu.swift */,
|
||||||
C42800A928452AA10099C999 /* StatusMenu+Items.swift */,
|
C4C3643828AE4FCE00C0770E /* StatusMenu+Items.swift */,
|
||||||
);
|
);
|
||||||
path = Menu;
|
path = Menu;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@ -1325,8 +1325,8 @@
|
|||||||
C4B6091A2853AAD300C95265 /* SectionHeaderView.swift in Sources */,
|
C4B6091A2853AAD300C95265 /* SectionHeaderView.swift in Sources */,
|
||||||
C44067F727E258410045BD4E /* DomainListPhpCell.swift in Sources */,
|
C44067F727E258410045BD4E /* DomainListPhpCell.swift in Sources */,
|
||||||
C4FACE80288F1C0D00FC478F /* PreferencesWindowController+Hotkey.swift in Sources */,
|
C4FACE80288F1C0D00FC478F /* PreferencesWindowController+Hotkey.swift in Sources */,
|
||||||
C42800AA28452AA10099C999 /* StatusMenu+Items.swift in Sources */,
|
|
||||||
C415D3B72770F294005EF286 /* Actions.swift in Sources */,
|
C415D3B72770F294005EF286 /* Actions.swift in Sources */,
|
||||||
|
C4C3643928AE4FCE00C0770E /* StatusMenu+Items.swift in Sources */,
|
||||||
C4AC51FC27E27F47008528CA /* DomainListKindCell.swift in Sources */,
|
C4AC51FC27E27F47008528CA /* DomainListKindCell.swift in Sources */,
|
||||||
C4CDA893288F1A71007CE25F /* Keys.swift in Sources */,
|
C4CDA893288F1A71007CE25F /* Keys.swift in Sources */,
|
||||||
C4F361612836BFD9003598CC /* MainMenu+Actions.swift in Sources */,
|
C4F361612836BFD9003598CC /* MainMenu+Actions.swift in Sources */,
|
||||||
@ -1471,6 +1471,7 @@
|
|||||||
C4EED88A27A48778006D7272 /* InterAppHandler.swift in Sources */,
|
C4EED88A27A48778006D7272 /* InterAppHandler.swift in Sources */,
|
||||||
C48D6C75279CD3E400F26D7E /* PhpVersionNumberTest.swift in Sources */,
|
C48D6C75279CD3E400F26D7E /* PhpVersionNumberTest.swift in Sources */,
|
||||||
C43603A1275E67610028EFC6 /* AppDelegate+Notifications.swift in Sources */,
|
C43603A1275E67610028EFC6 /* AppDelegate+Notifications.swift in Sources */,
|
||||||
|
C4C3643A28AE4FCE00C0770E /* StatusMenu+Items.swift in Sources */,
|
||||||
C42759682627662800093CAE /* NSMenuExtension.swift in Sources */,
|
C42759682627662800093CAE /* NSMenuExtension.swift in Sources */,
|
||||||
C4D936CB27E3EE4A00BD69FE /* DomainListCellProtocol.swift in Sources */,
|
C4D936CB27E3EE4A00BD69FE /* DomainListCellProtocol.swift in Sources */,
|
||||||
C4B97B76275CF08C003F3378 /* AppDelegate+MenuOutlets.swift in Sources */,
|
C4B97B76275CF08C003F3378 /* AppDelegate+MenuOutlets.swift in Sources */,
|
||||||
@ -1482,7 +1483,6 @@
|
|||||||
C4068CAB27B0890D00544CD5 /* MenuBarIcons.swift in Sources */,
|
C4068CAB27B0890D00544CD5 /* MenuBarIcons.swift in Sources */,
|
||||||
C40C5C9D2846A40600E28255 /* Preset.swift in Sources */,
|
C40C5C9D2846A40600E28255 /* Preset.swift in Sources */,
|
||||||
C4F30B09278E1A0E00755FCE /* CustomPrefs.swift in Sources */,
|
C4F30B09278E1A0E00755FCE /* CustomPrefs.swift in Sources */,
|
||||||
C42800AB28452AA50099C999 /* StatusMenu+Items.swift in Sources */,
|
|
||||||
C40FE738282ABA4F00A302C2 /* AppVersion.swift in Sources */,
|
C40FE738282ABA4F00A302C2 /* AppVersion.swift in Sources */,
|
||||||
C415D3E92770F692005EF286 /* AppDelegate+InterApp.swift in Sources */,
|
C415D3E92770F692005EF286 /* AppDelegate+InterApp.swift in Sources */,
|
||||||
C484437C2804BB560041A78A /* ValetProxyScanner.swift in Sources */,
|
C484437C2804BB560041A78A /* ValetProxyScanner.swift in Sources */,
|
||||||
|
@ -9,13 +9,11 @@
|
|||||||
import Cocoa
|
import Cocoa
|
||||||
|
|
||||||
extension NSMenu {
|
extension NSMenu {
|
||||||
open func addItem(
|
/* TODO: convenience initializer with items, target and parent menu item
|
||||||
_ newItem: NSMenuItem,
|
convenience init() {
|
||||||
withKeyModifier modifier: NSEvent.ModifierFlags
|
super.init()
|
||||||
) {
|
|
||||||
newItem.keyEquivalentModifierMask = modifier
|
|
||||||
self.addItem(newItem)
|
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
open func addItems(_ items: [NSMenuItem], target: NSObject? = nil) {
|
open func addItems(_ items: [NSMenuItem], target: NSObject? = nil) {
|
||||||
for item in items {
|
for item in items {
|
||||||
|
@ -14,11 +14,11 @@ extension NSMenuItem {
|
|||||||
action: Selector? = nil,
|
action: Selector? = nil,
|
||||||
keyEquivalent: String = "",
|
keyEquivalent: String = "",
|
||||||
keyModifier: NSEvent.ModifierFlags = [],
|
keyModifier: NSEvent.ModifierFlags = [],
|
||||||
tooltip: String = "",
|
toolTip: String? = nil
|
||||||
submenu: NSMenu? = nil
|
|
||||||
) {
|
) {
|
||||||
self.init(title: title, action: action, keyEquivalent: keyEquivalent)
|
self.init(title: title, action: action, keyEquivalent: keyEquivalent)
|
||||||
self.keyEquivalentModifierMask = keyModifier
|
self.keyEquivalentModifierMask = keyModifier
|
||||||
|
self.toolTip = toolTip
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,10 +70,8 @@ class PhpConfigurationFile: CreatedFromFile {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public func getConfig(for key: String) -> ConfigValue? {
|
public func getConfig(for key: String) -> ConfigValue? {
|
||||||
for (_, section) in self.content {
|
for (_, section) in self.content where section.keys.contains(key) {
|
||||||
if section.keys.contains(key) {
|
return section[key]!
|
||||||
return section[key]!
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -77,7 +77,11 @@ extension MainMenu {
|
|||||||
ServicesManager.shared.loadData()
|
ServicesManager.shared.loadData()
|
||||||
}
|
}
|
||||||
|
|
||||||
error == nil ? success() : failure(error!)
|
if error != nil {
|
||||||
|
return failure(error!)
|
||||||
|
}
|
||||||
|
|
||||||
|
success()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -51,25 +51,10 @@ class MainMenu: NSObject, NSWindowDelegate, NSMenuDelegate, PhpSwitcherDelegate
|
|||||||
*/
|
*/
|
||||||
private func rebuildMenu() {
|
private func rebuildMenu() {
|
||||||
let menu = StatusMenu()
|
let menu = StatusMenu()
|
||||||
|
menu.addMenuItems()
|
||||||
menu.addPhpVersionMenuItems()
|
|
||||||
menu.addItem(NSMenuItem.separator())
|
|
||||||
|
|
||||||
menu.addPhpActionMenuItems()
|
|
||||||
menu.addItem(NSMenuItem.separator())
|
|
||||||
|
|
||||||
menu.addValetMenuItems()
|
|
||||||
menu.addItem(NSMenuItem.separator())
|
|
||||||
|
|
||||||
menu.addRemainingMenuItems()
|
|
||||||
menu.addItem(NSMenuItem.separator())
|
|
||||||
|
|
||||||
menu.addCoreMenuItems()
|
|
||||||
|
|
||||||
menu.items.forEach({ (item) in
|
menu.items.forEach({ (item) in
|
||||||
item.target = self
|
item.target = self
|
||||||
})
|
})
|
||||||
|
|
||||||
statusItem.menu = menu
|
statusItem.menu = menu
|
||||||
statusItem.menu?.delegate = self
|
statusItem.menu?.delegate = self
|
||||||
}
|
}
|
||||||
|
@ -2,18 +2,105 @@
|
|||||||
// StatusMenu+Items.swift
|
// StatusMenu+Items.swift
|
||||||
// PHP Monitor
|
// PHP Monitor
|
||||||
//
|
//
|
||||||
// Created by Nico Verbruggen on 30/05/2022.
|
// Created by Nico Verbruggen on 18/08/2022.
|
||||||
// Copyright © 2022 Nico Verbruggen. All rights reserved.
|
// Copyright © 2022 Nico Verbruggen. All rights reserved.
|
||||||
//
|
//
|
||||||
|
|
||||||
import Cocoa
|
import Cocoa
|
||||||
|
|
||||||
|
// MARK: - PHP Version
|
||||||
|
|
||||||
extension StatusMenu {
|
extension StatusMenu {
|
||||||
|
|
||||||
// MARK: Remaining Menu Items
|
func addPhpVersionMenuItems() {
|
||||||
|
if PhpEnv.phpInstall.version.error {
|
||||||
|
let brokenMenuItems = ["mi_php_broken_1", "mi_php_broken_2", "mi_php_broken_3", "mi_php_broken_4"]
|
||||||
|
return addItems(brokenMenuItems.map { NSMenuItem(title: $0.localized) })
|
||||||
|
}
|
||||||
|
|
||||||
|
addItem(HeaderView.asMenuItem(
|
||||||
|
text: "\("mi_php_version".localized) \(PhpEnv.phpInstall.version.long)")
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
func addPhpActionMenuItems() {
|
||||||
|
if PhpEnv.shared.isBusy {
|
||||||
|
addItem(NSMenuItem(title: "mi_busy".localized))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if PhpEnv.shared.availablePhpVersions.isEmpty { return }
|
||||||
|
|
||||||
|
addSwitchToPhpMenuItems()
|
||||||
|
|
||||||
|
addItems([
|
||||||
|
NSMenuItem.separator(),
|
||||||
|
ServicesView.asMenuItem(),
|
||||||
|
NSMenuItem.separator()
|
||||||
|
])
|
||||||
|
}
|
||||||
|
|
||||||
|
func addSwitchToPhpMenuItems() {
|
||||||
|
var shortcutKey = 1
|
||||||
|
for index in (0..<PhpEnv.shared.availablePhpVersions.count).reversed() {
|
||||||
|
|
||||||
|
// Get the short and long version
|
||||||
|
let shortVersion = PhpEnv.shared.availablePhpVersions[index]
|
||||||
|
let longVersion = PhpEnv.shared.cachedPhpInstallations[shortVersion]!.versionNumber
|
||||||
|
|
||||||
|
let long = Preferences.preferences[.fullPhpVersionDynamicIcon] as! Bool
|
||||||
|
let versionString = long ? longVersion.toString() : shortVersion
|
||||||
|
|
||||||
|
let action = #selector(MainMenu.switchToPhpVersion(sender:))
|
||||||
|
let brew = (shortVersion == PhpEnv.brewPhpVersion) ? "php" : "php@\(shortVersion)"
|
||||||
|
let menuItem = PhpMenuItem(
|
||||||
|
title: "\("mi_php_switch".localized) \(versionString) (\(brew))",
|
||||||
|
action: (shortVersion == PhpEnv.phpInstall.version.short)
|
||||||
|
? nil
|
||||||
|
: action, keyEquivalent: "\(shortcutKey)"
|
||||||
|
)
|
||||||
|
|
||||||
|
menuItem.version = shortVersion
|
||||||
|
shortcutKey += 1
|
||||||
|
|
||||||
|
addItem(menuItem)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func addCoreMenuItems() {
|
||||||
|
addItems([
|
||||||
|
NSMenuItem.separator(),
|
||||||
|
NSMenuItem(title: "mi_preferences".localized,
|
||||||
|
action: #selector(MainMenu.openPrefs), keyEquivalent: ","),
|
||||||
|
NSMenuItem(title: "mi_check_for_updates".localized,
|
||||||
|
action: #selector(MainMenu.checkForUpdates)),
|
||||||
|
NSMenuItem.separator(),
|
||||||
|
NSMenuItem(title: "mi_about".localized,
|
||||||
|
action: #selector(MainMenu.openAbout)),
|
||||||
|
NSMenuItem(title: "mi_quit".localized,
|
||||||
|
action: #selector(MainMenu.terminateApp), keyEquivalent: "q")
|
||||||
|
])
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: - Valet
|
||||||
|
|
||||||
|
func addValetMenuItems() {
|
||||||
|
addItems([
|
||||||
|
HeaderView.asMenuItem(text: "mi_valet".localized),
|
||||||
|
NSMenuItem(title: "mi_valet_config".localized,
|
||||||
|
action: #selector(MainMenu.openValetConfigFolder),
|
||||||
|
keyEquivalent: "v"),
|
||||||
|
NSMenuItem(title: "mi_domain_list".localized,
|
||||||
|
action: #selector(MainMenu.openDomainList),
|
||||||
|
keyEquivalent: "l"),
|
||||||
|
NSMenuItem.separator()
|
||||||
|
])
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: - PHP Configuration
|
||||||
|
|
||||||
func addConfigurationMenuItems() {
|
func addConfigurationMenuItems() {
|
||||||
self.addItems([
|
addItems([
|
||||||
HeaderView.asMenuItem(text: "mi_configuration".localized),
|
HeaderView.asMenuItem(text: "mi_configuration".localized),
|
||||||
NSMenuItem(title: "mi_php_config".localized,
|
NSMenuItem(title: "mi_php_config".localized,
|
||||||
action: #selector(MainMenu.openActiveConfigFolder),
|
action: #selector(MainMenu.openActiveConfigFolder),
|
||||||
@ -27,8 +114,10 @@ extension StatusMenu {
|
|||||||
])
|
])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MARK: - Composer
|
||||||
|
|
||||||
func addComposerMenuItems() {
|
func addComposerMenuItems() {
|
||||||
self.addItems([
|
addItems([
|
||||||
HeaderView.asMenuItem(text: "mi_composer".localized),
|
HeaderView.asMenuItem(text: "mi_composer".localized),
|
||||||
NSMenuItem(
|
NSMenuItem(
|
||||||
title: "mi_global_composer".localized,
|
title: "mi_global_composer".localized,
|
||||||
@ -38,38 +127,44 @@ extension StatusMenu {
|
|||||||
NSMenuItem(
|
NSMenuItem(
|
||||||
title: "mi_update_global_composer".localized,
|
title: "mi_update_global_composer".localized,
|
||||||
action: PhpEnv.shared.isBusy
|
action: PhpEnv.shared.isBusy
|
||||||
? nil
|
? nil
|
||||||
: #selector(MainMenu.updateGlobalComposerDependencies),
|
: #selector(MainMenu.updateGlobalComposerDependencies),
|
||||||
keyEquivalent: "g",
|
keyEquivalent: "g",
|
||||||
keyModifier: [.shift]
|
keyModifier: [.shift]
|
||||||
)
|
)
|
||||||
])
|
])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MARK: - Stats
|
||||||
|
|
||||||
func addStatsMenuItem() {
|
func addStatsMenuItem() {
|
||||||
guard let stats = PhpEnv.phpInstall.limits else { return }
|
guard let stats = PhpEnv.phpInstall.limits else { return }
|
||||||
|
|
||||||
self.addItem(StatsView.asMenuItem(
|
addItem(StatsView.asMenuItem(
|
||||||
memory: stats.memory_limit,
|
memory: stats.memory_limit,
|
||||||
post: stats.post_max_size,
|
post: stats.post_max_size,
|
||||||
upload: stats.upload_max_filesize)
|
upload: stats.upload_max_filesize)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MARK: - Extensions
|
||||||
|
|
||||||
func addExtensionsMenuItems() {
|
func addExtensionsMenuItems() {
|
||||||
self.addItem(HeaderView.asMenuItem(text: "mi_detected_extensions".localized))
|
addItem(HeaderView.asMenuItem(text: "mi_detected_extensions".localized))
|
||||||
|
|
||||||
if PhpEnv.phpInstall.extensions.isEmpty {
|
if PhpEnv.phpInstall.extensions.isEmpty {
|
||||||
self.addItem(NSMenuItem(title: "mi_no_extensions_detected".localized, action: nil, keyEquivalent: ""))
|
addItem(NSMenuItem(title: "mi_no_extensions_detected".localized, action: nil, keyEquivalent: ""))
|
||||||
}
|
}
|
||||||
|
|
||||||
var shortcutKey = 1
|
var shortcutKey = 1
|
||||||
for phpExtension in PhpEnv.phpInstall.extensions {
|
for phpExtension in PhpEnv.phpInstall.extensions {
|
||||||
self.addExtensionItem(phpExtension, shortcutKey)
|
addExtensionItem(phpExtension, shortcutKey)
|
||||||
shortcutKey += 1
|
shortcutKey += 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MARK: - Presets
|
||||||
|
|
||||||
func addPresetsMenuItem() {
|
func addPresetsMenuItem() {
|
||||||
guard let presets = Preferences.custom.presets else {
|
guard let presets = Preferences.custom.presets else {
|
||||||
addEmptyPresetHelp()
|
addEmptyPresetHelp()
|
||||||
@ -84,7 +179,7 @@ extension StatusMenu {
|
|||||||
addLoadedPresets()
|
addLoadedPresets()
|
||||||
}
|
}
|
||||||
|
|
||||||
func addEmptyPresetHelp() {
|
private func addEmptyPresetHelp() {
|
||||||
let presets = NSMenuItem(title: "mi_presets_title".localized)
|
let presets = NSMenuItem(title: "mi_presets_title".localized)
|
||||||
|
|
||||||
let presetsMenu = NSMenu()
|
let presetsMenu = NSMenu()
|
||||||
@ -95,13 +190,13 @@ extension StatusMenu {
|
|||||||
action: #selector(MainMenu.showPresetHelp))
|
action: #selector(MainMenu.showPresetHelp))
|
||||||
], target: MainMenu.shared)
|
], target: MainMenu.shared)
|
||||||
|
|
||||||
self.setSubmenu(presetsMenu, for: presets)
|
setSubmenu(presetsMenu, for: presets)
|
||||||
self.addItem(presets)
|
addItem(presets)
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func addLoadedPresets() {
|
private func addLoadedPresets() {
|
||||||
let presets = NSMenuItem(title: "mi_presets_title".localized)
|
let presets = NSMenuItem(title: "mi_presets_title".localized)
|
||||||
|
|
||||||
let presetsMenu = NSMenu()
|
let presetsMenu = NSMenu()
|
||||||
@ -118,10 +213,12 @@ extension StatusMenu {
|
|||||||
]
|
]
|
||||||
|
|
||||||
presetsMenu.addItems(items, target: MainMenu.shared)
|
presetsMenu.addItems(items, target: MainMenu.shared)
|
||||||
self.setSubmenu(presetsMenu, for: presets)
|
setSubmenu(presetsMenu, for: presets)
|
||||||
self.addItem(presets)
|
addItem(presets)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MARK: - Xdebug
|
||||||
|
|
||||||
func addXdebugMenuItem() {
|
func addXdebugMenuItem() {
|
||||||
if !Xdebug.enabled {
|
if !Xdebug.enabled {
|
||||||
return
|
return
|
||||||
@ -134,19 +231,37 @@ extension StatusMenu {
|
|||||||
+ [HeaderView.asMenuItem(text: "mi_xdebug_actions".localized),
|
+ [HeaderView.asMenuItem(text: "mi_xdebug_actions".localized),
|
||||||
NSMenuItem(title: "mi_xdebug_disable_all".localized,
|
NSMenuItem(title: "mi_xdebug_disable_all".localized,
|
||||||
action: #selector(MainMenu.disableAllXdebugModes))
|
action: #selector(MainMenu.disableAllXdebugModes))
|
||||||
],
|
],
|
||||||
target: MainMenu.shared
|
target: MainMenu.shared
|
||||||
)
|
)
|
||||||
|
|
||||||
let xdebugItem = NSMenuItem(title: "mi_xdebug_mode".localized)
|
let xdebugItem = NSMenuItem(title: "mi_xdebug_mode".localized)
|
||||||
self.setSubmenu(submenu, for: xdebugItem)
|
setSubmenu(submenu, for: xdebugItem)
|
||||||
|
|
||||||
self.addItems([
|
addItems([
|
||||||
NSMenuItem.separator(),
|
NSMenuItem.separator(),
|
||||||
xdebugItem
|
xdebugItem
|
||||||
], target: MainMenu.shared)
|
], target: MainMenu.shared)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MARK: - PHP Doctor
|
||||||
|
|
||||||
|
func addPhpDoctorMenuItem() {
|
||||||
|
if !Preferences.isEnabled(.showPhpDoctorSuggestions) ||
|
||||||
|
!WarningManager.shared.hasWarnings() {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
addItems([
|
||||||
|
NSMenuItem.separator(),
|
||||||
|
HeaderView.asMenuItem(text: "mi_php_doctor".localized),
|
||||||
|
NSMenuItem(title: "mi_recommendations_count".localized(WarningManager.shared.warnings.count)),
|
||||||
|
NSMenuItem(title: "mi_view_recommendations".localized, action: #selector(MainMenu.openWarnings))
|
||||||
|
])
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: - First Aid & Services
|
||||||
|
|
||||||
func addFirstAidAndServicesMenuItems() {
|
func addFirstAidAndServicesMenuItems() {
|
||||||
let services = NSMenuItem(title: "mi_other".localized)
|
let services = NSMenuItem(title: "mi_other".localized)
|
||||||
|
|
||||||
@ -159,9 +274,9 @@ extension StatusMenu {
|
|||||||
NSMenuItem.separator(),
|
NSMenuItem.separator(),
|
||||||
NSMenuItem(title: "mi_fix_my_valet".localized(PhpEnv.brewPhpVersion),
|
NSMenuItem(title: "mi_fix_my_valet".localized(PhpEnv.brewPhpVersion),
|
||||||
action: #selector(MainMenu.fixMyValet),
|
action: #selector(MainMenu.fixMyValet),
|
||||||
tooltip: "mi_fix_my_valet_tooltip".localized),
|
toolTip: "mi_fix_my_valet_tooltip".localized),
|
||||||
NSMenuItem(title: "mi_fix_brew_permissions".localized(), action: #selector(MainMenu.fixHomebrewPermissions),
|
NSMenuItem(title: "mi_fix_brew_permissions".localized(), action: #selector(MainMenu.fixHomebrewPermissions),
|
||||||
tooltip: "mi_fix_brew_permissions_tooltip".localized),
|
toolTip: "mi_fix_brew_permissions_tooltip".localized),
|
||||||
NSMenuItem.separator(),
|
NSMenuItem.separator(),
|
||||||
|
|
||||||
// SERVICES
|
// SERVICES
|
||||||
@ -186,8 +301,28 @@ extension StatusMenu {
|
|||||||
keyEquivalent: "r")
|
keyEquivalent: "r")
|
||||||
], target: MainMenu.shared)
|
], target: MainMenu.shared)
|
||||||
|
|
||||||
self.setSubmenu(servicesMenu, for: services)
|
setSubmenu(servicesMenu, for: services)
|
||||||
self.addItem(services)
|
addItem(services)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MARK: - Other helper methods to generate menu items
|
||||||
|
|
||||||
|
func addExtensionItem(_ phpExtension: PhpExtension, _ shortcutKey: Int) {
|
||||||
|
let keyEquivalent = shortcutKey < 9 ? "\(shortcutKey)" : ""
|
||||||
|
|
||||||
|
let menuItem = ExtensionMenuItem(
|
||||||
|
title: "\(phpExtension.name) (\(phpExtension.fileNameOnly))",
|
||||||
|
action: #selector(MainMenu.toggleExtension),
|
||||||
|
keyEquivalent: keyEquivalent
|
||||||
|
)
|
||||||
|
|
||||||
|
if menuItem.keyEquivalent != "" {
|
||||||
|
menuItem.keyEquivalentModifierMask = [.option]
|
||||||
|
}
|
||||||
|
|
||||||
|
menuItem.state = phpExtension.enabled ? .on : .off
|
||||||
|
menuItem.phpExtension = phpExtension
|
||||||
|
|
||||||
|
addItem(menuItem)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,154 +8,39 @@
|
|||||||
import Cocoa
|
import Cocoa
|
||||||
|
|
||||||
class StatusMenu: NSMenu {
|
class StatusMenu: NSMenu {
|
||||||
|
func addMenuItems() {
|
||||||
|
addPhpVersionMenuItems()
|
||||||
|
addItem(NSMenuItem.separator())
|
||||||
|
|
||||||
func addPhpVersionMenuItems() {
|
addPhpActionMenuItems()
|
||||||
if PhpEnv.phpInstall.version.error {
|
addItem(NSMenuItem.separator())
|
||||||
for message in ["mi_php_broken_1", "mi_php_broken_2", "mi_php_broken_3", "mi_php_broken_4"] {
|
|
||||||
addItem(NSMenuItem(title: message.localized, action: nil, keyEquivalent: ""))
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
let phpVersionText = "\("mi_php_version".localized) \(PhpEnv.phpInstall.version.long)"
|
addValetMenuItems()
|
||||||
addItem(HeaderView.asMenuItem(text: phpVersionText))
|
addItem(NSMenuItem.separator())
|
||||||
}
|
|
||||||
|
|
||||||
func addPhpActionMenuItems() {
|
addConfigurationMenuItems()
|
||||||
if PhpEnv.shared.isBusy {
|
addItem(NSMenuItem.separator())
|
||||||
addItem(NSMenuItem(title: "mi_busy".localized, action: nil, keyEquivalent: ""))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if PhpEnv.shared.availablePhpVersions.isEmpty {
|
addComposerMenuItems()
|
||||||
return
|
addItem(NSMenuItem.separator())
|
||||||
}
|
|
||||||
|
|
||||||
self.addSwitchToPhpMenuItems()
|
|
||||||
self.addItem(NSMenuItem.separator())
|
|
||||||
|
|
||||||
self.addItem(ServicesView.asMenuItem())
|
|
||||||
self.addItem(NSMenuItem.separator())
|
|
||||||
}
|
|
||||||
|
|
||||||
func addValetMenuItems() {
|
|
||||||
self.addItem(HeaderView.asMenuItem(text: "mi_valet".localized))
|
|
||||||
self.addItem(NSMenuItem(
|
|
||||||
title: "mi_valet_config".localized, action: #selector(MainMenu.openValetConfigFolder), keyEquivalent: "v"))
|
|
||||||
self.addItem(NSMenuItem(
|
|
||||||
title: "mi_domain_list".localized, action: #selector(MainMenu.openDomainList), keyEquivalent: "l"))
|
|
||||||
self.addItem(NSMenuItem.separator())
|
|
||||||
}
|
|
||||||
|
|
||||||
func addRemainingMenuItems() {
|
|
||||||
self.addConfigurationMenuItems()
|
|
||||||
|
|
||||||
self.addItem(NSMenuItem.separator())
|
|
||||||
|
|
||||||
self.addComposerMenuItems()
|
|
||||||
|
|
||||||
if PhpEnv.shared.isBusy {
|
if PhpEnv.shared.isBusy {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
self.addItem(NSMenuItem.separator())
|
addStatsMenuItem()
|
||||||
|
addItem(NSMenuItem.separator())
|
||||||
|
|
||||||
self.addStatsMenuItem()
|
addExtensionsMenuItems()
|
||||||
|
addXdebugMenuItem()
|
||||||
|
addPhpDoctorMenuItem()
|
||||||
|
addItem(NSMenuItem.separator())
|
||||||
|
|
||||||
self.addItem(NSMenuItem.separator())
|
addPresetsMenuItem()
|
||||||
|
addFirstAidAndServicesMenuItems()
|
||||||
|
|
||||||
self.addExtensionsMenuItems()
|
addItem(NSMenuItem.separator())
|
||||||
|
|
||||||
self.addXdebugMenuItem()
|
addCoreMenuItems()
|
||||||
|
|
||||||
self.addPhpDoctorMenuItem()
|
|
||||||
|
|
||||||
self.addItem(NSMenuItem.separator())
|
|
||||||
|
|
||||||
self.addPresetsMenuItem()
|
|
||||||
|
|
||||||
self.addFirstAidAndServicesMenuItems()
|
|
||||||
}
|
|
||||||
|
|
||||||
func addPhpDoctorMenuItem() {
|
|
||||||
if !Preferences.isEnabled(.showPhpDoctorSuggestions) ||
|
|
||||||
!WarningManager.shared.hasWarnings() {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
self.addItem(NSMenuItem.separator())
|
|
||||||
self.addItem(HeaderView.asMenuItem(text: "mi_php_doctor".localized))
|
|
||||||
self.addItem(NSMenuItem(
|
|
||||||
title: "mi_recommendations_count".localized(WarningManager.shared.warnings.count),
|
|
||||||
action: nil,
|
|
||||||
keyEquivalent: ""
|
|
||||||
))
|
|
||||||
self.addItem(NSMenuItem(
|
|
||||||
title: "mi_view_recommendations".localized,
|
|
||||||
action: #selector(MainMenu.openWarnings),
|
|
||||||
keyEquivalent: ""
|
|
||||||
))
|
|
||||||
}
|
|
||||||
|
|
||||||
func addCoreMenuItems() {
|
|
||||||
self.addItem(NSMenuItem.separator())
|
|
||||||
|
|
||||||
self.addItem(NSMenuItem(title: "mi_preferences".localized,
|
|
||||||
action: #selector(MainMenu.openPrefs), keyEquivalent: ","))
|
|
||||||
self.addItem(NSMenuItem(title: "mi_check_for_updates".localized,
|
|
||||||
action: #selector(MainMenu.checkForUpdates), keyEquivalent: ""))
|
|
||||||
self.addItem(NSMenuItem.separator())
|
|
||||||
self.addItem(NSMenuItem(title: "mi_about".localized,
|
|
||||||
action: #selector(MainMenu.openAbout), keyEquivalent: ""))
|
|
||||||
self.addItem(NSMenuItem(title: "mi_quit".localized,
|
|
||||||
action: #selector(MainMenu.terminateApp), keyEquivalent: "q"))
|
|
||||||
}
|
|
||||||
|
|
||||||
// MARK: Private Helpers
|
|
||||||
|
|
||||||
internal func addSwitchToPhpMenuItems() {
|
|
||||||
var shortcutKey = 1
|
|
||||||
for index in (0..<PhpEnv.shared.availablePhpVersions.count).reversed() {
|
|
||||||
|
|
||||||
// Get the short and long version
|
|
||||||
let shortVersion = PhpEnv.shared.availablePhpVersions[index]
|
|
||||||
let longVersion = PhpEnv.shared.cachedPhpInstallations[shortVersion]!.versionNumber
|
|
||||||
|
|
||||||
let long = Preferences.preferences[.fullPhpVersionDynamicIcon] as! Bool
|
|
||||||
let versionString = long ? longVersion.toString() : shortVersion
|
|
||||||
|
|
||||||
let action = #selector(MainMenu.switchToPhpVersion(sender:))
|
|
||||||
let brew = (shortVersion == PhpEnv.brewPhpVersion) ? "php" : "php@\(shortVersion)"
|
|
||||||
let menuItem = PhpMenuItem(
|
|
||||||
title: "\("mi_php_switch".localized) \(versionString) (\(brew))",
|
|
||||||
action: (shortVersion == PhpEnv.phpInstall.version.short)
|
|
||||||
? nil
|
|
||||||
: action, keyEquivalent: "\(shortcutKey)"
|
|
||||||
)
|
|
||||||
|
|
||||||
menuItem.version = shortVersion
|
|
||||||
shortcutKey += 1
|
|
||||||
|
|
||||||
self.addItem(menuItem)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal func addExtensionItem(_ phpExtension: PhpExtension, _ shortcutKey: Int) {
|
|
||||||
let keyEquivalent = shortcutKey < 9 ? "\(shortcutKey)" : ""
|
|
||||||
|
|
||||||
let menuItem = ExtensionMenuItem(
|
|
||||||
title: "\(phpExtension.name) (\(phpExtension.fileNameOnly))",
|
|
||||||
action: #selector(MainMenu.toggleExtension),
|
|
||||||
keyEquivalent: keyEquivalent
|
|
||||||
)
|
|
||||||
|
|
||||||
if menuItem.keyEquivalent != "" {
|
|
||||||
menuItem.keyEquivalentModifierMask = [.option]
|
|
||||||
}
|
|
||||||
|
|
||||||
menuItem.state = phpExtension.enabled ? .on : .off
|
|
||||||
menuItem.phpExtension = phpExtension
|
|
||||||
|
|
||||||
self.addItem(menuItem)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -167,14 +167,15 @@ struct Preset: Codable, Equatable {
|
|||||||
|
|
||||||
// MARK: - Menu Items
|
// MARK: - Menu Items
|
||||||
|
|
||||||
|
// swiftlint:disable void_function_in_ternary
|
||||||
public func getMenuItemText() -> String {
|
public func getMenuItemText() -> String {
|
||||||
var info = extensions.count == 1
|
var info = extensions.count == 1
|
||||||
? "preset.extension".localized(extensions.count)
|
? "preset.extension".localized(extensions.count)
|
||||||
: "preset.extensions".localized(extensions.count)
|
: "preset.extensions".localized(extensions.count)
|
||||||
info += ", "
|
info += ", "
|
||||||
info += configuration.count == 1
|
info += configuration.count == 1
|
||||||
? "preset.preference".localized(configuration.count)
|
? "preset.preference".localized(configuration.count)
|
||||||
: "preset.preferences".localized(configuration.count)
|
: "preset.preferences".localized(configuration.count)
|
||||||
|
|
||||||
if self.version == nil {
|
if self.version == nil {
|
||||||
return "<span style=\"font-family: '-apple-system'; font-size: 12px;\">"
|
return "<span style=\"font-family: '-apple-system'; font-size: 12px;\">"
|
||||||
|
@ -74,12 +74,10 @@ class WarningManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private func loopOverEvaluations() async {
|
private func loopOverEvaluations() async {
|
||||||
for check in self.evaluations {
|
for check in self.evaluations where await check.applies() {
|
||||||
if await check.applies() {
|
Log.info("[DOCTOR] \(check.name) (!)")
|
||||||
Log.info("[DOCTOR] \(check.name) (!)")
|
self.warnings.append(check)
|
||||||
self.warnings.append(check)
|
continue
|
||||||
continue
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user