version 0.3.9
[fms.git] / src / fmsapp.cpp
index 94443c4..8a462e2 100644 (file)
@@ -17,6 +17,8 @@
 #include <Poco/FormattingChannel.h>\r
 #include <Poco/PatternFormatter.h>\r
 #include <iostream>\r
+#include <string>\r
+#include <cstring>\r
 \r
 #ifdef _WIN32\r
        #include <direct.h>\r
@@ -99,7 +101,8 @@ void FMSApp::initialize(Poco::Util::Application &self)
        ServerApplication::initialize(self);\r
 \r
        // set working directory - fall back on application.dir if working directory isn't set\r
-       if(m_workingdirectory=="")\r
+       // if we are runing as a service, then working directory needs to be set to the application directory\r
+       if(m_workingdirectory=="" || config().getBool("application.runAsService",false)==true)\r
        {\r
                m_workingdirectory=config().getString("application.dir");\r
        }\r
@@ -174,6 +177,14 @@ int FMSApp::main(const std::vector<std::string> &args)
        {\r
                logger().information("FMS startup v"FMS_VERSION);\r
 \r
+               std::string tempval="";\r
+               Option::Instance()->Get("VacuumOnStartup",tempval);\r
+               if(tempval=="true")\r
+               {\r
+                       logger().information("VACUUMing database");\r
+                       SQLite3DB::DB::Instance()->Execute("VACUUM;");\r
+               }\r
+\r
                StartThreads();\r
 \r
                if(isInteractive()==true)\r