+ initialize_mussa(opts, argc, argv);
+ if (opts.analysis == 0) {
+ return 1;
+ }
+
+ try {
+#ifdef USE_PYTHON
+ if (opts.runAsPythonInterpeter) {
+ ThreadManager &thread = ThreadManagerFactory();
+ // allow the user to keep the interpreter open even after
+ // closing all the windows
+ app.setQuitOnLastWindowClosed(false);
+ InterpreterThread *interp = thread.create_interpreter();
+ if (!interp) {
+ std::cerr << "Unable to initialize interpeter thread" << std::endl;
+ return 1;
+ }
+ MussaPython *py = interp->get_py_ptr();
+ if (!py) {
+ std::cerr << "Unable to initialize python interpreter" << std::endl;
+ return 1;
+ }
+ py->add_module("mussa", &initmussa);
+ //py->add_module("mussaqui", &initmussaqui);
+ // quit when the interpreter exits
+ QObject::connect(interp, SIGNAL(finished()),
+ &app, SLOT(quit()));
+ interp->start();
+ app.exec();
+ } else
+#endif /* USE_PYTHON */
+ if (opts.useGUI) {
+ MussaWindow *win = new MussaWindow(opts.analysis);
+ win->show();
+ app.exec();
+ }
+ return 0;
+ } catch (mussa_error e) {
+ qFatal(e.what());
+ } catch (boost::filesystem::filesystem_error e) {
+ qFatal(e.what());
+ }
+#ifdef USE_PYTHON
+ catch( boost::python::error_already_set ) {
+ PyErr_Print();
+ }
+#endif
+ catch (std::runtime_error e) {
+ qFatal(e.what());
+ } catch (...) {
+ qFatal("unrecognized exception");
+ }
+ return 1;