+/*
+ Copyright (C) 2005 SKYRIX Software AG
+
+ This file is part of SOPE.
+
+ SOPE 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.
+
+ SOPE 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 SOPE; see the file COPYING. If not, write to the
+ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+ 02111-1307, USA.
+*/
+
+#include <NGiCal/iCalRecurrenceRule.h>
+#include "common.h"
+
+static int usage(NSArray *args) {
+ fprintf(stderr,
+ "usage: %s <rrule> <startdate> <enddate>\n"
+ "\n"
+ "sample:\n"
+ " %s 'FREQ=MONTHLY;BYDAY=2TU' 20050901 20060301\n",
+ [[args objectAtIndex:0] cString],
+ [[args objectAtIndex:0] cString]);
+ return 1;
+}
+
+static int runIt(NSArray *args) {
+ iCalRecurrenceRule *rrule;
+ NSCalendarDate *from, *to;
+ NSString *pattern;
+ NSString *s;
+
+ if ([args count] < 4)
+ return usage(args);
+
+ pattern = [args objectAtIndex:1];
+ s = [[args objectAtIndex:2] stringByAppendingString:@" 00:00"];
+ from = [NSCalendarDate dateWithString:s calendarFormat:@"%Y%m%d %H:%M"];
+ s = [[args objectAtIndex:3] stringByAppendingString:@" 23:59"];
+ to = [NSCalendarDate dateWithString:s calendarFormat:@"%Y%m%d %H:%M"];
+
+ if (from == nil || to == nil || ![pattern isNotEmpty])
+ return usage(args);
+
+ if ((rrule = [[iCalRecurrenceRule alloc] initWithString:pattern]) == nil) {
+ usage(args);
+ fprintf(stderr, "error: could not parse reccurence rule: '%s'\n",
+ [pattern cString]);
+ return 2;
+ }
+
+ NSLog(@"from: %@ to: %@", from, to);
+ NSLog(@"rrule: %@", rrule);
+
+ return 0;
+}
+
+int main(int argc, char **argv, char **env) {
+ NSAutoreleasePool *pool;
+ int rc;
+
+ pool = [[NSAutoreleasePool alloc] init];
+#if LIB_FOUNDATION_LIBRARY
+ [NSProcessInfo initializeWithArguments:argv count:argc environment:env];
+#endif
+
+ rc = runIt([[NSProcessInfo processInfo] argumentsWithoutDefaults]);
+ [pool release];
+ return rc;
+}