isp-maintenance/scripts/devtools/cli/builder.py

51 lines
1.1 KiB
Python
Raw Permalink Normal View History

2024-06-04 23:35:21 +08:00
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import click
import sh
from .lazy_group import LazyGroup
from .utils import abort_if_false
from . import settings
@click.group()
def cli1():
pass
@click.group(
cls=LazyGroup,
lazy_subcommands={'docker-compose': 'cli.builder.docker_compose'},
)
def cli2():
pass
@click.group(help='cmd for build/destroy project in docker containers')
def docker_compose():
pass
@docker_compose.command(help='cmd for build project in docker containers')
def build():
with sh.contrib.sudo(password=settings.SUDO_PASSWORD, _with=True):
sh.docker_compose('-f', settings.COMPOSE_FILE, 'build', _fg=True)
@docker_compose.command(help='cmd for destroy project in docker containers')
@click.option(
'--yes',
is_flag=True,
callback=abort_if_false,
expose_value=False,
prompt='Are you sure you want to destroy docker containers')
def destroy():
with sh.contrib.sudo(password=settings.SUDO_PASSWORD, _with=True):
sh.docker_compose('-f', settings.COMPOSE_FILE, 'down', _fg=True)
cli = click.CommandCollection(
sources=[cli1, cli2],
help='cmd for building the project'
)