20 lines
810 B
Swift
20 lines
810 B
Swift
// SPDX-License-Identifier: MIT
|
|
// Copyright © 2018-2021 WireGuard LLC. All Rights Reserved.
|
|
|
|
import Cocoa
|
|
|
|
class LaunchedAtLoginDetector {
|
|
static func isLaunchedAtLogin(openAppleEvent: NSAppleEventDescriptor) -> Bool {
|
|
let now = clock_gettime_nsec_np(CLOCK_UPTIME_RAW)
|
|
guard openAppleEvent.eventClass == kCoreEventClass && openAppleEvent.eventID == kAEOpenApplication else { return false }
|
|
guard let url = FileManager.loginHelperTimestampURL else { return false }
|
|
guard let data = try? Data(contentsOf: url) else { return false }
|
|
_ = FileManager.deleteFile(at: url)
|
|
guard data.count == 8 else { return false }
|
|
let then = data.withUnsafeBytes { ptr in
|
|
ptr.load(as: UInt64.self)
|
|
}
|
|
return now - then <= 20000000000
|
|
}
|
|
}
|