]> Creatis software - creaImageIO.git/blobdiff - appli/gimmick/main.cxx
*** empty log message ***
[creaImageIO.git] / appli / gimmick / main.cxx
index d90f0b8bcfa15f955261f571e2bef05c284c78d1..1ce38ed72a6ad3cc28d1333d129fdcfc90307cb0 100644 (file)
@@ -1,18 +1,58 @@
 #include <creaImageIOGimmick.h>
 #include <creaMessageManager.h>
+#include <gimmick_ggo.h>
+
 
 int main(int argc, char* argv[])
 {
-  bool debug = false;
-  if(argc>1) 
+
+  gengetopt_args_info args;
+  if (cmdline_parser (argc, argv, &args) != 0) return 0 ;
+     
+  creaImageIO::Gimmick g;
+  if (args.verbose_given) g.SetMessageLevel(args.verbose_arg);
+  if (args.debug_given) g.SetDebugMessageLevel(args.debug_arg);
+    
+  bool something_to_do = 
+    args.dir_given |
+    args.file_given |
+    args.print_given;
+
+  if (!something_to_do)
     {
-      debug = true;
+      std::cout << "Nothing to do !" << std::endl;
+      return 0;
     }
 
-  creaImageIO::Gimmick g;
-  g.SetDebugMode(debug);
+  std::string handler("Local database");
+  try
+    {
+      g.Initialize();
+      
+      if (args.file_given) 
+       {
+         std::vector<std::string> files;
+         // TO DO : multiple files given
+         files.push_back(args.file_arg);
+         g.AddFiles(handler,files);
+       }
+      if (args.dir_given) 
+       {
+         g.AddDir(handler,args.dir_arg, args.recurse_given);
+       }
+      
+      if (args.print_given) 
+       {
+         g.GetTreeHandler(handler)->LoadChildren(0,0);
+         g.Print(handler);
+       }
+      
+      g.Finalize();
+    }
+  catch (crea::Exception e)
+    {
+      e.Print();
+    }
 
-  if (!g.Initialize()) return 1;
-  if (!g.Finalize()) return 1;
   return 0;
 }