#!/usr/bin/env python3 # -*- coding: utf-8 -*- import click import sh from .lazy_group import LazyGroup from . import settings @click.group() def cli1(): pass @click.group( cls=LazyGroup, lazy_subcommands={'docker-compose': 'cli.runner.docker_compose'}, ) def cli2(): pass @click.group(help='cmd for run/stop/restart project in docker containers') def docker_compose(): pass @docker_compose.command(help='cmd for run project docker containers') def up(): with sh.contrib.sudo(password=settings.SUDO_PASSWORD, _with=True): sh.docker_compose('-f', settings.COMPOSE_FILE, 'up', '-d', _fg=True) @docker_compose.command(help='cmd for down project docker containers') def down(): with sh.contrib.sudo(password=settings.SUDO_PASSWORD, _with=True): sh.docker_compose('-f', settings.COMPOSE_FILE, 'down', _fg=True) @docker_compose.command(help='cmd for restart project docker containers') def restart(): with sh.contrib.sudo(password=settings.SUDO_PASSWORD, _with=True): sh.docker_compose( '-f', settings.COMPOSE_FILE, 'up', '-d', '--build', '--force-recreate', _fg=True ) cli = click.CommandCollection( sources=[cli1, cli2], help='cmd for running the project standalone or docker-compose' )