Пример #1
0
def init(args) -> None:
    """Clowder init command private implementation"""

    clowder_repo_dir = ENVIRONMENT.current_dir / '.clowder'
    if clowder_repo_dir.is_dir():
        try:
            clowder_repo_dir.rmdir()
        except OSError:
            LOG.error("Clowder already initialized in this directory")
            raise

    CONSOLE.stdout(f"Create clowder repo from {fmt.green(args.url)}\n")
    if args.branch is None:
        branch = 'master'
    else:
        branch = str(args.branch[0])
    clowder_repo_dir = ENVIRONMENT.current_dir / '.clowder'
    repo = ClowderRepo(clowder_repo_dir)
    repo.init(args.url, branch)
Пример #2
0
def _fetch_projects(projects: Tuple[ResolvedProject, ...]) -> None:
    """fetch all projects

    :param Tuple[ResolvedProject, ...] projects: Projects to fetch
    """

    if ENVIRONMENT.clowder_repo_dir is not None:
        ClowderRepo(ENVIRONMENT.clowder_repo_dir).print_status(fetch=True)

    CONSOLE.stdout(' - Fetch upstream changes for projects\n')
    for project in projects:
        CONSOLE.stdout(project.status())
        project.fetch_all()
    CONSOLE.stdout()
Пример #3
0
def add_link_parser(subparsers: argparse._SubParsersAction) -> None:  # noqa
    """Add clowder link parser

    :param argparse._SubParsersAction subparsers: Subparsers action to add parser to
    """

    parser = subparsers.add_parser('link', help='Symlink clowder yaml version')
    parser.formatter_class = argparse.RawTextHelpFormatter
    parser.set_defaults(func=link)

    versions = ClowderRepo.get_saved_version_names()
    add_parser_arguments(parser, [(['version'],
                                   dict(metavar='<version>',
                                        choices=versions,
                                        nargs='?',
                                        default=None,
                                        help=fmt.version_options_help_message(
                                            'version to symlink', versions)))])
Пример #4
0
def status(args) -> None:
    """Clowder status command private implementation"""

    projects = Config().process_projects_arg(args.projects)
    projects = CLOWDER_CONTROLLER.filter_projects(CLOWDER_CONTROLLER.projects,
                                                  projects)

    if args.fetch:
        _fetch_projects(projects)
    else:
        if ENVIRONMENT.clowder_repo_dir is not None:
            ClowderRepo(ENVIRONMENT.clowder_repo_dir).print_status()

    projects_output = CLOWDER_CONTROLLER.get_projects_output(projects)
    padding = len(max(projects_output, key=len))

    for project in projects:
        CONSOLE.stdout(project.status(padding=padding))
Пример #5
0
def status(_) -> None:
    """Clowder repo status command entry point"""

    if ENVIRONMENT.clowder_git_repo_dir is not None:
        ClowderRepo(ENVIRONMENT.clowder_repo_dir).git_status()
Пример #6
0
def run(args) -> None:
    """Clowder repo run command private implementation"""

    ClowderRepo(ENVIRONMENT.clowder_repo_dir).run_command(args.command[0])
Пример #7
0
def push(_) -> None:
    """Clowder repo push command private implementation"""

    ClowderRepo(ENVIRONMENT.clowder_git_repo_dir).push()
Пример #8
0
def commit(args) -> None:
    """Clowder repo commit command private implementation"""

    ClowderRepo(ENVIRONMENT.clowder_git_repo_dir).commit(args.message[0])
Пример #9
0
def clean(_) -> None:
    """Clowder repo clean command private implementation"""

    ClowderRepo(ENVIRONMENT.clowder_git_repo_dir).clean()
Пример #10
0
def checkout(args) -> None:
    """Clowder repo checkout command private implementation"""

    ClowderRepo(ENVIRONMENT.clowder_git_repo_dir).checkout(args.ref[0])
Пример #11
0
def add(args) -> None:
    """Clowder repo add command private implementation"""

    ClowderRepo(ENVIRONMENT.clowder_git_repo_dir).add(args.files)