Skip to content

Commit d08dd2c

Browse files
committed
Improve AppleScript load error reporting
1 parent b2488ad commit d08dd2c

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

AirMessage/AppleScript/AppleScriptBridge.swift

+18-3
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import Foundation
99
import AppKit
1010
import Carbon
11+
import Sentry
1112

1213
class AppleScriptBridge {
1314
enum ScriptSourceCategory: String {
@@ -17,9 +18,23 @@ class AppleScriptBridge {
1718
}
1819

1920
private static func getScript(_ name: String, ofCategory category: ScriptSourceCategory) -> NSAppleScript {
20-
NSAppleScript.init(
21-
contentsOf: Bundle.main.url(forResource: name, withExtension: "applescript", subdirectory: "AppleScriptSource/\(category.rawValue)")!,
22-
error: nil)!
21+
let resourceName = "AppleScriptSource/\(category.rawValue)/\(name).applescript"
22+
23+
guard let url = Bundle.main.url(forResource: name, withExtension: "applescript", subdirectory: "AppleScriptSource/\(category.rawValue)") else {
24+
let message = "Failed to load resource: \(resourceName)"
25+
LogManager.log(message, level: .error)
26+
SentrySDK.capture(message: message)
27+
exit(EXIT_FAILURE)
28+
}
29+
30+
guard let appleScript = NSAppleScript(contentsOf: url, error: nil) else {
31+
let message = "Failed to initialize AppleScript: \(resourceName)"
32+
LogManager.log(message, level: .error)
33+
SentrySDK.capture(message: message)
34+
exit(EXIT_FAILURE)
35+
}
36+
37+
return appleScript
2338
}
2439

2540
@discardableResult

0 commit comments

Comments
 (0)