# imports - standard imports import os # imports - third party imports import click @click.command("start", help="Start Xhiveframework development processes") @click.option("--no-dev", is_flag=True, default=False) @click.option( "--no-prefix", is_flag=True, default=False, help="Hide process name from bench start log", ) @click.option("--concurrency", "-c", type=str) @click.option("--procfile", "-p", type=str) @click.option("--man", "-m", help="Process Manager of your choice ;)") def start(no_dev, concurrency, procfile, no_prefix, man): from bench.utils.system import start start( no_dev=no_dev, concurrency=concurrency, procfile=procfile, no_prefix=no_prefix, procman=man, ) @click.command("restart", help="Restart supervisor processes or systemd units") @click.option("--web", is_flag=True, default=False) @click.option("--supervisor", is_flag=True, default=False) @click.option("--systemd", is_flag=True, default=False) def restart(web, supervisor, systemd): from bench.bench import Bench if not systemd and not web: supervisor = True Bench(".").reload(web, supervisor, systemd) @click.command("set-nginx-port", help="Set NGINX port for site") @click.argument("site") @click.argument("port", type=int) def set_nginx_port(site, port): from bench.config.site_config import set_nginx_port set_nginx_port(site, port) @click.command("set-ssl-certificate", help="Set SSL certificate path for site") @click.argument("site") @click.argument("ssl-certificate-path") def set_ssl_certificate(site, ssl_certificate_path): from bench.config.site_config import set_ssl_certificate set_ssl_certificate(site, ssl_certificate_path) @click.command("set-ssl-key", help="Set SSL certificate private key path for site") @click.argument("site") @click.argument("ssl-certificate-key-path") def set_ssl_certificate_key(site, ssl_certificate_key_path): from bench.config.site_config import set_ssl_certificate_key set_ssl_certificate_key(site, ssl_certificate_key_path) @click.command("set-url-root", help="Set URL root for site") @click.argument("site") @click.argument("url-root") def set_url_root(site, url_root): from bench.config.site_config import set_url_root set_url_root(site, url_root) @click.command("set-mariadb-host", help="Set MariaDB host for bench") @click.argument("host") def set_mariadb_host(host): from bench.utils.bench import set_mariadb_host set_mariadb_host(host) @click.command("set-redis-cache-host", help="Set Redis cache host for bench") @click.argument("host") def set_redis_cache_host(host): """ Usage: bench set-redis-cache-host localhost:6379/1 """ from bench.utils.bench import set_redis_cache_host set_redis_cache_host(host) @click.command("set-redis-queue-host", help="Set Redis queue host for bench") @click.argument("host") def set_redis_queue_host(host): """ Usage: bench set-redis-queue-host localhost:6379/2 """ from bench.utils.bench import set_redis_queue_host set_redis_queue_host(host) @click.command("set-redis-socketio-host", help="Set Redis socketio host for bench") @click.argument("host") def set_redis_socketio_host(host): """ Usage: bench set-redis-socketio-host localhost:6379/3 """ from bench.utils.bench import set_redis_socketio_host set_redis_socketio_host(host) @click.command("download-translations", help="Download latest translations") def download_translations(): from bench.utils.translation import download_translations_p download_translations_p() @click.command( "renew-lets-encrypt", help="Sets Up latest cron and Renew Let's Encrypt certificate" ) def renew_lets_encrypt(): from bench.config.lets_encrypt import renew_certs renew_certs() @click.command("backup-all-sites", help="Backup all sites in current bench") def backup_all_sites(): from bench.utils.system import backup_all_sites backup_all_sites(bench_path=".") @click.command( "disable-production", help="Disables production environment for the bench." ) def disable_production(): from bench.config.production_setup import disable_production disable_production(bench_path=".") @click.command( "src", help="Prints bench source folder path, which can be used as: cd `bench src`" ) def bench_src(): from bench.cli import src print(os.path.dirname(src)) @click.command("find", help="Finds benches recursively from location") @click.argument("location", default="") def find_benches(location): from bench.utils import find_benches find_benches(directory=location) @click.command( "migrate-env", help="Migrate Virtual Environment to desired Python Version" ) @click.argument("python", type=str) @click.option("--no-backup", "backup", is_flag=True, default=True) def migrate_env(python, backup=True): from bench.utils.bench import migrate_env migrate_env(python=python, backup=backup) @click.command("app-cache", help="View or remove items belonging to bench get-app cache") @click.option("--clear", is_flag=True, default=False, help="Remove all items") @click.option( "--remove-app", default="", help="Removes all items that match provided app name", ) @click.option( "--remove-key", default="", help="Removes all items that matches provided cache key", ) def app_cache_helper(clear=False, remove_app="", remove_key=""): from bench.utils.bench import cache_helper cache_helper(clear, remove_app, remove_key)