X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=appli%2Fgimmick%2Fmain.cxx;h=a39b1e2d2f13c998eee0592ac9e95f6f8b1dab5e;hb=8c3672abfbaf237583f46ba0c1feb660b0f65973;hp=d90f0b8bcfa15f955261f571e2bef05c284c78d1;hpb=bae4df8a3e1ea669400c3a6c44ef4aa8d90fa1ed;p=creaImageIO.git diff --git a/appli/gimmick/main.cxx b/appli/gimmick/main.cxx index d90f0b8..a39b1e2 100644 --- a/appli/gimmick/main.cxx +++ b/appli/gimmick/main.cxx @@ -1,18 +1,55 @@ #include #include +#include int main(int argc, char* argv[]) { - bool debug = false; - if(argc>1) + gengetopt_args_info args; + if (cmdline_parser (argc, argv, &args) != 0) exit(1) ; + + 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; + exit(0); } - creaImageIO::Gimmick g; - g.SetDebugMode(debug); - - if (!g.Initialize()) return 1; - if (!g.Finalize()) return 1; + std::string handler("Local database"); + try + { + g.Initialize(); + + if (args.file_given) + { + std::vector 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(); + } return 0; }