Skip to content

Instantly share code, notes, and snippets.

@joshuatbrown
Forked from madrobby/gist:9f134c440bd6524e7e7a
Last active November 25, 2020 19:39

Revisions

  1. joshuatbrown revised this gist May 8, 2014. 1 changed file with 1 addition and 2 deletions.
    3 changes: 1 addition & 2 deletions gistfile1.m
    Original file line number Diff line number Diff line change
    @@ -3,8 +3,7 @@ -(BOOL)appIsPresentInLoginItems
    NSString *bundleID = @"blah";
    NSArray *jobDicts = (__bridge NSArray *)SMCopyAllJobDictionaries( kSMDomainUserLaunchd );

    NSPredicate *predicate = [NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings)
    {
    NSPredicate *predicate = [NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings) {
    return [[evaluatedObject valueForKey:@"Label"] isEqualToString:bundleID] && [[evaluatedObject valueForKey:@"OnDemand"] boolValue];
    }];

  2. joshuatbrown revised this gist May 8, 2014. 1 changed file with 7 additions and 19 deletions.
    26 changes: 7 additions & 19 deletions gistfile1.m
    Original file line number Diff line number Diff line change
    @@ -1,24 +1,12 @@
    -(BOOL)appIsPresentInLoginItems
    {
    NSString *bundleID = @"blah";
    NSArray * jobDicts = nil;
    jobDicts = (NSArray *)SMCopyAllJobDictionaries( kSMDomainUserLaunchd );
    NSArray *jobDicts = (__bridge NSArray *)SMCopyAllJobDictionaries( kSMDomainUserLaunchd );

    if ( (jobDicts != nil) && [jobDicts count] > 0 ) {

    BOOL bOnDemand = NO;

    for ( NSDictionary * job in jobDicts ) {

    if ( [bundleID isEqualToString:[job objectForKey:@"Label"]] ) {
    bOnDemand = [[job objectForKey:@"OnDemand"] boolValue];
    break;
    }
    }

    CFRelease((CFDictionaryRef)jobDicts); jobDicts = nil;
    return bOnDemand;

    }
    return NO;
    NSPredicate *predicate = [NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings)
    {
    return [[evaluatedObject valueForKey:@"Label"] isEqualToString:bundleID] && [[evaluatedObject valueForKey:@"OnDemand"] boolValue];
    }];

    return [[jobDicts filteredArrayUsingPredicate:predicate] count] >= 1;
    }
  3. @madrobby madrobby revised this gist May 8, 2014. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions gistfile2.rb
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,7 @@
    HELPER_BUNDLE_ID = 'blah'

    def launchesAtLogin?
    !SMCopyAllJobDictionaries(KSMDomainUserLaunchd).detect do |job|
    SMCopyAllJobDictionaries(KSMDomainUserLaunchd).any? do |job|
    job['Label'] == HELPER_BUNDLE_ID && job['OnDemand']
    end.nil?
    end
    end
  4. @madrobby madrobby created this gist May 8, 2014.
    24 changes: 24 additions & 0 deletions gistfile1.m
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,24 @@
    -(BOOL)appIsPresentInLoginItems
    {
    NSString *bundleID = @"blah";
    NSArray * jobDicts = nil;
    jobDicts = (NSArray *)SMCopyAllJobDictionaries( kSMDomainUserLaunchd );

    if ( (jobDicts != nil) && [jobDicts count] > 0 ) {

    BOOL bOnDemand = NO;

    for ( NSDictionary * job in jobDicts ) {

    if ( [bundleID isEqualToString:[job objectForKey:@"Label"]] ) {
    bOnDemand = [[job objectForKey:@"OnDemand"] boolValue];
    break;
    }
    }

    CFRelease((CFDictionaryRef)jobDicts); jobDicts = nil;
    return bOnDemand;

    }
    return NO;
    }
    7 changes: 7 additions & 0 deletions gistfile2.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,7 @@
    HELPER_BUNDLE_ID = 'blah'

    def launchesAtLogin?
    !SMCopyAllJobDictionaries(KSMDomainUserLaunchd).detect do |job|
    job['Label'] == HELPER_BUNDLE_ID && job['OnDemand']
    end.nil?
    end