Skip to content

Commit e683b6b

Browse files
✨ Allow restarting of PHP-FPM
1 parent e854ebe commit e683b6b

File tree

3 files changed

+37
-6
lines changed

3 files changed

+37
-6
lines changed

PHP Monitor.xcodeproj/project.pbxproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -365,14 +365,14 @@
365365
CODE_SIGN_IDENTITY = "-";
366366
CODE_SIGN_STYLE = Automatic;
367367
COMBINE_HIDPI_IMAGES = YES;
368-
CURRENT_PROJECT_VERSION = 17;
368+
CURRENT_PROJECT_VERSION = 18;
369369
DEVELOPMENT_TEAM = 8M54J5J787;
370370
INFOPLIST_FILE = phpmon/Info.plist;
371371
LD_RUNPATH_SEARCH_PATHS = (
372372
"$(inherited)",
373373
"@executable_path/../Frameworks",
374374
);
375-
MARKETING_VERSION = 1.7;
375+
MARKETING_VERSION = 1.8;
376376
PRODUCT_BUNDLE_IDENTIFIER = com.nicoverbruggen.phpmon;
377377
PRODUCT_NAME = "$(TARGET_NAME)";
378378
SWIFT_VERSION = 5.0;
@@ -387,14 +387,14 @@
387387
CODE_SIGN_IDENTITY = "-";
388388
CODE_SIGN_STYLE = Automatic;
389389
COMBINE_HIDPI_IMAGES = YES;
390-
CURRENT_PROJECT_VERSION = 17;
390+
CURRENT_PROJECT_VERSION = 18;
391391
DEVELOPMENT_TEAM = 8M54J5J787;
392392
INFOPLIST_FILE = phpmon/Info.plist;
393393
LD_RUNPATH_SEARCH_PATHS = (
394394
"$(inherited)",
395395
"@executable_path/../Frameworks",
396396
);
397-
MARKETING_VERSION = 1.7;
397+
MARKETING_VERSION = 1.8;
398398
PRODUCT_BUNDLE_IDENTIFIER = com.nicoverbruggen.phpmon;
399399
PRODUCT_NAME = "$(TARGET_NAME)";
400400
SWIFT_VERSION = 5.0;

phpmon/Classes/Commands/Actions.swift

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,15 @@ class Actions {
2626
return versionsOnly
2727
}
2828

29+
public static func restartPhpFpm() {
30+
let version = App.shared.currentVersion!.short
31+
if (version == Constants.LatestPhpVersion) {
32+
Shell.user.run("sudo brew services restart php")
33+
} else {
34+
Shell.user.run("sudo brew services restart php@\(version)")
35+
}
36+
}
37+
2938
public static func switchToPhpVersion(version: String, availableVersions: [String]) {
3039
availableVersions.forEach { (version) in
3140
// Unlink the current version

phpmon/Singletons/MainMenu.swift

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,11 @@ class MainMenu: NSObject, NSWindowDelegate {
5757
menu.addItem(menuItem)
5858
}
5959
menu.addItem(NSMenuItem.separator())
60+
menu.addItem(NSMenuItem(title: "Restart php-fpm service", action: #selector(self.restartService), keyEquivalent: "r"))
61+
menu.addItem(NSMenuItem.separator())
6062
}
6163
if (App.shared.busy) {
62-
menu.addItem(NSMenuItem(title: "Switching PHP versions...", action: nil, keyEquivalent: ""))
64+
menu.addItem(NSMenuItem(title: "PHP Monitor is busy...", action: nil, keyEquivalent: ""))
6365
menu.addItem(NSMenuItem.separator())
6466
}
6567
if (App.shared.currentVersion != nil) {
@@ -127,6 +129,26 @@ class MainMenu: NSObject, NSWindowDelegate {
127129
self.update()
128130
}
129131

132+
@objc func setBusyImage() {
133+
DispatchQueue.main.async {
134+
self.setStatusBar(image: NSImage(named: NSImage.Name("StatusBarIcon"))!)
135+
}
136+
}
137+
138+
@objc public func restartService() {
139+
App.shared.busy = true
140+
self.setBusyImage()
141+
DispatchQueue.global(qos: .userInitiated).async { [unowned self] in
142+
self.update()
143+
Actions.restartPhpFpm()
144+
App.shared.busy = false
145+
DispatchQueue.main.async {
146+
self.updatePhpVersionInStatusBar()
147+
self.update()
148+
}
149+
}
150+
}
151+
130152
@objc public func openAbout() {
131153
NSApplication.shared.activate(ignoringOtherApps: true)
132154
NSApplication.shared.orderFrontStandardAboutPanel()
@@ -137,7 +159,7 @@ class MainMenu: NSObject, NSWindowDelegate {
137159
}
138160

139161
@objc public func switchToPhpVersion(sender: AnyObject) {
140-
self.setStatusBar(image: NSImage(named: NSImage.Name("StatusBarIcon"))!)
162+
self.setBusyImage()
141163
let index = sender.tag!
142164
let version = App.shared.availablePhpVersions[index]
143165
App.shared.busy = true

0 commit comments

Comments
 (0)