#import #import char* getVersion (NSString *path) { NSDictionary *infoDict = [[NSBundle bundleWithPath:path] infoDictionary]; NSString *version = ([infoDict valueForKey:@"CFBundleVersion"] != nil) ? [infoDict valueForKey:@"CFBundleVersion"] : @"n/a"; return [version UTF8String]; } int main (int argc, const char *argv[]) { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; NSFileManager *fm = [NSFileManager defaultManager]; NSWorkspace *ws = [NSWorkspace sharedWorkspace]; if (argc < 2) { printf ("Usage: %s bundle_id | bundle_path\n", basename (argv[0])); exit (1); } NSString *arg = [NSString stringWithUTF8String:argv[1]]; if ([ws isFilePackageAtPath:arg]) { printf ("* %s\n", getVersion (arg)); exit (0); } NSArray *fA = [fm directoryContentsAtPath:[NSHomeDirectory() stringByAppendingString:@"/Library/Preferences"]]; int i; for (i = 0; i < [fA count]; i++) { NSString *plist = [[fA objectAtIndex:i] stringByDeletingPathExtension]; if ([plist hasPrefix:arg]) { printf ("* %s: %s\n", [plist UTF8String], getVersion ([ws absolutePathForAppBundleWithIdentifier:plist])); } } [pool release]; return 0; }