diff --git a/Secretive/Controllers/LaunchAgentController.swift b/Secretive/Controllers/LaunchAgentController.swift index 10b9150..9c000eb 100644 --- a/Secretive/Controllers/LaunchAgentController.swift +++ b/Secretive/Controllers/LaunchAgentController.swift @@ -1,13 +1,28 @@ import Foundation import ServiceManagement +import AppKit +import OSLog struct LaunchAgentController { func install() -> Bool { + Logger().debug("Installing agent") _ = setEnabled(false) return setEnabled(true) } + func forceLaunch() { + Logger().debug("Agent is not running, attempting to force launch") + let url = Bundle.main.bundleURL.appendingPathComponent("Contents/Library/LoginItems/SecretAgent.app") + NSWorkspace.shared.openApplication(at: url, configuration: NSWorkspace.OpenConfiguration()) { app, error in + if let error = error { + Logger().error("Error force launching \(error.localizedDescription)") + } else { + Logger().debug("Agent force launched") + } + } + } + private func setEnabled(_ enabled: Bool) -> Bool { SMLoginItemSetEnabled("com.maxgoedjen.Secretive.SecretAgent" as CFString, enabled) }