class TerminalScript {
static func executeInTerminal(_ command: String?) {
guard let command = command, !command.isEmpty else {
return
}
let scriptText =
"""
tell application "Terminal"
if not (exists window 1) then reopen
activate
do script "\(command)" in front window
end tell
"""
let script = NSAppleScript(source: scriptText)
var error: NSDictionary?
script?.executeAndReturnError(&error)
guard var errorMessage = error?["NSAppleScriptErrorBriefMessage"] as? String else {
return
}
if let errorNumber = error?["NSAppleScriptErrorNumber"] as? NSNumber,
errorNumber == NSNumber(integerLiteral: -1728) {
errorMessage = "Please open Terminal app"
}
let alert = NSAlert()
alert.messageText = "Something went wrong"
alert.informativeText = errorMessage
alert.alertStyle = NSAlert.Style.warning
alert.addButton(withTitle: "OK")
alert.runModal()
}
}