|
--- a/hardware/OpenZWave.cpp
|
|
+++ b/hardware/OpenZWave.cpp
|
|
@@ -993,7 +993,7 @@ bool COpenZWave::OpenSerialConnector()
|
|
}
|
|
m_nodes.clear();
|
|
m_bNeedSave = false;
|
|
- std::string ConfigPath = szStartupFolder + "Config/";
|
|
+ std::string ConfigPath = "/usr/share/domoticz/openzwave/";
|
|
std::string UserPath = ConfigPath;
|
|
if (szStartupFolder != szUserDataFolder)
|
|
{
|
|
--- a/main/EventSystem.cpp
|
|
+++ b/main/EventSystem.cpp
|
|
@@ -44,7 +44,7 @@ extern "C" {
|
|
using namespace boost::python;
|
|
#endif
|
|
|
|
-extern std::string szUserDataFolder;
|
|
+extern std::string szScriptsFolder;
|
|
|
|
CEventSystem::CEventSystem(void)
|
|
{
|
|
@@ -1086,9 +1086,9 @@ void CEventSystem::EvaluateEvent(const s
|
|
std::stringstream lua_DirT;
|
|
|
|
#ifdef WIN32
|
|
- lua_DirT << szUserDataFolder << "scripts\\lua\\";
|
|
+ lua_DirT << szScriptsFolder << "lua\\";
|
|
#else
|
|
- lua_DirT << szUserDataFolder << "scripts/lua/";
|
|
+ lua_DirT << szScriptsFolder << "lua/";
|
|
#endif
|
|
|
|
std::string lua_Dir = lua_DirT.str();
|
|
@@ -1139,9 +1139,9 @@ void CEventSystem::EvaluateEvent(const s
|
|
{
|
|
std::stringstream python_DirT;
|
|
#ifdef WIN32
|
|
- python_DirT << szUserDataFolder << "scripts\\python\\";
|
|
+ python_DirT << szScriptsFolder << "python\\";
|
|
#else
|
|
- python_DirT << szUserDataFolder << "scripts/python/";
|
|
+ python_DirT << szScriptsFolder << "python/";
|
|
#endif
|
|
|
|
std::string python_Dir = python_DirT.str();
|
|
@@ -2021,7 +2021,7 @@ bool CEventSystem::parseBlocklyActions(c
|
|
}
|
|
#if !defined WIN32
|
|
if (sPath.find("/") != 0)
|
|
- sPath = szUserDataFolder + "scripts/" + sPath;
|
|
+ sPath = szScriptsFolder + sPath;
|
|
#endif
|
|
|
|
m_sql.AddTaskItem(_tTaskItem::ExecuteScript(1, sPath, sParam));
|
|
@@ -2133,9 +2133,9 @@ void CEventSystem::EvaluatePython(const
|
|
std::stringstream python_DirT;
|
|
|
|
#ifdef WIN32
|
|
- python_DirT << szUserDataFolder << "scripts\\python\\";
|
|
+ python_DirT << szScriptsFolder << "python\\";
|
|
#else
|
|
- python_DirT << szUserDataFolder << "scripts/python/";
|
|
+ python_DirT << szScriptsFolder << "python/";
|
|
#endif
|
|
std::string python_Dir = python_DirT.str();
|
|
if(!Py_IsInitialized()) {
|
|
@@ -3909,9 +3909,9 @@ namespace http {
|
|
|
|
std::stringstream template_file;
|
|
#ifdef WIN32
|
|
- template_file << szUserDataFolder << "scripts\\templates\\" << eventType << "." << interpreter;
|
|
+ template_file << szScriptsFolder << "templates\\" << eventType << "." << interpreter;
|
|
#else
|
|
- template_file << szUserDataFolder << "scripts/templates/" << eventType << "." << interpreter;
|
|
+ template_file << szScriptsFolder << "templates/" << eventType << "." << interpreter;
|
|
#endif
|
|
std::ifstream file;
|
|
std::stringstream template_content;
|
|
--- a/main/LuaHandler.cpp
|
|
+++ b/main/LuaHandler.cpp
|
|
@@ -22,7 +22,7 @@ extern "C" {
|
|
#include "mainworker.h"
|
|
#include "../hardware/hardwaretypes.h"
|
|
|
|
-extern std::string szUserDataFolder;
|
|
+extern std::string szScriptsFolder;
|
|
|
|
int CLuaHandler::l_domoticz_applyXPath(lua_State* lua_state)
|
|
{
|
|
@@ -319,9 +319,9 @@ bool CLuaHandler::executeLuaScript(const
|
|
{
|
|
std::stringstream lua_DirT;
|
|
#ifdef WIN32
|
|
- lua_DirT << szUserDataFolder << "scripts\\lua_parsers\\";
|
|
+ lua_DirT << szScriptsFolder << "lua_parsers\\";
|
|
#else
|
|
- lua_DirT << szUserDataFolder << "scripts/lua_parsers/";
|
|
+ lua_DirT << szScriptsFolder << "lua_parsers/";
|
|
#endif
|
|
std::string lua_Dir = lua_DirT.str();
|
|
|
|
--- a/main/SQLHelper.cpp
|
|
+++ b/main/SQLHelper.cpp
|
|
@@ -612,6 +612,7 @@ const char *sqlCreateMobileDevices =
|
|
"[LastUpdate] DATETIME DEFAULT(datetime('now', 'localtime'))"
|
|
");";
|
|
|
|
+extern std::string szScriptsFolder;
|
|
extern std::string szUserDataFolder;
|
|
|
|
CSQLHelper::CSQLHelper(void)
|
|
@@ -3408,9 +3409,9 @@ unsigned long long CSQLHelper::UpdateVal
|
|
//Execute possible script
|
|
std::string scriptname;
|
|
#ifdef WIN32
|
|
- scriptname = szUserDataFolder + "scripts\\domoticz_main.bat";
|
|
+ scriptname = szScriptsFolder + "domoticz_main.bat";
|
|
#else
|
|
- scriptname = szUserDataFolder + "scripts/domoticz_main";
|
|
+ scriptname = szScriptsFolder + "domoticz_main";
|
|
#endif
|
|
if (file_exist(scriptname.c_str()))
|
|
{
|
|
@@ -6460,7 +6461,7 @@ bool CSQLHelper::HandleOnOffAction(const
|
|
std::string scriptname = OnAction.substr(9);
|
|
#if !defined WIN32
|
|
if (scriptname.find("/") != 0)
|
|
- scriptname = szUserDataFolder + "scripts/" + scriptname;
|
|
+ scriptname = szScriptsFolder + scriptname;
|
|
#endif
|
|
std::string scriptparams="";
|
|
//Add parameters
|
|
@@ -6492,7 +6493,7 @@ bool CSQLHelper::HandleOnOffAction(const
|
|
std::string scriptname = OffAction.substr(9);
|
|
#if !defined WIN32
|
|
if (scriptname.find("/") != 0)
|
|
- scriptname = szUserDataFolder + "scripts/" + scriptname;
|
|
+ scriptname = szScriptsFolder + scriptname;
|
|
#endif
|
|
std::string scriptparams="";
|
|
int pindex=scriptname.find(' ');
|
|
--- a/main/WebServer.cpp
|
|
+++ b/main/WebServer.cpp
|
|
@@ -55,6 +55,7 @@
|
|
|
|
#define round(a) ( int ) ( a + .5 )
|
|
|
|
+extern std::string szScriptsFolder;
|
|
extern std::string szUserDataFolder;
|
|
extern std::string szWWWFolder;
|
|
|
|
@@ -2614,9 +2615,9 @@ namespace http {
|
|
if (scriptname.find("..") != std::string::npos)
|
|
return;
|
|
#ifdef WIN32
|
|
- scriptname = szUserDataFolder + "scripts\\" + scriptname;
|
|
+ scriptname = szScriptsFolder + scriptname;
|
|
#else
|
|
- scriptname = szUserDataFolder + "scripts/" + scriptname;
|
|
+ scriptname = szScriptsFolder + scriptname;
|
|
#endif
|
|
if (!file_exist(scriptname.c_str()))
|
|
return;
|
|
--- a/main/domoticz.cpp
|
|
+++ b/main/domoticz.cpp
|
|
@@ -135,6 +135,7 @@ static const _facilities facilities[] =
|
|
};
|
|
std::string logfacname = "user";
|
|
#endif
|
|
+std::string szScriptsFolder;
|
|
std::string szStartupFolder;
|
|
std::string szUserDataFolder;
|
|
std::string szWWWFolder;
|
|
@@ -603,6 +604,19 @@ int main(int argc, char**argv)
|
|
szUserDataFolder = szroot;
|
|
}
|
|
|
|
+ szScriptsFolder=szStartupFolder;
|
|
+ if (cmdLine.HasSwitch("-scripts"))
|
|
+ {
|
|
+ if (cmdLine.GetArgumentCount("-scripts") != 1)
|
|
+ {
|
|
+ _log.Log(LOG_ERROR, "Please specify a path for scripts directory");
|
|
+ return 1;
|
|
+ }
|
|
+ std::string szroot = cmdLine.GetSafeArgument("-scripts", 0, "");
|
|
+ if (szroot.size() != 0)
|
|
+ szScriptsFolder = szroot;
|
|
+ }
|
|
+
|
|
if (cmdLine.HasSwitch("-startupdelay"))
|
|
{
|
|
if (cmdLine.GetArgumentCount("-startupdelay") != 1)
|
|
--- a/main/mainworker.cpp
|
|
+++ b/main/mainworker.cpp
|
|
@@ -139,6 +139,7 @@
|
|
|
|
#define round(a) ( int ) ( a + .5 )
|
|
|
|
+extern std::string szScriptsFolder;
|
|
extern std::string szStartupFolder;
|
|
extern std::string szUserDataFolder;
|
|
extern std::string szWWWFolder;
|
|
@@ -1394,8 +1395,8 @@ void MainWorker::Do_Work()
|
|
m_sql.GetPreferencesVar("ReleaseChannel", nValue);
|
|
bool bIsBetaChannel = (nValue != 0);
|
|
|
|
- std::string scriptname = szUserDataFolder + "scripts/download_update.sh";
|
|
- std::string strparm = szUserDataFolder;
|
|
+ std::string scriptname = szScriptsFolder + "download_update.sh";
|
|
+ std::string strparm = szScriptsFolder;
|
|
if (bIsBetaChannel)
|
|
strparm += " /beta";
|
|
|
|
--- a/notifications/NotificationHTTP.cpp
|
|
+++ b/notifications/NotificationHTTP.cpp
|
|
@@ -6,7 +6,7 @@
|
|
#include "../main/SQLHelper.h"
|
|
#include "../main/Logger.h"
|
|
|
|
-extern std::string szUserDataFolder;
|
|
+extern std::string szScriptsFolder;
|
|
|
|
CNotificationHTTP::CNotificationHTTP() : CNotificationBase(std::string("http"), OPTIONS_NONE)
|
|
{
|
|
@@ -97,7 +97,7 @@ bool CNotificationHTTP::SendMessageImple
|
|
std::string scriptparams = "";
|
|
#if !defined WIN32
|
|
if (scriptname.find("/") != 0)
|
|
- scriptname = szUserDataFolder + "scripts/" + scriptname;
|
|
+ scriptname = szScriptsFolder + scriptname;
|
|
#endif
|
|
//Add parameters
|
|
uPos = scriptname.find(" ");
|
|
--- a/push/GooglePubSubPush.cpp
|
|
+++ b/push/GooglePubSubPush.cpp
|
|
@@ -20,7 +20,7 @@ extern "C" {
|
|
using namespace boost::python;
|
|
#endif
|
|
|
|
-extern std::string szUserDataFolder;
|
|
+extern std::string szScriptsFolder;
|
|
|
|
// this should be filled in by the preprocessor
|
|
extern const char * Python_exe;
|
|
@@ -222,11 +222,11 @@ void CGooglePubSubPush::DoGooglePubSubPu
|
|
|
|
#ifdef ENABLE_PYTHON
|
|
#ifdef WIN32
|
|
- python_DirT << szUserDataFolder << "scripts\\python\\";
|
|
- std::string filename = szUserDataFolder + "scripts\\python\\" + "googlepubsub.py";
|
|
+ python_DirT << szScriptsFolder << "python\\";
|
|
+ std::string filename = szScriptsFolder + "python\\" + "googlepubsub.py";
|
|
#else
|
|
- python_DirT << szUserDataFolder << "scripts/python/";
|
|
- std::string filename = szUserDataFolder + "scripts/python/" + "googlepubsub.py";
|
|
+ python_DirT << szScriptsFolder << "python/";
|
|
+ std::string filename = szScriptsFolder + "python/" + "googlepubsub.py";
|
|
#endif
|
|
|
|
char * argv[1];
|