from __future__ import absolute_import
import npyscreen
from mylinux.libs import overrides
from mylinux.libs import AppErr
from .CreateForm import CreateForm
[docs]class CreateApp(npyscreen.NPSAppManaged):
requiredModelValues = [
'hints',
'packageName',
'package-install',
'package-purge',
'config-install',
'config-purge',
'test.py'
]
@overrides(npyscreen.NPSAppManaged)
[docs] def onStart(self):
self.setModelValues()
self.checkModelValues()
self.mainForm = CreateForm(
name='Create package: {0}'.format(self.modelValues['packageName']),
lines=40,
columns=80
)
self.mainForm.hints = self.modelValues['hints']
self.mainForm.packageInstall.entry_widget.values = self.modelValues['package-install']
self.mainForm.packagePurge.entry_widget.values = self.modelValues['package-purge']
self.mainForm.configInstall.entry_widget.values = self.modelValues['config-install']
self.mainForm.configPurge.entry_widget.values = self.modelValues['config-purge']
self.mainForm.test.entry_widget.values = self.modelValues['test.py']
''' REGISTER FORM '''
self.registerForm('MAIN', self.mainForm)
@overrides(npyscreen.NPSAppManaged)
[docs] def onCleanExit(self):
self.exit(
info={
'module': self.mainForm.moduleName.value,
'class': self.mainForm.className.value,
'info': self.mainForm.info.value
},
scripts={
'package-install': '\n'.join(self.mainForm.packageInstall.entry_widget.values),
'package-purge': '\n'.join(self.mainForm.packagePurge.entry_widget.values),
'config-install': '\n'.join(self.mainForm.configInstall.entry_widget.values),
'config-purge': '\n'.join(self.mainForm.configPurge.entry_widget.values),
'test.py': '\n'.join(self.mainForm.test.entry_widget.values)
}
)
[docs] def checkModelValues(self):
error = []
for requiredElement in CreateApp.requiredModelValues:
if not requiredElement in self.modelValues:
error.append(requiredElement)
if error:
raise AppErr.developer('Missing in modelValues! ==> ' + str(error))
[docs] def setModelValues(self):
pass
[docs] def exit(self, **returned):
pass