develop
mhiretskiy 16 years ago
parent d9eda1d274
commit a09d586aac

@ -50,7 +50,7 @@ class cl_help:
self.progName словарь имена используемых программ и их номера для
доступа к переменным
Пример: {'cl-groupadd':0, 'cl-groupdel':1}
self.data список данных для словаря, каждый эленмент словарь:
self.data список данных для справки, каждый элемент словарь:
progAccess: список номеров программ отображающих
Пример: {'progAccess':(0,),
'shortOption':"g",
@ -178,9 +178,10 @@ class cl_help:
continue
bef = "\n"*beforeStrChapter
aft = "\n"*afterStrChapter
if visibleChapter:
# если блок не пустой и раздел отображаемый
if len(textChapterBloc) > 0 and visibleChapter:
help += nameChapter + ": " + bef
help += textChapterBloc + aft
help += textChapterBloc + aft
return help.encode("UTF-8")
def addChapterHelp(self, numChapter, helpTxt):
@ -198,6 +199,15 @@ class cl_help:
self.data.append(dataHash)
return True
def handleCheckAccess(self,dataHash):
"""Замещаемый дополнительный обработчик проверки
доступности опции.
Входные параметры:
dataHash элементы списка данных справки (self.data)
"""
return True
def access(self,dataHash):
"""Доступна ли опция вызывающей программе
@ -212,11 +222,13 @@ class cl_help:
numProg = self.progName[self.cmdName]
if 'progAccess' in dataHash:
if numProg in dataHash['progAccess']:
return True
# вызов дополнительной проверки доступа к опции
return self.handleCheckAccess(dataHash)
else:
return False
else:
return True
# вызов дополнительной проверки доступа к опции
return self.handleCheckAccess(dataHash)
def getTypeChapter(self, nameChapter):
"""Получить тип раздела по его имени
@ -247,18 +259,19 @@ class cl_help:
self.longOpt = []
return True
def getAllOpt(self,typeOpt="short", optionsChapters=False):
def getAllOpt(self,typeOpt="all", optionsChapters=False):
"""Получить все доступные опции
Параметры:
typeOpt 'short'/'long', вернуть короткие или длинные опции
typeOpt 'short'/'long'/'all', вернуть короткие или длинные
опции или все (возвращаются кортежем)
optionsChapters фильтр для опций по типам разделов (список,кортеж)
Возвращаемые параметры:
строка коротки или список строк длинных опций ('hb:c:wg:G:k:ms:u:')
"""
# Выдать все действующие опции
if typeOpt=="short":
if typeOpt=="short" or typeOpt=="all":
if len(self.shortOpt) == 0:
for par in self.data:
if optionsChapters and\
@ -270,8 +283,7 @@ class cl_help:
self.shortOpt.append(par["shortOption"]+':')
else:
self.shortOpt.append(par["shortOption"])
return "".join(self.shortOpt)
if typeOpt=="long":
if typeOpt=="long" or typeOpt=="all":
if len(self.longOpt) == 0:
for par in self.data:
if optionsChapters and\
@ -284,7 +296,12 @@ class cl_help:
self.longOpt.append(par["longOption"]+'=')
else:
self.longOpt.append(par["longOption"])
if typeOpt=="short":
return "".join(self.shortOpt)
elif typeOpt=="long":
return self.longOpt
elif typeOpt=="all":
return ("".join(self.shortOpt),self.longOpt)
def getShortOpt(self,option):
"""Из любой опции получить короткую опцию.

Loading…
Cancel
Save