Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 14 additions & 14 deletions src/ConfigFile.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,16 @@
from . import _
from Logger import log


def indent(elem, level=0):
i = "\n" + level*" "
i = "\n" + level * " "
if len(elem):
if not elem.text or not elem.text.strip():
elem.text = i + " "
if not elem.tail or not elem.tail.strip():
elem.tail = i
for elem in elem:
indent(elem, level+1)
indent(elem, level + 1)
if not elem.tail or not elem.tail.strip():
elem.tail = i
else:
Expand All @@ -52,49 +53,48 @@ def __init__(self):

def readXML(self):
path = config.pushservice.xmlpath.value

# Abort if no config found
if not os.path.exists(path):
log.debug( "PushService No configuration file present" )
log.debug("PushService No configuration file present")
return None

# Parse if mtime differs from whats saved
mtime = os.path.getmtime(path)
if mtime == self.mtime:
# No changes in configuration, won't read again
return self.cache

# Parse XML
try:
etree = parse(path).getroot()
except Exception, e:
log.exception( ("PushService Exception in readXML: ") + str(e) )
log.exception(("PushService Exception in readXML: ") + str(e))
etree = None
mtime = -1

# Save time and cache file content
self.mtime = mtime
self.cache = etree
return self.cache

def writeXML(self, etree):
path = config.pushservice.xmlpath.value

indent(etree)
data = tostring(etree, 'utf-8')

f = None
try:
f = open(path, 'w')
if data:
f.writelines(data)
except Exception, e:
log.exception( ("PushService Exception in writeXML: ") + str(e) )
log.exception(("PushService Exception in writeXML: ") + str(e))
finally:
if f is not None:
f.close()

# Save time and cache file content
self.mtime = os.path.getmtime( path )
self.mtime = os.path.getmtime(path)
self.cache = etree

Loading