aboutsummaryrefslogtreecommitdiff
path: root/Carthage/Checkouts/LaunchAtLogin/LaunchAtLoginHelper/main.swift
diff options
context:
space:
mode:
authorFivePixels <o5pxels@gmail.com>2019-01-07 20:13:47 -0600
committerFivePixels <o5pxels@gmail.com>2019-01-07 20:13:47 -0600
commit33590b7c5b66d4a8abf043f0edd4e32dbd39795c (patch)
tree23bb3fb6e9b11dc788a4b7496a8157ca54008f52 /Carthage/Checkouts/LaunchAtLogin/LaunchAtLoginHelper/main.swift
parentac6f551c70d67afe5a76dcfdafcde7eda7748b79 (diff)
downloaddwa140shortcut-33590b7c5b66d4a8abf043f0edd4e32dbd39795c.tar.xz
dwa140shortcut-33590b7c5b66d4a8abf043f0edd4e32dbd39795c.zip
meet?
Diffstat (limited to 'Carthage/Checkouts/LaunchAtLogin/LaunchAtLoginHelper/main.swift')
-rw-r--r--Carthage/Checkouts/LaunchAtLogin/LaunchAtLoginHelper/main.swift25
1 files changed, 25 insertions, 0 deletions
diff --git a/Carthage/Checkouts/LaunchAtLogin/LaunchAtLoginHelper/main.swift b/Carthage/Checkouts/LaunchAtLogin/LaunchAtLoginHelper/main.swift
new file mode 100644
index 0000000..ad7fd4f
--- /dev/null
+++ b/Carthage/Checkouts/LaunchAtLogin/LaunchAtLoginHelper/main.swift
@@ -0,0 +1,25 @@
+import Cocoa
+
+final class AppDelegate: NSObject, NSApplicationDelegate {
+ func applicationDidFinishLaunching(_ notification: Notification) {
+ let bundleId = Bundle.main.bundleIdentifier!
+ // TODO: Make this more strict by only replacing at the end
+ let mainBundleId = bundleId.replacingOccurrences(of: "-LaunchAtLoginHelper", with: "")
+
+ // Ensure the app is not already running
+ guard NSRunningApplication.runningApplications(withBundleIdentifier: mainBundleId).isEmpty else {
+ NSApp.terminate(nil)
+ return
+ }
+
+ let pathComponents = (Bundle.main.bundlePath as NSString).pathComponents
+ let mainPath = NSString.path(withComponents: Array(pathComponents[0...(pathComponents.count - 5)]))
+ NSWorkspace.shared.launchApplication(mainPath)
+ NSApp.terminate(nil)
+ }
+}
+
+private let app = NSApplication.shared
+private let delegate = AppDelegate()
+app.delegate = delegate
+app.run()