49 lines
1.4 KiB
Python
Executable File
49 lines
1.4 KiB
Python
Executable File
#!/usr/bin/python3
|
|
"""Zephir-cmd-input script
|
|
"""
|
|
from os import environ
|
|
from sys import exit, argv
|
|
from traceback import print_exc
|
|
from json import dumps
|
|
from cucchiaiata import Parser, config, Configuration, JsonError
|
|
from cucchiaiata.i18n import _
|
|
from cucchiaiata.output.interactive import get as interactive_get
|
|
from cucchiaiata.output.json import get as json_get
|
|
|
|
|
|
def main():
|
|
dico = {'interactive': interactive_get,
|
|
'json': json_get,
|
|
}
|
|
default_outputs = ','.join(dico.keys())
|
|
outputs = [dico[output] for output in environ.get('RISOTTO_OUTPUT', default_outputs).split(',')]
|
|
try:
|
|
if len(argv) > 2 and argv[1] == 'v1.setting.session.configure':
|
|
Configuration().get()
|
|
else:
|
|
parser = Parser()
|
|
message = parser.remote_config.option('message').value.get()
|
|
for output in outputs:
|
|
func = output(message)
|
|
if func:
|
|
func(parser.get(),
|
|
config,
|
|
)
|
|
break
|
|
except KeyboardInterrupt:
|
|
pass
|
|
except JsonError as err:
|
|
print(dumps(err.message,
|
|
indent=config.indent),
|
|
)
|
|
exit(1)
|
|
except Exception as err:
|
|
if config.debug:
|
|
print_exc()
|
|
print(_('Error: {}').format(err))
|
|
exit(1)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|