You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

262 lines
8.3 KiB

--- 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];