mirror of
https://github.com/libretro/Lakka-LibreELEC.git
synced 2025-01-19 11:52:07 +00:00
73 lines
2.4 KiB
Python
73 lines
2.4 KiB
Python
# SPDX-License-Identifier: GPL-2.0
|
|
# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv)
|
|
|
|
import xbmc
|
|
import xbmcvfs
|
|
import xbmcaddon
|
|
from os import system
|
|
|
|
|
|
class MyMonitor(xbmc.Monitor):
|
|
def __init__(self, *args, **kwargs):
|
|
xbmc.Monitor.__init__(self)
|
|
|
|
def onSettingsChanged(self):
|
|
writeconfig()
|
|
|
|
|
|
# addon
|
|
__addon__ = xbmcaddon.Addon(id='service.net-snmp')
|
|
__addonpath__ = xbmcvfs.translatePath(__addon__.getAddonInfo('path'))
|
|
__addonhome__ = xbmcvfs.translatePath(__addon__.getAddonInfo('profile'))
|
|
if not xbmcvfs.exists(xbmcvfs.translatePath(__addonhome__ + 'share/snmp/')):
|
|
xbmcvfs.mkdirs(xbmcvfs.translatePath(__addonhome__ + 'share/snmp/'))
|
|
config = xbmcvfs.translatePath(__addonhome__ + 'share/snmp/snmpd.conf')
|
|
persistent = xbmcvfs.translatePath(__addonhome__ + 'snmpd.conf')
|
|
|
|
|
|
def writeconfig():
|
|
system("systemctl stop service.net-snmp.service")
|
|
community = __addon__.getSetting("COMMUNITY")
|
|
location = __addon__.getSetting("LOCATION")
|
|
contact = __addon__.getSetting("CONTACT")
|
|
snmpversion = __addon__.getSetting("SNMPVERSION")
|
|
cputemp = __addon__.getSetting("CPUTEMP")
|
|
gputemp = __addon__.getSetting("GPUTEMP")
|
|
|
|
if xbmcvfs.exists(persistent):
|
|
xbmcvfs.delete(persistent)
|
|
|
|
file = xbmcvfs.File(config, 'w')
|
|
file.write('com2sec local default {}\n'.format(community))
|
|
file.write('group localgroup {} local\n'.format(snmpversion))
|
|
file.write('access localgroup "" any noauth exact all all none\n')
|
|
file.write('view all included .1 80\n')
|
|
file.write('syslocation {}\n'.format(location))
|
|
file.write('syscontact {}\n'.format(contact))
|
|
file.write('dontLogTCPWrappersConnects yes\n')
|
|
|
|
if cputemp == "true":
|
|
file.write('extend cputemp "/usr/bin/cputemp"\n')
|
|
|
|
if gputemp == "true":
|
|
file.write('extend gputemp "/usr/bin/gputemp"\n')
|
|
|
|
if snmpversion == "v3":
|
|
file.write('includeFile ../../snmpd.conf\n')
|
|
snmppassword = __addon__.getSetting("SNMPPASSWORD")
|
|
snmpuser = __addon__.getSetting("SNMPUSER")
|
|
system("net-snmp-config --create-snmpv3-user -a MD5 -A {0} {1}".format(snmppassword,snmpuser))
|
|
|
|
file.close()
|
|
system("systemctl start service.net-snmp.service")
|
|
|
|
|
|
if not xbmcvfs.exists(config):
|
|
writeconfig()
|
|
|
|
monitor = MyMonitor()
|
|
while not monitor.abortRequested():
|
|
if monitor.waitForAbort():
|
|
break
|
|
|