|
|
|
@ -5380,6 +5380,9 @@ class templateClt(scanDirectoryClt, template):
|
|
|
|
|
return False
|
|
|
|
|
return (self.createdDirs, self.filesApply)
|
|
|
|
|
|
|
|
|
|
class IniError(Exception):
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
class iniParser(_error, templateFormat):
|
|
|
|
|
"""Класс для работы с ini файлами
|
|
|
|
|
|
|
|
|
@ -5408,6 +5411,16 @@ class iniParser(_error, templateFormat):
|
|
|
|
|
|
|
|
|
|
def openRWIniFile(self):
|
|
|
|
|
if not os.access(self.iniFile, os.R_OK):
|
|
|
|
|
if not os.path.exists(self.iniFile):
|
|
|
|
|
try:
|
|
|
|
|
# Создание файла
|
|
|
|
|
self.FD = open(self.iniFile, "w+")
|
|
|
|
|
fcntl.flock(self.FD.fileno(), fcntl.LOCK_EX)
|
|
|
|
|
os.chmod(self.iniFile, self.mode)
|
|
|
|
|
except:
|
|
|
|
|
error = _("Unable to create the file") + ": " + self.iniFile
|
|
|
|
|
self.setError(error)
|
|
|
|
|
raise IniError(error)
|
|
|
|
|
return ""
|
|
|
|
|
try:
|
|
|
|
|
self.FD = open(self.iniFile, "r+")
|
|
|
|
@ -5423,16 +5436,6 @@ class iniParser(_error, templateFormat):
|
|
|
|
|
self.setError(_("Unable to write to the file") +
|
|
|
|
|
": " + self.iniFile)
|
|
|
|
|
return False
|
|
|
|
|
if not os.path.exists(self.iniFile):
|
|
|
|
|
try:
|
|
|
|
|
# Создание файла
|
|
|
|
|
self.FD = open(self.iniFile, "w+")
|
|
|
|
|
fcntl.flock(self.FD.fileno(), fcntl.LOCK_EX)
|
|
|
|
|
os.chmod(self.iniFile, self.mode)
|
|
|
|
|
except:
|
|
|
|
|
self.setError(_("Unable to create the file") +
|
|
|
|
|
": " + self.iniFile)
|
|
|
|
|
return False
|
|
|
|
|
if not self.FD:
|
|
|
|
|
self.setError(_("Unable to write to the file") +
|
|
|
|
|
": " + self.iniFile)
|
|
|
|
@ -5440,8 +5443,6 @@ class iniParser(_error, templateFormat):
|
|
|
|
|
self.FD.truncate(0)
|
|
|
|
|
self.FD.seek(0)
|
|
|
|
|
self.FD.write(txtConfig)
|
|
|
|
|
self.FD.close()
|
|
|
|
|
self.FD = None
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
def setVar(self, strHeader, dictVar):
|
|
|
|
@ -5451,6 +5452,7 @@ class iniParser(_error, templateFormat):
|
|
|
|
|
strHeader - имя области
|
|
|
|
|
dictVar - словарь переменных
|
|
|
|
|
"""
|
|
|
|
|
try:
|
|
|
|
|
textIni = self.openRWIniFile()
|
|
|
|
|
nameFomat = self.checkIniFile(textIni)
|
|
|
|
|
if not nameFomat:
|
|
|
|
@ -5482,6 +5484,18 @@ class iniParser(_error, templateFormat):
|
|
|
|
|
if not self.writeIniFile(txtConfig):
|
|
|
|
|
return False
|
|
|
|
|
return True
|
|
|
|
|
except IniError:
|
|
|
|
|
return False
|
|
|
|
|
finally:
|
|
|
|
|
self._closeFD()
|
|
|
|
|
|
|
|
|
|
def _closeFD(self):
|
|
|
|
|
if self.FD:
|
|
|
|
|
try:
|
|
|
|
|
self.FD.close()
|
|
|
|
|
except:
|
|
|
|
|
pass
|
|
|
|
|
self.FD = None
|
|
|
|
|
|
|
|
|
|
def isEmptyFile(self, textIni):
|
|
|
|
|
"""Если файл пустой или содержит только комментарии - False
|
|
|
|
|