[enh] add 'yunohost tools shell'

This commit is contained in:
Laurent Peuch 2017-08-15 17:18:50 +02:00
parent f41c2dd763
commit 52c7a37a78
2 changed files with 30 additions and 0 deletions

View file

@ -1478,6 +1478,12 @@ tools:
extra: extra:
pattern: *pattern_port pattern: *pattern_port
### tools_shell()
shell:
configuration:
authenticate: all
action_help: Launch a development shell
### tools_shutdown() ### tools_shutdown()
shutdown: shutdown:
action_help: Shutdown the server action_help: Shutdown the server

View file

@ -814,6 +814,30 @@ def tools_migrations_state():
return read_json(MIGRATIONS_STATE_PATH) return read_json(MIGRATIONS_STATE_PATH)
def tools_shell(auth):
"""
Launch an (i)python shell in the YunoHost context.
This is entirely aim for development.
"""
logger.warn("The \033[1;34mauth\033[0m is available in this context")
try:
from IPython import embed
embed()
except ImportError:
logger.warn("You don't have IPython installed, consider installing it as it is way better than the standard shell.")
logger.warn("Falling back on the standard shell.")
import readline # will allow Up/Down/History in the console
readline # to please pyflakes
import code
vars = globals().copy()
vars.update(locals())
shell = code.InteractiveConsole(vars)
shell.interact()
def _get_migrations_list(): def _get_migrations_list():
migrations = [] migrations = []