Something went wrong. Try again.
Skeleton of CLI parsing for a PDS implementation
Something went wrong. Try again.
1.8 kB · 58 lines · Created 7mo ago
Objective-C
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859//// pdscli.m// Skeleton of CLI parsing for a PDS implementation//
// https://developer.apple.com/documentation/foundation/processinfo
#import <Foundation/Foundation.h>
@interface PDSCLIController : NSObject
- (NSInteger)runWithArguments:(NSArray<NSString *> *)arguments;- (void)printHelp;
@end
@implementation PDSCLIController
- (NSInteger)runWithArguments:(NSArray<NSString *> *)arguments { if(arguments.count == 0) { [self printHelp]; return 1; } return 0;}
- (void)printHelp { printf("No arguments given.\n");}
@end
int main(int argc, const char * argv[]) { @autoreleasepool { NSArray<NSString *> *arguments = [[NSProcessInfo processInfo] arguments]; NSDictionary<NSString *, NSString *> *environment = [[NSProcessInfo processInfo] environment]; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSInteger port = [defaults integerForKey:@"port"]; NSString *dataDirectory = [defaults stringForKey:@"data-dir"]; BOOL isVerboseLogging = [arguments containsObject:@"-verbose"]; // doesn't work for -verbose NO BOOL isHelp = [arguments containsObject:@"-help"]; NSLog(@"%d", (int)port); NSLog(@"%@", dataDirectory); NSLog(@"%@", isVerboseLogging ? @"YES" : @"NO"); NSLog(@"%@", isHelp ? @"YES" : @"NO"); NSString *shell = environment[@"SHELL"]; NSLog(@"%@", shell); NSArray *commandlineArguments = [arguments subarrayWithRange:NSMakeRange(1, arguments.count - 1)]; PDSCLIController *cli = [[PDSCLIController alloc] init]; NSInteger exitCode = [cli runWithArguments:commandlineArguments]; return (int)exitCode; } return EXIT_SUCCESS;}