8f8f8b2755
macOS menu bar app providing NHL game situational awareness with league-wide scoreboard, dynamic polling, notifications with team logos, and configurable display options.
34 lines
877 B
Swift
34 lines
877 B
Swift
//
|
|
// AppTerminator.swift
|
|
// IceGlass
|
|
//
|
|
// Copyright 2026 Rouslan Zenetl. All Rights Reserved.
|
|
//
|
|
|
|
import AppKit
|
|
|
|
final class AppTerminator {
|
|
static func terminate(
|
|
title: String = "Critical Error",
|
|
message: String = "The application failed to initialize properly and must close."
|
|
) {
|
|
DispatchQueue.main.async {
|
|
let logger = IceGlassLogger(
|
|
subsystem: Bundle.main.bundleIdentifier ?? "dev.rzen.indie.IceGlass",
|
|
category: "AppTerminator"
|
|
)
|
|
|
|
logger.error("\(title): \(message)")
|
|
|
|
let alert = NSAlert()
|
|
alert.messageText = title
|
|
alert.informativeText = message
|
|
alert.alertStyle = .critical
|
|
alert.addButton(withTitle: "OK")
|
|
alert.runModal()
|
|
|
|
NSApplication.shared.terminate(nil)
|
|
}
|
|
}
|
|
}
|