Source code for fastiot.cli.commands.clean

import os
from shutil import rmtree

import typer

from fastiot.cli.model import ProjectContext
from fastiot.cli.typer_app import DEFAULT_CONTEXT_SETTINGS, app, extras_cmd


[docs]@app.command(context_settings=DEFAULT_CONTEXT_SETTINGS) def clean(do_clean_all: bool = typer.Option(False, '-a', '--all', help="If specified, it will also cleanup local " "docker instance.") ): """ This command cleans up all generated files and removes all container and images from docker daemon. """ _clean_generated_files(context=ProjectContext.default) if do_clean_all: os.system("docker ps -q | xargs -r docker kill") os.system("docker ps -aq | xargs -r docker rm") os.system("docker images -q | xargs -r docker rmi -f")
def _clean_generated_files(context: ProjectContext): build_dir = os.path.join(context.project_root_dir, context.build_dir) if os.path.exists(build_dir): rmtree(build_dir)
[docs]@extras_cmd.command(context_settings=DEFAULT_CONTEXT_SETTINGS) def remove_all_container(kill: bool = typer.Option(False, '-k', '--kill', help="Sending kill signal to containers, instead of stop signal.")): """ Remove all running container """ if kill: os.system("docker ps -q | xargs -r docker kill") else: os.system("docker ps -q | xargs -r docker stop") os.system("docker ps -aq | xargs -r docker rm")