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.
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
//
|
||||
// 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)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user