mirror of
https://github.com/naruxde/revpipyload.git
synced 2025-11-09 07:28:03 +01:00
Konfiguration von "plcworkdir_set_uid" über PyControl möglich
User ID wird auf 0 oder angegebene gesetzt je nach Parameter in config file Relative replace_ios Datei wird mit workdir versehen replace_ios Datei in workdir wird relativ an PyControl gesendet
This commit is contained in:
@@ -28,7 +28,7 @@ begrenzt werden!
|
||||
__author__ = "Sven Sager"
|
||||
__copyright__ = "Copyright (C) 2018 Sven Sager"
|
||||
__license__ = "GPLv3"
|
||||
__version__ = "0.8.0"
|
||||
__version__ = "0.8.1"
|
||||
import gzip
|
||||
import logsystem
|
||||
import picontrolserver
|
||||
@@ -331,8 +331,15 @@ class RevPiPyLoad():
|
||||
os.chdir(self.plcworkdir)
|
||||
|
||||
# Workdirectory owner setzen
|
||||
if self.plcworkdir_set_uid:
|
||||
os.chown(self.plcworkdir, self.plcuid, -1)
|
||||
try:
|
||||
if self.plcworkdir_set_uid:
|
||||
os.chown(self.plcworkdir, self.plcuid, -1)
|
||||
else:
|
||||
os.chown(self.plcworkdir, 0, -1)
|
||||
except Exception:
|
||||
proginit.logger.warning(
|
||||
"could not set user id on working directory"
|
||||
)
|
||||
|
||||
# MQTT konfigurieren
|
||||
if restart_plcmqtt:
|
||||
@@ -872,12 +879,14 @@ class RevPiPyLoad():
|
||||
dc["autoreloaddelay"] = self.autoreloaddelay
|
||||
dc["autostart"] = int(self.autostart)
|
||||
dc["plcworkdir"] = self.plcworkdir
|
||||
dc["plcworkdir_set_uid"] = self.plcworkdir_set_uid
|
||||
dc["plcprogram"] = self.plcprogram
|
||||
dc["plcarguments"] = self.plcarguments
|
||||
dc["plcuid"] = self.plcuid
|
||||
dc["plcgid"] = self.plcgid
|
||||
dc["pythonversion"] = self.pythonversion
|
||||
dc["replace_ios"] = self.replace_ios_config
|
||||
dc["replace_ios"] = self.replace_ios_config.replace(
|
||||
self.plcworkdir + "/", "")
|
||||
dc["rtlevel"] = self.rtlevel
|
||||
dc["zeroonerror"] = int(self.zeroonerror)
|
||||
dc["zeroonexit"] = int(self.zeroonexit)
|
||||
@@ -1110,6 +1119,7 @@ class RevPiPyLoad():
|
||||
"autostart": "[01]",
|
||||
"plcprogram": ".+",
|
||||
"plcarguments": ".*",
|
||||
"plcworkdir_set_uid": "[01]",
|
||||
# "plcuid": "[0-9]{,5}",
|
||||
# "plcgid": "[0-9]{,5}",
|
||||
"pythonversion": "[23]",
|
||||
@@ -1145,6 +1155,11 @@ class RevPiPyLoad():
|
||||
}
|
||||
}
|
||||
|
||||
# Adjust values
|
||||
if dc.get("replace_ios", "") and dc["replace_ios"].find("/") == -1:
|
||||
dc["replace_ios"] = os.path.join(
|
||||
self.plcworkdir, dc["replace_ios"])
|
||||
|
||||
# Werte übernehmen, die eine Definition in key haben (andere nicht)
|
||||
for sektion in keys:
|
||||
suffix = sektion.lower()
|
||||
|
||||
Reference in New Issue
Block a user