]> err.no Git - sope/blobdiff - Recycler/GDLContentStore/gcs_cat.m
removed GDLContentStore from SOPE
[sope] / Recycler / GDLContentStore / gcs_cat.m
diff --git a/Recycler/GDLContentStore/gcs_cat.m b/Recycler/GDLContentStore/gcs_cat.m
new file mode 100644 (file)
index 0000000..7cf768c
--- /dev/null
@@ -0,0 +1,122 @@
+/*
+  Copyright (C) 2004-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.
+*/
+
+#import <Foundation/NSObject.h>
+
+@class NSUserDefaults, NSArray;
+@class GCSFolderManager;
+
+@interface Tool : NSObject
+{
+  NSUserDefaults   *ud;
+  GCSFolderManager *folderManager;
+}
+
++ (int)runWithArgs:(NSArray *)_args;
+- (int)run;
+
+@end
+
+#include <GDLContentStore/GCSFolder.h>
+#include <GDLContentStore/GCSFolderManager.h>
+#include "common.h"
+
+@implementation Tool
+
+- (id)init {
+  if ((self = [super init])) {
+    self->ud            = [[NSUserDefaults standardUserDefaults]   retain];
+    self->folderManager = [[GCSFolderManager defaultFolderManager] retain];
+  }
+  return self;
+}
+- (void)dealloc {
+  [self->ud            release];
+  [self->folderManager release];
+  [super dealloc];
+}
+
+/* operation */
+
+- (int)runOnPath:(NSString *)_path {
+  GCSFolder   *folder;
+  NSString    *dirname, *filename;
+  NSString    *content;
+  
+  dirname  = [_path stringByDeletingLastPathComponent];
+  filename = [_path lastPathComponent];
+  
+  if ((folder = [self->folderManager folderAtPath:dirname]) == nil) {
+    [self logWithFormat:@"did not find folder for file: '%@'", dirname];
+    return 1;
+  }
+  
+  if ((content = [folder fetchContentWithName:filename]) == nil) {
+    [self logWithFormat:@"did not find file: '%@'", _path];
+    return 1;
+  }
+  
+  printf("%s\n", [content cString]);
+  
+  return 0;
+}
+
+- (int)run {
+  NSEnumerator *e;
+  NSString *path;
+  
+  [self logWithFormat:@"manager: %@", self->folderManager];
+  
+  if (![self->folderManager canConnect]) {
+    [self logWithFormat:@"cannot connect folder-info database!"];
+    return 1;
+  }
+  
+  e = [[[NSProcessInfo processInfo] argumentsWithoutDefaults] 
+                       objectEnumerator];
+  [e nextObject]; // skip tool name
+  
+  while ((path = [e nextObject]))
+    [self runOnPath:path];
+  
+  return 0;
+}
++ (int)runWithArgs:(NSArray *)_args {
+  return [(Tool *)[[[self alloc] init] autorelease] run];
+}
+
+@end /* Tool */
+
+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 = [Tool runWithArgs:
+               [[NSProcessInfo processInfo] argumentsWithoutDefaults]];
+  
+  [pool release];
+  return rc;
+}