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"?>
|
||||
<!DOCTYPE Project SYSTEM "Project-5.1.dtd">
|
||||
<!-- 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 -->
|
||||
<Project version="5.1">
|
||||
<Language>en_US</Language>
|
||||
@@ -9,7 +9,7 @@
|
||||
<ProgLanguage mixed="0">Python3</ProgLanguage>
|
||||
<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>
|
||||
<Version>0.8.0</Version>
|
||||
<Version>0.8.1</Version>
|
||||
<Author>Sven Sager</Author>
|
||||
<Email>akira@narux.de</Email>
|
||||
<Eol index="1"/>
|
||||
|
||||
@@ -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