#!/usr/bin/env python3

# Usage: ./github-sync.py
#
# Mirror repositories to Github (Fuck M$, get it straight)

from os import chdir, environ, listdir

from abralib import CLONES_PATH, _run_cmd, clone_all_apps, get_repos_json, log

REPOS_TO_SKIP = (
    "apps",
    "backup-bot",
    "docker-dind-bats-kcov",
    "docs.coopcloud.tech",
    "pyabra",
    "radicle-seed-node",
    "swarm-cronjob",
    "tyop",
)


def main():
    """Run the script."""
    repos_json = get_repos_json()
    clone_all_apps(repos_json)

    for app in listdir(CLONES_PATH):
        if app in REPOS_TO_SKIP:
            log.info(f"Skipping {app}")
            continue

        app_path = f"{CLONES_PATH}/{app}"
        chdir(app_path)

        log.info(f"Mirroring {app}...")

        token = environ.get("GITHUB_ACCESS_TOKEN")
        remote = f"https://coopcloudbot:{token}@github.com/Coop-Cloud/{app}.git"

        _run_cmd(
            f"git remote add github {remote} || true",
            shell=True,
        )

        _run_cmd("git push github --all")


main()