from fabric import Connection
from invoke import task
import subprocess
import shlex

APP_NAME = "wiki"
SSH_HOST = f"{APP_NAME}@158.160.115.150"
DOCKER_REGISTRY = "cr.yandex/crplfk0168i4o8kd7ade"


def run(args):
    return subprocess.run(args, check=True, capture_output=True).stdout


@task
def deploy(c):
    print("Ready to setup remote host")
    with Connection(SSH_HOST) as c:
        c.put(
            "docker-compose.yml",
            remote=f"/home/{APP_NAME}/docker-compose.yml",
        )
        c.run("cp .env .env.prod")
        c.run(
            f"docker-compose --project-name {shlex.quote(APP_NAME)} --env-file=.env.prod up --detach --remove-orphans"
        )