X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=appli%2Fgimmick%2Fmain.cxx;h=1ce38ed72a6ad3cc28d1333d129fdcfc90307cb0;hb=2640fa9a19a36c5e5aa5295d8eb5d43c41755892;hp=7f21a164e767fce677bc168b63c6d9e98da2a39b;hpb=cbf693fa62cd51f4ca5c881838bbb609edc447b0;p=creaImageIO.git diff --git a/appli/gimmick/main.cxx b/appli/gimmick/main.cxx index 7f21a16..1ce38ed 100644 --- a/appli/gimmick/main.cxx +++ b/appli/gimmick/main.cxx @@ -1,9 +1,58 @@ #include +#include +#include + int main(int argc, char* argv[]) { + + gengetopt_args_info args; + if (cmdline_parser (argc, argv, &args) != 0) return 0 ; + creaImageIO::Gimmick g; - if (!g.Initialize()) return 1; - if (!g.Finalize()) return 1; + 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) + { + std::cout << "Nothing to do !" << std::endl; + return 0; + } + + 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; }