summaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/main.cpp b/src/main.cpp
index ba808db3..0cd9ba26 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -15,8 +15,17 @@ using namespace MOBase;
thread_local LPTOP_LEVEL_EXCEPTION_FILTER g_prevExceptionFilter = nullptr;
thread_local std::terminate_handler g_prevTerminateHandler = nullptr;
+int run(int argc, char *argv[]);
+
int main(int argc, char *argv[])
{
+ const int r = run(argc, argv);
+ std::cout << "mod organizer done\n";
+ return r;
+}
+
+int run(int argc, char *argv[])
+{
MOShared::SetThisThreadName("main");
setExceptionHandlers();
@@ -34,6 +43,12 @@ int main(int argc, char *argv[])
MOApplication app(argc, argv);
+ // check if the command line wants to run something right now
+ if (auto r=cl.runPostApplication(app)) {
+ return *r;
+ }
+
+
// check if there's another process running
MOMultiProcess multiProcess(cl.multiple());
@@ -95,6 +110,9 @@ int main(int argc, char *argv[])
cl.clear();
continue;
+ } else if (r != 0) {
+ // something failed, quit
+ return r;
}
}