Files
iceglass/IceGlass/Lib/AppTerminator.swift
T
rzen 8f8f8b2755 Initial commit: IceGlass NHL game tracker
macOS menu bar app providing NHL game situational awareness with
league-wide scoreboard, dynamic polling, notifications with team
logos, and configurable display options.
2026-04-13 21:44:08 -04:00

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)
}
}
}