#!python

"""PGSync bootstrap."""
import json
import logging
import os

import click

from pgsync.base import Base
from pgsync.settings import CHECKPOINT
from pgsync.utils import get_config

logger = logging.getLogger(__name__)


@click.command()
@click.option('--teardown', '-t', is_flag=True, help='PGSync teardown')
@click.option('--config', '-c', help='Schema config')
def main(teardown, config):
    """Application onetime Bootstrap."""

    config = get_config(config)
    if os.path.exists(CHECKPOINT):
        os.unlink(CHECKPOINT)

    for database in set([
        schema.get('index') for schema in json.load(
            open(config)
        )
    ]):
        if teardown:
            Base(database).teardown()
        else:
            Base(database).setup()
            logger.info(f'Bootstrap: {database}')


if __name__ == '__main__':
    main()
