From 6796873a7a377a23504fa92cbd5f1e26124ee6b2 Mon Sep 17 00:00:00 2001 From: NaruX Date: Mon, 16 Sep 2019 10:42:15 +0200 Subject: [PATCH] =?UTF-8?q?Konfiguration=20von=20"plcworkdir=5Fset=5Fuid"?= =?UTF-8?q?=20=C3=BCber=20PyControl=20m=C3=B6glich=20User=20ID=20wird=20au?= =?UTF-8?q?f=200=20oder=20angegebene=20gesetzt=20je=20nach=20Parameter=20i?= =?UTF-8?q?n=20config=20file=20Relative=20replace=5Fios=20Datei=20wird=20m?= =?UTF-8?q?it=20workdir=20versehen=20replace=5Fios=20Datei=20in=20workdir?= =?UTF-8?q?=20wird=20relativ=20an=20PyControl=20gesendet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- revpipyload.e4p | 4 ++-- revpipyload/revpipyload.py | 23 +++++++++++++++++++---- setup.py | 2 +- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/revpipyload.e4p b/revpipyload.e4p index 6ed2e35..28179d9 100644 --- a/revpipyload.e4p +++ b/revpipyload.e4p @@ -1,7 +1,7 @@ - + en_US @@ -9,7 +9,7 @@ Python3 Console 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. - 0.8.0 + 0.8.1 Sven Sager akira@narux.de diff --git a/revpipyload/revpipyload.py b/revpipyload/revpipyload.py index c2ee5fc..c050fea 100755 --- a/revpipyload/revpipyload.py +++ b/revpipyload/revpipyload.py @@ -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() diff --git a/setup.py b/setup.py index 304d814..06c8da4 100644 --- a/setup.py +++ b/setup.py @@ -27,7 +27,7 @@ setup( license="LGPLv3", name="revpipyload", - version="0.8.0", + version="0.8.1", scripts=["data/revpipyload"],