X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ffmsapp.cpp;h=01fcf9a6cecd912982072e8d056274345b03461c;hb=278ee758050cb7772cd95946688c5b40104f4d8b;hp=94443c4cd8440e298bda8018b8b986b4bbea85d4;hpb=026dc6b2bc548c945359c4e166eff514f2c47c6a;p=fms.git diff --git a/src/fmsapp.cpp b/src/fmsapp.cpp index 94443c4..01fcf9a 100644 --- a/src/fmsapp.cpp +++ b/src/fmsapp.cpp @@ -17,6 +17,8 @@ #include #include #include +#include +#include #ifdef _WIN32 #include @@ -99,7 +101,8 @@ void FMSApp::initialize(Poco::Util::Application &self) ServerApplication::initialize(self); // set working directory - fall back on application.dir if working directory isn't set - if(m_workingdirectory=="") + // if we are runing as a service, then working directory needs to be set to the application directory + if(m_workingdirectory=="" || config().getBool("application.runAsService",false)==true) { m_workingdirectory=config().getString("application.dir"); } @@ -159,7 +162,12 @@ int FMSApp::main(const std::vector &args) // so we need to set the working directory again int rval=chdir(m_workingdirectory.c_str()); - if(m_displayhelp) + if(VerifyDB()==false) + { + std::cout << "The FMS database failed verification. It is most likely corrupt!" << std::endl; + logger().fatal("The FMS database failed verification. It is most likely corrupt!"); + } + else if(m_displayhelp) { } else if(m_showoptions) @@ -174,6 +182,14 @@ int FMSApp::main(const std::vector &args) { logger().information("FMS startup v"FMS_VERSION); + std::string tempval=""; + Option::Instance()->Get("VacuumOnStartup",tempval); + if(tempval=="true") + { + logger().information("VACUUMing database"); + SQLite3DB::DB::Instance()->Execute("VACUUM;"); + } + StartThreads(); if(isInteractive()==true)