diff --git a/Framework/PCFileManager.m b/Framework/PCFileManager.m index e9324f5..96879a7 100644 --- a/Framework/PCFileManager.m +++ b/Framework/PCFileManager.m @@ -330,6 +330,42 @@ static PCFileManager *_mgr = nil; return YES; } +// =========================================================================== +// ==== Find Executable +// Tries to find the first matching executable tool fromt he given, nil-terminated +// list. Returns the full path for it. +// =========================================================================== +- (NSString*) findExecutableToolFrom: (NSArray*)candidates +{ + NSFileManager *manager; + NSEnumerator *relPath; + NSEnumerator *pathEnumerator; + NSString *directory; + + manager = [NSFileManager defaultManager]; + pathEnumerator = [NSSearchPathForDirectoriesInDomains(NSDeveloperDirectory, NSAllDomainsMask, YES) objectEnumerator]; + + while (nil != (directory = [pathEnumerator nextObject])) + { + NSEnumerator *candidateEnumerator = [candidates objectEnumerator]; + NSString *candidate; + + while (nil != (candidate = [candidateEnumerator nextObject])) + { + NSString *path = [directory stringByAppendingPathComponent: candidate]; + + NSLog(@"final candidate path is: %@", path); + + if ([manager isExecutableFileAtPath: path]) + { + return path; + } + } + } + return nil; +} + + @end @implementation PCFileManager (UInterface) diff --git a/Headers/ProjectCenter/PCFileManager.h b/Headers/ProjectCenter/PCFileManager.h index 1f59a73..c9f9c90 100644 --- a/Headers/ProjectCenter/PCFileManager.h +++ b/Headers/ProjectCenter/PCFileManager.h @@ -1,7 +1,7 @@ /* GNUstep ProjectCenter - http://www.gnustep.org/experience/ProjectCenter.html - Copyright (C) 2000-2004 Free Software Foundation + Copyright (C) 2000-2014 Free Software Foundation Authors: Philippe C.D. Robert Serg Stoyan @@ -112,6 +112,9 @@ enum { - (BOOL)moveFile:(NSString *)file intoDirectory:(NSString *)directory; +// find an executable from list and return full path +- (NSString*) findExecutableToolFrom: (NSArray*)candidates; + @end @interface PCFileManager (UInterface)