Beispiel #1
0
def loader(loader_builder: DoltLoaderBuilder, dolt_dir: str, clone: bool,
           push: bool, remote_name: str, dry_run: bool, remote_url: str):
    if clone:
        assert remote_url, 'If clone is True then remote must be passed'
        temp_dir = tempfile.mkdtemp()
        logger.info('Clone is set to true, so ignoring dolt_dir')
        repo = Dolt(temp_dir)
        if clone:
            logger.info(
                'Clone set to True, cloning remote {}'.format(remote_url))
        repo.clone(remote_url)
    else:
        assert os.path.exists(os.path.join(
            dolt_dir, '.dolt')), 'Repo must exist locally if not cloned'
        repo = Dolt(dolt_dir)

    logger.info('''Commencing to load to DoltHub with the following options:
                        - dolt_dir  {dolt_dir}
                        - clone     {clone}
                        - remote    {remote}
                        - push      {push}
        '''.format(dolt_dir=repo.repo_dir,
                   push=push,
                   clone=clone,
                   remote=remote_name))

    if not dry_run:
        loaders = loader_builder()
        for dolt_loader in loaders:
            branch = dolt_loader(repo)
            if push:
                logger.info('Pushing changes to remote {} on branch {}'.format(
                    remote_name, branch))
                repo.push(remote_name, branch)
Beispiel #2
0
def load_to_dolthub(loader_or_loaders: Union[DoltLoader, List[DoltLoader]],
                    clone: bool,
                    push: bool,
                    remote_name: str,
                    remote_url: str,
                    dolt_dir: str = None,
                    dry_run: bool = False):
    """
    This function takes a `DoltLoaderBuilder`, repo and remote settings, and attempts to execute the loaders returned
    by the builder.
    :param loader_or_loaders:
    :param dolt_dir:
    :param clone:
    :param push:
    :param remote_name:
    :param dry_run:
    :param remote_url:
    :return:
    """
    if type(loader_or_loaders) == list:
        loaders = loader_or_loaders
    else:
        loaders = [loader_or_loaders]

    if clone:
        assert remote_url, 'If clone is True then remote must be passed'
        temp_dir = tempfile.mkdtemp()
        logger.info('Clone is set to true, so ignoring dolt_dir')
        if clone:
            logger.info(
                'Clone set to True, cloning remote {}'.format(remote_url))
        repo = Dolt.clone(remote_url, temp_dir)
    else:
        assert os.path.exists(os.path.join(
            dolt_dir, '.dolt')), 'Repo must exist locally if not cloned'
        repo = Dolt(dolt_dir)

    logger.info('''Commencing to load to DoltHub with the following options:
                        - dolt_dir  {dolt_dir}
                        - clone     {clone}
                        - remote    {remote}
                        - push      {push}
        '''.format(dolt_dir=repo.repo_dir,
                   push=push,
                   clone=clone,
                   remote=remote_name))

    if not dry_run:
        for dolt_loader in loaders:
            branch = dolt_loader(repo)
            if push:
                logger.info('Pushing changes to remote {} on branch {}'.format(
                    remote_name, branch))
                repo.push(remote_name, branch)
def pushData(repo: Dolt, branch: str):
    repo.push('origin', branch)