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