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

👌 Improved parallelization

This commit is contained in:
2021-04-14 19:40:07 +02:00
parent e83d507e79
commit fb56cd551e
2 changed files with 11 additions and 13 deletions

View File

@@ -99,16 +99,13 @@ class Actions {
availableVersions: [String],
completed: @escaping () -> Void
) {
print("Switching to \(version)")
print("Switching to \(version), unlinking all versions...")
let group = DispatchGroup()
group.enter()
var versionsDisabled: [String: Bool] = [:]
availableVersions.forEach { (available) in
versionsDisabled[available] = false
}
availableVersions.forEach { (available) in
group.enter()
DispatchQueue.global(qos: .userInitiated).async {
let formula = (available == App.shared.brewPhpVersion)
? "php" : "php@\(available)"
@@ -116,18 +113,19 @@ class Actions {
brew("unlink \(formula)")
brew("services stop \(formula)", sudo: true)
versionsDisabled[available] = true
if !versionsDisabled.values.contains(false) {
group.leave()
}
group.leave()
}
}
group.notify(queue: .global(qos: .userInitiated)) {
print("All versions have been unlinked!")
print("Linking the new version!")
let formula = (version == App.shared.brewPhpVersion) ? "php" : "php@\(version)"
brew("link \(formula) --overwrite --force")
brew("services start \(formula)", sudo: true)
print("The new version has been linked!")
completed()
}
}