1
0
mirror of https://github.com/nicoverbruggen/phpmon.git synced 2025-11-09 13:10:24 +01:00

Allow restarting of PHP-FPM

This commit is contained in:
2020-02-20 16:12:21 +01:00
parent e854ebe114
commit e683b6bc9a
3 changed files with 37 additions and 6 deletions

View File

@@ -26,6 +26,15 @@ class Actions {
return versionsOnly
}
public static func restartPhpFpm() {
let version = App.shared.currentVersion!.short
if (version == Constants.LatestPhpVersion) {
Shell.user.run("sudo brew services restart php")
} else {
Shell.user.run("sudo brew services restart php@\(version)")
}
}
public static func switchToPhpVersion(version: String, availableVersions: [String]) {
availableVersions.forEach { (version) in
// Unlink the current version

View File

@@ -57,9 +57,11 @@ class MainMenu: NSObject, NSWindowDelegate {
menu.addItem(menuItem)
}
menu.addItem(NSMenuItem.separator())
menu.addItem(NSMenuItem(title: "Restart php-fpm service", action: #selector(self.restartService), keyEquivalent: "r"))
menu.addItem(NSMenuItem.separator())
}
if (App.shared.busy) {
menu.addItem(NSMenuItem(title: "Switching PHP versions...", action: nil, keyEquivalent: ""))
menu.addItem(NSMenuItem(title: "PHP Monitor is busy...", action: nil, keyEquivalent: ""))
menu.addItem(NSMenuItem.separator())
}
if (App.shared.currentVersion != nil) {
@@ -127,6 +129,26 @@ class MainMenu: NSObject, NSWindowDelegate {
self.update()
}
@objc func setBusyImage() {
DispatchQueue.main.async {
self.setStatusBar(image: NSImage(named: NSImage.Name("StatusBarIcon"))!)
}
}
@objc public func restartService() {
App.shared.busy = true
self.setBusyImage()
DispatchQueue.global(qos: .userInitiated).async { [unowned self] in
self.update()
Actions.restartPhpFpm()
App.shared.busy = false
DispatchQueue.main.async {
self.updatePhpVersionInStatusBar()
self.update()
}
}
}
@objc public func openAbout() {
NSApplication.shared.activate(ignoringOtherApps: true)
NSApplication.shared.orderFrontStandardAboutPanel()
@@ -137,7 +159,7 @@ class MainMenu: NSObject, NSWindowDelegate {
}
@objc public func switchToPhpVersion(sender: AnyObject) {
self.setStatusBar(image: NSImage(named: NSImage.Name("StatusBarIcon"))!)
self.setBusyImage()
let index = sender.tag!
let version = App.shared.availablePhpVersions[index]
App.shared.busy = true