mirror of
https://github.com/nicoverbruggen/phpmon.git
synced 2025-08-07 03:50:08 +02: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 {
|
||||
group.addTask {
|
||||
await self.disableDefaultPhpFpmPool(available)
|
||||
await self.stopPhpVersion(available)
|
||||
await self.unlinkAndStopPhpVersion(available)
|
||||
return available
|
||||
}
|
||||
}
|
||||
@ -43,11 +43,13 @@ class InternalSwitcher: PhpSwitcher {
|
||||
|
||||
for formula in versions {
|
||||
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!")
|
||||
await brew("services restart nginx", sudo: true)
|
||||
if Valet.installed {
|
||||
Log.info("Restarting nginx, just to be sure!")
|
||||
await brew("services restart nginx", sudo: true)
|
||||
}
|
||||
|
||||
Log.info("The new version(s) have been linked!")
|
||||
})
|
||||
@ -75,6 +77,12 @@ class InternalSwitcher: PhpSwitcher {
|
||||
}
|
||||
|
||||
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"
|
||||
if FileSystem.fileExists(pool) {
|
||||
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)"
|
||||
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)"
|
||||
|
||||
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")
|
||||
} 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 {
|
||||
let socketVersion = version.replacingOccurrences(of: ".", with: "")
|
||||
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).")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -88,8 +88,8 @@ class HomebrewDiagnostics {
|
||||
versions.forEach { version in
|
||||
Task { // Fix each pool concurrently (but perform the tasks sequentially)
|
||||
await switcher.disableDefaultPhpFpmPool(version)
|
||||
await switcher.stopPhpVersion(version)
|
||||
await switcher.startPhpVersion(version, primary: version == primary)
|
||||
await switcher.unlinkAndStopPhpVersion(version)
|
||||
await switcher.linkAndStartPhpVersion(version, primary: version == primary)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -19,7 +19,9 @@ extension MainMenu {
|
||||
PhpEnv.shared.isBusy = false
|
||||
|
||||
Task { // Things to do after reloading domain list data
|
||||
await self.reloadDomainListData()
|
||||
if Valet.installed {
|
||||
await self.reloadDomainListData()
|
||||
}
|
||||
|
||||
// Perform UI updates on main thread
|
||||
Task { @MainActor [self] in
|
||||
|
@ -286,42 +286,54 @@ extension StatusMenu {
|
||||
func addFirstAidAndServicesMenuItems() {
|
||||
let services = NSMenuItem(title: "mi_other".localized)
|
||||
|
||||
let servicesMenu = NSMenu()
|
||||
servicesMenu.addItems([
|
||||
var items: [NSMenuItem] = [
|
||||
// FIRST AID
|
||||
HeaderView.asMenuItem(text: "mi_first_aid".localized),
|
||||
NSMenuItem(title: "mi_view_onboarding".localized, action: #selector(MainMenu.showWelcomeTour)),
|
||||
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(),
|
||||
NSMenuItem(title: "mi_fa_php_doctor".localized, action: #selector(MainMenu.openWarnings))
|
||||
]
|
||||
|
||||
// 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(),
|
||||
if Valet.installed {
|
||||
items.append(contentsOf: [
|
||||
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
|
||||
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
|
||||
HeaderView.asMenuItem(text: "mi_manual_actions".localized),
|
||||
NSMenuItem(title: "mi_php_refresh".localized,
|
||||
action: #selector(MainMenu.reloadPhpMonitorMenuInForeground),
|
||||
keyEquivalent: "r")
|
||||
], target: MainMenu.shared)
|
||||
])
|
||||
|
||||
let servicesMenu = NSMenu()
|
||||
servicesMenu.addItems(items, target: MainMenu.shared)
|
||||
setSubmenu(servicesMenu, for: services)
|
||||
addItem(services)
|
||||
}
|
||||
|
@ -17,7 +17,7 @@ class StatusMenu: NSMenu {
|
||||
addItem(NSMenuItem.separator())
|
||||
}
|
||||
|
||||
if PhpEnv.phpInstall != nil && Preferences.isEnabled(.displayServicesManager) {
|
||||
if PhpEnv.phpInstall != nil && Valet.installed && Preferences.isEnabled(.displayServicesManager) {
|
||||
addServicesManagerMenuItem()
|
||||
addItem(NSMenuItem.separator())
|
||||
}
|
||||
|
Reference in New Issue
Block a user