From 0ba2e4107bf878e258eb2e84728c188c378a1464 Mon Sep 17 00:00:00 2001 From: Max Goedjen <max.goedjen@gmail.com> Date: Wed, 11 Nov 2020 16:34:11 -0800 Subject: [PATCH] Add force launch. --- Secretive/Controllers/LaunchAgentController.swift | 15 +++++++++++++++ 1 file changed, 15 insertions(+) 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) }