aboutsummaryrefslogtreecommitdiffstats
path: root/Low Battery Yup/DaemonLauncher.m
diff options
context:
space:
mode:
Diffstat (limited to 'Low Battery Yup/DaemonLauncher.m')
-rw-r--r--Low Battery Yup/DaemonLauncher.m59
1 files changed, 59 insertions, 0 deletions
diff --git a/Low Battery Yup/DaemonLauncher.m b/Low Battery Yup/DaemonLauncher.m
new file mode 100644
index 0000000..355e9fd
--- /dev/null
+++ b/Low Battery Yup/DaemonLauncher.m
@@ -0,0 +1,59 @@
+//
+// DaemonLauncher.m
+// Low Battery Yup.d
+//
+// Created by TW on 12/2/16.
+// Copyright (c) 2016 TW. All rights reserved.
+//
+
+#import "DaemonLauncher.h"
+
+@implementation DaemonLauncher
+
+- (BOOL)launch
+{
+ NSURL *daemon_url = [[NSBundle mainBundle] URLForResource:@"Low Battery Yup.d" withExtension:@"app"];
+
+ NSError *error = nil;
+ [[NSWorkspace sharedWorkspace]
+ launchApplicationAtURL:daemon_url
+ options:NSWorkspaceLaunchWithoutAddingToRecents | NSWorkspaceLaunchWithoutActivation
+ configuration:nil
+ error:&error];
+
+ if (error != nil) {
+ NSLog(@"%@", error);
+ return NO;
+ }
+
+ return YES;
+}
+
+- (BOOL)quit
+{
+ NSArray *applications = [NSRunningApplication
+ runningApplicationsWithBundleIdentifier:@"com.teddywing.Low-Battery-Yup-d"];
+
+ if ([applications count] > 0) {
+ NSRunningApplication *daemon = [applications objectAtIndex:0];
+ return [daemon terminate];
+ }
+
+ return NO;
+}
+
+- (BOOL)isRunning
+{
+ NSArray *runningApplications = [[NSWorkspace sharedWorkspace] runningApplications];
+
+ for (int i = 0; i < [runningApplications count]; i++) {
+ if ([[[runningApplications objectAtIndex:i] bundleIdentifier]
+ isEqualToString:@"com.teddywing.Low-Battery-Yup-d"]) {
+ return YES;
+ }
+ }
+
+ return NO;
+}
+
+@end