+/*
+ Copyright (C) 2005 SKYRIX Software AG
+
+ This file is part of OpenGroupware.org.
+
+ OGo is free software; you can redistribute it and/or modify it under
+ the terms of the GNU Lesser General Public License as published by the
+ Free Software Foundation; either version 2, or (at your option) any
+ later version.
+
+ OGo is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+ License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with OGo; see the file COPYING. If not, write to the
+ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+ 02111-1307, USA.
+*/
+
+#include "AgenorUserManager.h"
+#include "common.h"
+
+static void usage(NSArray *args) {
+ fprintf(stderr, "usage: %s <uid> read|write <key> [<value>]\n",
+ [[args objectAtIndex:0] cString]);
+}
+
+static void doRead(NSUserDefaults *defaults, NSString *key) {
+ NSLog(@"TODO READ: %@", key);
+}
+
+static void doWrite(NSUserDefaults *defaults, NSString *key, NSString *value) {
+ NSLog(@"TODO WRITE: %@", key, value);
+}
+
+static void doIt(NSArray *args) {
+ AgenorUserManager *userManager;
+ NSUserDefaults *defaults;
+ NSString *uid, *op, *key, *value;
+
+ /* extract arguments */
+
+ if ([args count] < 4) {
+ usage(args);
+ return;
+ }
+
+ uid = [args objectAtIndex:1];
+ op = [args objectAtIndex:2];
+ key = [args objectAtIndex:3];
+ value = nil;
+
+ if ([op isEqualToString:@"write"]) {
+ if ([args count] < 5) {
+ usage(args);
+ return;
+ }
+ value = [args objectAtIndex:4];
+ }
+
+ /* run */
+
+ userManager = [AgenorUserManager sharedUserManager];
+ defaults = [userManager getUserDefaultsForUID:uid];
+
+ if (![defaults isNotNull]) {
+ fprintf(stderr, "Error: found no userdefaults for UID: '%s'\n",
+ [uid cString]);
+ exit(1);
+ }
+
+ if ([op isEqualToString:@"read"])
+ doRead(defaults, key);
+ else if ([op isEqualToString:@"write"])
+ doWrite(defaults, key, value);
+ else
+ usage(args);
+}
+
+int main(int argc, char **argv, char **env) {
+ NSAutoreleasePool *pool;
+
+ pool = [[NSAutoreleasePool alloc] init];
+#if LIB_FOUNDATION_LIBRARY
+ [NSProcessInfo initializeWithArguments:argv count:argc environment:env];
+#endif
+
+ doIt([[NSProcessInfo processInfo] argumentsWithoutDefaults]);
+
+ [pool release];
+ return 0;
+}