mirror of
https://github.com/naruxde/revpipyload.git
synced 2025-11-08 23:23:52 +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:
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE Project SYSTEM "Project-5.1.dtd">
|
<!DOCTYPE Project SYSTEM "Project-5.1.dtd">
|
||||||
<!-- eric project file for project revpipyload -->
|
<!-- eric project file for project revpipyload -->
|
||||||
<!-- Saved: 2019-08-26, 13:17:52 -->
|
<!-- Saved: 2019-09-15, 20:15:23 -->
|
||||||
<!-- Copyright (C) 2019 Sven Sager, akira@narux.de -->
|
<!-- Copyright (C) 2019 Sven Sager, akira@narux.de -->
|
||||||
<Project version="5.1">
|
<Project version="5.1">
|
||||||
<Language>en_US</Language>
|
<Language>en_US</Language>
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
<ProgLanguage mixed="0">Python3</ProgLanguage>
|
<ProgLanguage mixed="0">Python3</ProgLanguage>
|
||||||
<ProjectType>Console</ProjectType>
|
<ProjectType>Console</ProjectType>
|
||||||
<Description>Dieser Loader wird über das Init-System geladen und führt das angegebene Pythonprogramm aus. Es ist für den RevolutionPi gedacht um automatisch das SPS-Programm zu starten.</Description>
|
<Description>Dieser Loader wird über das Init-System geladen und führt das angegebene Pythonprogramm aus. Es ist für den RevolutionPi gedacht um automatisch das SPS-Programm zu starten.</Description>
|
||||||
<Version>0.8.0</Version>
|
<Version>0.8.1</Version>
|
||||||
<Author>Sven Sager</Author>
|
<Author>Sven Sager</Author>
|
||||||
<Email>akira@narux.de</Email>
|
<Email>akira@narux.de</Email>
|
||||||
<Eol index="1"/>
|
<Eol index="1"/>
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ begrenzt werden!
|
|||||||
__author__ = "Sven Sager"
|
__author__ = "Sven Sager"
|
||||||
__copyright__ = "Copyright (C) 2018 Sven Sager"
|
__copyright__ = "Copyright (C) 2018 Sven Sager"
|
||||||
__license__ = "GPLv3"
|
__license__ = "GPLv3"
|
||||||
__version__ = "0.8.0"
|
__version__ = "0.8.1"
|
||||||
import gzip
|
import gzip
|
||||||
import logsystem
|
import logsystem
|
||||||
import picontrolserver
|
import picontrolserver
|
||||||
@@ -331,8 +331,15 @@ class RevPiPyLoad():
|
|||||||
os.chdir(self.plcworkdir)
|
os.chdir(self.plcworkdir)
|
||||||
|
|
||||||
# Workdirectory owner setzen
|
# Workdirectory owner setzen
|
||||||
if self.plcworkdir_set_uid:
|
try:
|
||||||
os.chown(self.plcworkdir, self.plcuid, -1)
|
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
|
# MQTT konfigurieren
|
||||||
if restart_plcmqtt:
|
if restart_plcmqtt:
|
||||||
@@ -872,12 +879,14 @@ class RevPiPyLoad():
|
|||||||
dc["autoreloaddelay"] = self.autoreloaddelay
|
dc["autoreloaddelay"] = self.autoreloaddelay
|
||||||
dc["autostart"] = int(self.autostart)
|
dc["autostart"] = int(self.autostart)
|
||||||
dc["plcworkdir"] = self.plcworkdir
|
dc["plcworkdir"] = self.plcworkdir
|
||||||
|
dc["plcworkdir_set_uid"] = self.plcworkdir_set_uid
|
||||||
dc["plcprogram"] = self.plcprogram
|
dc["plcprogram"] = self.plcprogram
|
||||||
dc["plcarguments"] = self.plcarguments
|
dc["plcarguments"] = self.plcarguments
|
||||||
dc["plcuid"] = self.plcuid
|
dc["plcuid"] = self.plcuid
|
||||||
dc["plcgid"] = self.plcgid
|
dc["plcgid"] = self.plcgid
|
||||||
dc["pythonversion"] = self.pythonversion
|
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["rtlevel"] = self.rtlevel
|
||||||
dc["zeroonerror"] = int(self.zeroonerror)
|
dc["zeroonerror"] = int(self.zeroonerror)
|
||||||
dc["zeroonexit"] = int(self.zeroonexit)
|
dc["zeroonexit"] = int(self.zeroonexit)
|
||||||
@@ -1110,6 +1119,7 @@ class RevPiPyLoad():
|
|||||||
"autostart": "[01]",
|
"autostart": "[01]",
|
||||||
"plcprogram": ".+",
|
"plcprogram": ".+",
|
||||||
"plcarguments": ".*",
|
"plcarguments": ".*",
|
||||||
|
"plcworkdir_set_uid": "[01]",
|
||||||
# "plcuid": "[0-9]{,5}",
|
# "plcuid": "[0-9]{,5}",
|
||||||
# "plcgid": "[0-9]{,5}",
|
# "plcgid": "[0-9]{,5}",
|
||||||
"pythonversion": "[23]",
|
"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)
|
# Werte übernehmen, die eine Definition in key haben (andere nicht)
|
||||||
for sektion in keys:
|
for sektion in keys:
|
||||||
suffix = sektion.lower()
|
suffix = sektion.lower()
|
||||||
|
|||||||
Reference in New Issue
Block a user