+++ /dev/null
-#import <Foundation/Foundation.h>
-#import <SystemConfiguration/SCDynamicStoreCopySpecific.h>
-
-// Begin the nasty hack so that I can easily print out NSStrings to stdout
-void fNSPrint(NSString * outputFilename, NSString * str)
-{
- NSString * output = [NSString stringWithFormat:@"%@\n", str];
- [output writeToFile:outputFilename atomically:NO
- encoding:NSUTF8StringEncoding error:nil];
-}
-
-void NSPrint(NSString *str)
-{
- fNSPrint(@"/dev/stdout", str);
-}
-
-bool printSystemConfiguration(bool quiet, NSString * keyName, NSDictionary * proxies)
-{
- id value = [proxies objectForKey:keyName];
- if (nil != value) {
- NSArray * itemsArray;
- if ([value isKindOfClass:[NSArray class]]) {
- itemsArray = value;
- } else {
- itemsArray = [NSArray arrayWithObjects:value, nil];
- }
-
- NSEnumerator * enumerator = [itemsArray objectEnumerator];
- id item;
- while ((item = [enumerator nextObject]))
- NSPrint([NSString stringWithFormat:@"%@", item]);
-
- } else {
- if (!quiet)
- fNSPrint(@"/dev/stderr", @"Value does not exist");
- return FALSE; // Signal a fail condition
- }
- return TRUE;
-}
-
-void printUsage(void)
-{
- fNSPrint(@"/dev/stderr", @"proxyconf [-q] SystemConfigurationKeyName");
-}
-
-int resolveSystemConfiguration(int argc, const char * argv[])
-{
- NSDictionary * proxies = (NSDictionary *)SCDynamicStoreCopyProxies(nil);
-
- bool quiet = FALSE;
- NSString * keyName;
-
- if (2 == argc) {
- keyName = [NSString stringWithCString:argv[1]];
- } else if (3 == argc) {
- if (! [[NSString stringWithCString:argv[1]] isEqualTo:@"-q"]) {
- printUsage();
- return 1;
- } else {
- quiet = TRUE;
- }
-
- keyName = [NSString stringWithCString:argv[2]];
- } else {
- printUsage();
- return 1;
- }
-
- if (! printSystemConfiguration(quiet, keyName, proxies))
- return 2;
-
- return 0;
-}
-
-int main (int argc, const char * argv[])
-{
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
-
- int ret = resolveSystemConfiguration(argc, argv);
-
- [pool drain];
- return ret;
-}