Source code for invenio_cli.commands.commands

# -*- coding: utf-8 -*-
# Copyright (C) 2020 CERN.
# Invenio-Cli is free software; you can redistribute it and/or modify it
# under the terms of the MIT License; see LICENSE file for more details.

"""Invenio module to ease the creation and management of applications."""

from ..helpers.env import env
from ..helpers.process import run_interactive
from .steps import CommandStep

[docs]class Commands(object): """Abstraction over CLI commands that are either local or containerized.""" def __init__(self, cli_config): """Constructor. :param cli_config: :class:CLIConfig instance """ self.cli_config = cli_config
[docs] @classmethod def shell(cls): """Start a shell in the virtual environment.""" command = [ "pipenv", "shell", ] return run_interactive(command, env={"PIPENV_VERBOSITY": "-1"})
[docs] @classmethod def pyshell(cls, debug=False): """Start a Python shell.""" with env(FLASK_ENV="development" if debug else "production"): command = ["pipenv", "run", "invenio", "shell"] return run_interactive(command, env={"PIPENV_VERBOSITY": "-1"})
[docs] def destroy(self): """Destroys the instance's virtualenv. NOTE: This function has no knowledge of the existence of services. Refer to to destroy services' containers. """ steps = [ CommandStep( cmd=["pipenv", "--rm"], env={"PIPENV_VERBOSITY": "-1"}, message="Destroying virtual environment", ) ] return steps