mirror of
https://github.com/ChristianLight/tutor.git
synced 2024-05-29 20:30:48 +00:00
728ef966dc
- 💥[Improvement] Upgrade Open edX to Koa - 💥 Setting changes: - The ``ACTIVATE_HTTPS`` setting was renamed to ``ENABLE_HTTPS``. - Other ``ACTIVATE_*`` variables were all renamed to ``RUN_*``. - The ``WEB_PROXY`` setting was removed and ``RUN_CADDY`` was added. - The ``NGINX_HTTPS_PORT`` setting is deprecated. - Architectural changes: - Use Caddy as a web proxy for automated SSL/TLS certificate generation: - Nginx no longer listens to port 443 for https traffic - The Caddy configuration file comes with a new ``caddyfile`` patch for much simpler SSL/TLS management. - Configuration files for web proxies are no longer provided. - Kubernetes deployment no longer requires setting up a custom Ingress resource or custom manager. - Gunicorn and Whitenoise are replaced by uwsgi: this increases boostrap performance and makes it no longer necessary to mount media folders in the Nginx container. - Replace memcached and rabbitmq by redis. - Additional features: - Make it possible to disable all plugins at once with ``plugins disable all``. - Add ``tutor k8s wait`` command to wait for a pod to become ready - Faster, more reliable static assets with local memory caching - Deprecation: proxy files for Apache and Nginx are no longer provided out of the box. - Removed plugin `{{ patch (...) }}` statements: - "https-create", "k8s-ingress-rules", "k8s-ingress-tls-hosts": these are no longer necessary. Instead, declare your app in the "caddyfile" patch. - "local-docker-compose-nginx-volumes": this patch was primarily used to serve media assets. The recommended is now to serve assets with uwsgi.
76 lines
2.1 KiB
Python
Executable File
76 lines
2.1 KiB
Python
Executable File
#! /usr/bin/env python3
|
|
import sys
|
|
|
|
import appdirs
|
|
import click
|
|
import click_repl
|
|
|
|
from .android import android
|
|
from .config import config_command
|
|
from .context import Context
|
|
from .dev import dev
|
|
from .images import images_command
|
|
from .k8s import k8s
|
|
from .local import local
|
|
from .plugins import plugins_command, add_plugin_commands
|
|
from .ui import ui
|
|
from .webui import webui
|
|
from ..__about__ import __version__
|
|
from .. import exceptions
|
|
from .. import fmt
|
|
from .. import utils
|
|
|
|
|
|
def main():
|
|
try:
|
|
click_repl.register_repl(cli, name="ui")
|
|
cli.add_command(images_command)
|
|
cli.add_command(config_command)
|
|
cli.add_command(local)
|
|
cli.add_command(dev)
|
|
cli.add_command(android)
|
|
cli.add_command(k8s)
|
|
cli.add_command(ui)
|
|
cli.add_command(webui)
|
|
cli.add_command(print_help)
|
|
cli.add_command(plugins_command)
|
|
add_plugin_commands(cli)
|
|
cli() # pylint: disable=no-value-for-parameter
|
|
except KeyboardInterrupt:
|
|
pass
|
|
except exceptions.TutorError as e:
|
|
fmt.echo_error("Error: {}".format(e.args[0]))
|
|
sys.exit(1)
|
|
|
|
|
|
@click.group(context_settings={"help_option_names": ["-h", "--help", "help"]})
|
|
@click.version_option(version=__version__)
|
|
@click.option(
|
|
"-r",
|
|
"--root",
|
|
envvar="TUTOR_ROOT",
|
|
default=appdirs.user_data_dir(appname="tutor"),
|
|
show_default=True,
|
|
type=click.Path(resolve_path=True),
|
|
help="Root project directory (environment variable: TUTOR_ROOT)",
|
|
)
|
|
@click.pass_context
|
|
def cli(context, root):
|
|
if utils.is_root():
|
|
fmt.echo_alert(
|
|
"You are running Tutor as root. This is strongly not recommended. If you are doing this in order to access"
|
|
" the Docker daemon, you should instead add your user to the 'docker' group. (see https://docs.docker.com"
|
|
"/install/linux/linux-postinstall/#manage-docker-as-a-non-root-user)"
|
|
)
|
|
context.obj = Context(root)
|
|
|
|
|
|
@click.command(help="Print this help", name="help")
|
|
def print_help():
|
|
with click.Context(cli) as context:
|
|
click.echo(cli.get_help(context))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|