mirror of
https://github.com/nicoverbruggen/phpmon.git
synced 2025-08-07 20:10:08 +02:00
This change allows for errors to be thrown during the `asyncExecution` initial callback, and if one is thrown, allows a `failure` callback to be used. Existing instances of `waitAndExecute` have been replaced. I also added the ability to tweak the behaviours of the actions that are always performed when the asyncExecution method is called: you can now specify limited behaviours (e.g. only set busy icon). For that use case I have already created a new method: `asyncWithBusyUI`. With this change, the handling of the Homebrew Permissions flow has also been modified: when the user does not get administrative permissions an error is now thrown which results in an alert being presented to the user once the error occurs. There is now an opportunity to further refactor other parts of the app to more gracefully handle failure states using the Error and AlertableError protocols.
22 lines
485 B
Swift
22 lines
485 B
Swift
//
|
|
// HomebrewPermissionError.swift
|
|
// PHP Monitor
|
|
//
|
|
// Created by Nico Verbruggen on 06/02/2022.
|
|
// Copyright © 2022 Nico Verbruggen. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
struct HomebrewPermissionError: Error, AlertableError {
|
|
enum Kind: String {
|
|
case applescriptNilError = "homebrew_permissions.applescript_returned_nil"
|
|
}
|
|
|
|
let kind: Kind
|
|
|
|
func getErrorMessageKey() -> String {
|
|
return "alert.errors.\(self.kind.rawValue)"
|
|
}
|
|
}
|