mirror of
https://github.com/nicoverbruggen/phpmon.git
synced 2025-11-06 12:50:06 +01:00
👌 Avoid certain things when Valet-less
This commit is contained in:
@@ -28,7 +28,7 @@ class InternalSwitcher: PhpSwitcher {
|
|||||||
for available in PhpEnv.shared.availablePhpVersions {
|
for available in PhpEnv.shared.availablePhpVersions {
|
||||||
group.addTask {
|
group.addTask {
|
||||||
await self.disableDefaultPhpFpmPool(available)
|
await self.disableDefaultPhpFpmPool(available)
|
||||||
await self.stopPhpVersion(available)
|
await self.unlinkAndStopPhpVersion(available)
|
||||||
return available
|
return available
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -43,11 +43,13 @@ class InternalSwitcher: PhpSwitcher {
|
|||||||
|
|
||||||
for formula in versions {
|
for formula in versions {
|
||||||
Log.info("Will start PHP \(version)... (primary: \(version == formula))")
|
Log.info("Will start PHP \(version)... (primary: \(version == formula))")
|
||||||
await self.startPhpVersion(formula, primary: (version == formula))
|
await self.linkAndStartPhpVersion(formula, primary: (version == formula))
|
||||||
}
|
}
|
||||||
|
|
||||||
Log.info("Restarting nginx, just to be sure!")
|
if Valet.installed {
|
||||||
await brew("services restart nginx", sudo: true)
|
Log.info("Restarting nginx, just to be sure!")
|
||||||
|
await brew("services restart nginx", sudo: true)
|
||||||
|
}
|
||||||
|
|
||||||
Log.info("The new version(s) have been linked!")
|
Log.info("The new version(s) have been linked!")
|
||||||
})
|
})
|
||||||
@@ -75,6 +77,12 @@ class InternalSwitcher: PhpSwitcher {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func disableDefaultPhpFpmPool(_ version: String) async {
|
func disableDefaultPhpFpmPool(_ version: String) async {
|
||||||
|
if Valet.installed {
|
||||||
|
Log.info("Skipping adjustment of php-fpm.d pools, because Valet is disabled or not installed.")
|
||||||
|
Log.info("This behaviour may not be desirable with this system configuration.")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
let pool = "\(Paths.etcPath)/php/\(version)/php-fpm.d/www.conf"
|
let pool = "\(Paths.etcPath)/php/\(version)/php-fpm.d/www.conf"
|
||||||
if FileSystem.fileExists(pool) {
|
if FileSystem.fileExists(pool) {
|
||||||
Log.info("A default `www.conf` file was found in the php-fpm.d directory for PHP \(version).")
|
Log.info("A default `www.conf` file was found in the php-fpm.d directory for PHP \(version).")
|
||||||
@@ -94,31 +102,36 @@ class InternalSwitcher: PhpSwitcher {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func stopPhpVersion(_ version: String) async {
|
func unlinkAndStopPhpVersion(_ version: String) async {
|
||||||
let formula = (version == PhpEnv.brewPhpAlias) ? "php" : "php@\(version)"
|
let formula = (version == PhpEnv.brewPhpAlias) ? "php" : "php@\(version)"
|
||||||
await brew("unlink \(formula)")
|
await brew("unlink \(formula)")
|
||||||
await brew("services stop \(formula)", sudo: true)
|
|
||||||
Log.info("Unlinked and stopped services for \(formula)")
|
if Valet.installed {
|
||||||
|
await brew("services stop \(formula)", sudo: true)
|
||||||
|
Log.info("Unlinked and stopped services for \(formula)")
|
||||||
|
} else {
|
||||||
|
Log.info("Unlinked \(formula)")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func startPhpVersion(_ version: String, primary: Bool) async {
|
func linkAndStartPhpVersion(_ version: String, primary: Bool) async {
|
||||||
let formula = (version == PhpEnv.brewPhpAlias) ? "php" : "php@\(version)"
|
let formula = (version == PhpEnv.brewPhpAlias) ? "php" : "php@\(version)"
|
||||||
|
|
||||||
if primary {
|
if primary {
|
||||||
Log.info("\(formula) is the primary formula, linking and starting services...")
|
Log.info("\(formula) is the primary formula, linking...")
|
||||||
await brew("link \(formula) --overwrite --force")
|
await brew("link \(formula) --overwrite --force")
|
||||||
} else {
|
} else {
|
||||||
Log.info("\(formula) is an isolated PHP version, starting services only...")
|
Log.info("\(formula) is an isolated PHP version, not linking!")
|
||||||
}
|
}
|
||||||
|
|
||||||
await brew("services start \(formula)", sudo: true)
|
if Valet.installed {
|
||||||
|
await brew("services start \(formula)", sudo: true)
|
||||||
|
}
|
||||||
|
|
||||||
if Valet.enabled(feature: .isolatedSites) && primary {
|
if Valet.enabled(feature: .isolatedSites) && primary {
|
||||||
let socketVersion = version.replacingOccurrences(of: ".", with: "")
|
let socketVersion = version.replacingOccurrences(of: ".", with: "")
|
||||||
await Shell.quiet("ln -sF ~/.config/valet/valet\(socketVersion).sock ~/.config/valet/valet.sock")
|
await Shell.quiet("ln -sF ~/.config/valet/valet\(socketVersion).sock ~/.config/valet/valet.sock")
|
||||||
Log.info("Symlinked new socket version (valet\(socketVersion).sock → valet.sock).")
|
Log.info("Symlinked new socket version (valet\(socketVersion).sock → valet.sock).")
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -88,8 +88,8 @@ class HomebrewDiagnostics {
|
|||||||
versions.forEach { version in
|
versions.forEach { version in
|
||||||
Task { // Fix each pool concurrently (but perform the tasks sequentially)
|
Task { // Fix each pool concurrently (but perform the tasks sequentially)
|
||||||
await switcher.disableDefaultPhpFpmPool(version)
|
await switcher.disableDefaultPhpFpmPool(version)
|
||||||
await switcher.stopPhpVersion(version)
|
await switcher.unlinkAndStopPhpVersion(version)
|
||||||
await switcher.startPhpVersion(version, primary: version == primary)
|
await switcher.linkAndStartPhpVersion(version, primary: version == primary)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,9 @@ extension MainMenu {
|
|||||||
PhpEnv.shared.isBusy = false
|
PhpEnv.shared.isBusy = false
|
||||||
|
|
||||||
Task { // Things to do after reloading domain list data
|
Task { // Things to do after reloading domain list data
|
||||||
await self.reloadDomainListData()
|
if Valet.installed {
|
||||||
|
await self.reloadDomainListData()
|
||||||
|
}
|
||||||
|
|
||||||
// Perform UI updates on main thread
|
// Perform UI updates on main thread
|
||||||
Task { @MainActor [self] in
|
Task { @MainActor [self] in
|
||||||
|
|||||||
@@ -286,42 +286,54 @@ extension StatusMenu {
|
|||||||
func addFirstAidAndServicesMenuItems() {
|
func addFirstAidAndServicesMenuItems() {
|
||||||
let services = NSMenuItem(title: "mi_other".localized)
|
let services = NSMenuItem(title: "mi_other".localized)
|
||||||
|
|
||||||
let servicesMenu = NSMenu()
|
var items: [NSMenuItem] = [
|
||||||
servicesMenu.addItems([
|
|
||||||
// FIRST AID
|
// FIRST AID
|
||||||
HeaderView.asMenuItem(text: "mi_first_aid".localized),
|
HeaderView.asMenuItem(text: "mi_first_aid".localized),
|
||||||
NSMenuItem(title: "mi_view_onboarding".localized, action: #selector(MainMenu.showWelcomeTour)),
|
NSMenuItem(title: "mi_view_onboarding".localized, action: #selector(MainMenu.showWelcomeTour)),
|
||||||
NSMenuItem(title: "mi_fa_php_doctor".localized, action: #selector(MainMenu.openWarnings)),
|
NSMenuItem(title: "mi_fa_php_doctor".localized, action: #selector(MainMenu.openWarnings))
|
||||||
NSMenuItem.separator(),
|
]
|
||||||
NSMenuItem(title: "mi_fix_my_valet".localized(PhpEnv.brewPhpAlias),
|
|
||||||
action: #selector(MainMenu.fixMyValet),
|
|
||||||
toolTip: "mi_fix_my_valet_tooltip".localized),
|
|
||||||
NSMenuItem(title: "mi_fix_brew_permissions".localized(), action: #selector(MainMenu.fixHomebrewPermissions),
|
|
||||||
toolTip: "mi_fix_brew_permissions_tooltip".localized),
|
|
||||||
NSMenuItem.separator(),
|
|
||||||
|
|
||||||
// SERVICES
|
if Valet.installed {
|
||||||
HeaderView.asMenuItem(text: "mi_services".localized),
|
items.append(contentsOf: [
|
||||||
NSMenuItem(title: "mi_restart_dnsmasq".localized, action: #selector(MainMenu.restartDnsMasq),
|
NSMenuItem.separator(),
|
||||||
keyEquivalent: "d"),
|
NSMenuItem(title: "mi_fix_my_valet".localized(PhpEnv.brewPhpAlias),
|
||||||
NSMenuItem(title: "mi_restart_php_fpm".localized, action: #selector(MainMenu.restartPhpFpm),
|
action: #selector(MainMenu.fixMyValet),
|
||||||
keyEquivalent: "p"),
|
toolTip: "mi_fix_my_valet_tooltip".localized),
|
||||||
NSMenuItem(title: "mi_restart_nginx".localized, action: #selector(MainMenu.restartNginx),
|
NSMenuItem(title: "mi_fix_brew_permissions".localized(),
|
||||||
keyEquivalent: "n"),
|
action: #selector(MainMenu.fixHomebrewPermissions),
|
||||||
NSMenuItem(title: "mi_restart_valet_services".localized, action: #selector(MainMenu.restartValetServices),
|
toolTip: "mi_fix_brew_permissions_tooltip".localized),
|
||||||
keyEquivalent: "s"),
|
NSMenuItem.separator(),
|
||||||
NSMenuItem(title: "mi_stop_valet_services".localized, action: #selector(MainMenu.stopValetServices),
|
|
||||||
keyEquivalent: "s",
|
|
||||||
keyModifier: [.command, .shift]),
|
|
||||||
NSMenuItem.separator(),
|
|
||||||
|
|
||||||
|
// SERVICES
|
||||||
|
HeaderView.asMenuItem(text: "mi_services".localized),
|
||||||
|
NSMenuItem(title: "mi_restart_dnsmasq".localized, action: #selector(MainMenu.restartDnsMasq),
|
||||||
|
keyEquivalent: "d"),
|
||||||
|
NSMenuItem(title: "mi_restart_php_fpm".localized, action: #selector(MainMenu.restartPhpFpm),
|
||||||
|
keyEquivalent: "p"),
|
||||||
|
NSMenuItem(title: "mi_restart_nginx".localized, action: #selector(MainMenu.restartNginx),
|
||||||
|
keyEquivalent: "n"),
|
||||||
|
NSMenuItem(title: "mi_restart_valet_services".localized,
|
||||||
|
action: #selector(MainMenu.restartValetServices),
|
||||||
|
keyEquivalent: "s"),
|
||||||
|
NSMenuItem(title: "mi_stop_valet_services".localized, action: #selector(MainMenu.stopValetServices),
|
||||||
|
keyEquivalent: "s",
|
||||||
|
keyModifier: [.command, .shift]),
|
||||||
|
NSMenuItem.separator()
|
||||||
|
])
|
||||||
|
} else {
|
||||||
|
items.append(NSMenuItem.separator())
|
||||||
|
}
|
||||||
|
|
||||||
|
items.append(contentsOf: [
|
||||||
// MANUAL ACTIONS
|
// MANUAL ACTIONS
|
||||||
HeaderView.asMenuItem(text: "mi_manual_actions".localized),
|
HeaderView.asMenuItem(text: "mi_manual_actions".localized),
|
||||||
NSMenuItem(title: "mi_php_refresh".localized,
|
NSMenuItem(title: "mi_php_refresh".localized,
|
||||||
action: #selector(MainMenu.reloadPhpMonitorMenuInForeground),
|
action: #selector(MainMenu.reloadPhpMonitorMenuInForeground),
|
||||||
keyEquivalent: "r")
|
keyEquivalent: "r")
|
||||||
], target: MainMenu.shared)
|
])
|
||||||
|
|
||||||
|
let servicesMenu = NSMenu()
|
||||||
|
servicesMenu.addItems(items, target: MainMenu.shared)
|
||||||
setSubmenu(servicesMenu, for: services)
|
setSubmenu(servicesMenu, for: services)
|
||||||
addItem(services)
|
addItem(services)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ class StatusMenu: NSMenu {
|
|||||||
addItem(NSMenuItem.separator())
|
addItem(NSMenuItem.separator())
|
||||||
}
|
}
|
||||||
|
|
||||||
if PhpEnv.phpInstall != nil && Preferences.isEnabled(.displayServicesManager) {
|
if PhpEnv.phpInstall != nil && Valet.installed && Preferences.isEnabled(.displayServicesManager) {
|
||||||
addServicesManagerMenuItem()
|
addServicesManagerMenuItem()
|
||||||
addItem(NSMenuItem.separator())
|
addItem(NSMenuItem.separator())
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user