1 #import <Foundation/Foundation.h>
2 #import <SystemConfiguration/SCDynamicStoreCopySpecific.h>
4 // Begin the nasty hack so that I can easily print out NSStrings to stdout
5 void fNSPrint(NSString * outputFilename, NSString * str)
7 NSString * output = [NSString stringWithFormat:@"%@\n", str];
8 [output writeToFile:outputFilename atomically:NO
9 encoding:NSUTF8StringEncoding error:nil];
12 void NSPrint(NSString *str)
14 fNSPrint(@"/dev/stdout", str);
17 bool printSystemConfiguration(bool quiet, NSString * keyName, NSDictionary * proxies)
19 id value = [proxies objectForKey:keyName];
22 if ([value isKindOfClass:[NSArray class]]) {
25 itemsArray = [NSArray arrayWithObjects:value, nil];
28 NSEnumerator * enumerator = [itemsArray objectEnumerator];
30 while ((item = [enumerator nextObject]))
31 NSPrint([NSString stringWithFormat:@"%@", item]);
35 fNSPrint(@"/dev/stderr", @"Value does not exist");
36 return FALSE; // Signal a fail condition
43 fNSPrint(@"/dev/stderr", @"proxyconf [-q] SystemConfigurationKeyName");
46 int resolveSystemConfiguration(int argc, const char * argv[])
48 NSDictionary * proxies = (NSDictionary *)SCDynamicStoreCopyProxies(nil);
54 keyName = [NSString stringWithCString:argv[1]];
55 } else if (3 == argc) {
56 if (! [[NSString stringWithCString:argv[1]] isEqualTo:@"-q"]) {
63 keyName = [NSString stringWithCString:argv[2]];
69 if (! printSystemConfiguration(quiet, keyName, proxies))
75 int main (int argc, const char * argv[])
77 NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
79 int ret = resolveSystemConfiguration(argc, argv);