from __future__ import absolute_import
import npyscreen
from mylinux.libs import overrides
from mylinux.libs import AppErr
from .LogsForm import LogsForm
[docs]class LogsApp(npyscreen.NPSAppManaged):
requiredModelValues = ['packageName', 'stdout', 'stderr']
@overrides(npyscreen.NPSAppManaged)
[docs] def onStart(self):
self.setModelValues()
self.checkModelValues()
self.mainForm = LogsForm(
name='Logs from package: {0}'.format(self.modelValues['packageName']),
lines=40,
columns=80
)
self.mainForm.stdout.values = [value for value in self.modelValues['stdout']]
self.mainForm.stderr.values = [value for value in self.modelValues['stderr']]
''' REGISTER FORM '''
self.registerForm('MAIN', self.mainForm)
@overrides(npyscreen.NPSAppManaged)
[docs] def onCleanExit(self):
self.exit(
stderr=self.mainForm.stderr.values,
stdout=self.mainForm.stdout.values
)
[docs] def checkModelValues(self):
error = []
for requiredElement in LogsApp.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