[core/output] Rewrite to hide sys.stout

Add generic "draw()" method that redirects internally to the actual
calls. These can now produce JSON, which is nicer because:

1. Easier to use during testing
2. More flexible
3. Centralizes printing (somewhat)

Still, the "suffix" concept isn't really nice, but so far, I have no
better approach.
This commit is contained in:
Tobias Witek 2020-02-01 21:37:38 +01:00
parent b7ca5eb3a5
commit 66537fbe05
4 changed files with 44 additions and 20 deletions

View file

@ -3,6 +3,7 @@
import sys
import core.config
import core.output
import core.module
def main():
config = core.config.Config(sys.argv[1:])
@ -10,15 +11,15 @@ def main():
modules = []
for module in config.modules():
modules.append(core.module.load(module))
sys.stdout.write(output.start())
output.draw('start')
while True:
sys.stdout.write(output.begin_status_line())
output.clear()
for module in modules:
module.update()
sys.stdout.write(output.draw(module))
sys.stdout.write(output.end_status_line())
output.append(module)
output.draw('statusline')
output.wait(config.interval())
sys.stdout.write(output.stop())
output.draw('stop')
if __name__ == "__main__":