def status(self, group_names, padding): """Print status for groups""" groups = [g for g in self.groups if g.name in group_names] for group in groups: print(fmt.group_name(group.name)) for project in group.projects: print(project.status(padding=padding))
def print_validation(self): """Print validation message for projects in group""" if self.is_valid(): return print(fmt.group_name(self.name)) for project in self.projects: project.print_validation()
def print_existence_message(self): """Print existence validation message for projects in group""" if self.existing_projects(): return print(fmt.group_name(self.name)) for project in self.projects: project.print_exists()
def _run_group_command(group, skip, command, *args, **kwargs): """Run group command and print output""" print(fmt.group_name(group.name)) for project in group.projects: print(project.status()) if project.name in skip: print(fmt.skip_project_message()) continue getattr(project, command)(*args, **kwargs)
def print_parallel_groups_output(groups, skip): """Print output for parallel group command :param list[Group] groups: Groups to print output for :param list[str] skip: Project names to skip """ for group in groups: print(fmt.group_name(group.name)) print_parallel_projects_output(group.projects, skip)
def print_existence_message(self): """Print existence validation message for projects in group""" if self.existing_projects(): return print(fmt.group_name(self.name)) for project in self.projects: if not existing_git_repository(project.full_path()): print(project.status()) existing_git_repository(project.full_path())
def _print_parallel_groups_output(groups, skip): """Print output for parallel group command""" for group in groups: print(fmt.group_name(group.name)) for project in group.projects: if project.name in skip: continue print(project.status()) if project.fork: print(' ' + fmt.fork_string(project.name)) print(' ' + fmt.fork_string(project.fork.name))
def run_group_command(group, skip, command, *args, **kwargs): """Run group command and print output :param Group group: Group to run command for :param list[str] skip: Project names to skip :param str command: Name of method to invoke :param args: List of arguments to pass to method invocation :param kwargs: Dict of arguments to pass to method invocation """ print(fmt.group_name(group.name)) for project in group.projects: print(project.status()) if project.name in skip: print(fmt.skip_project_message()) continue getattr(project, command)(*args, **kwargs)
def _mycommand(self): """Example plugin command private implementation""" print("foo: " + self.app.pargs.foo + '\n') print("Clowder information\n") defaults = CLOWDER_CONTROLLER.defaults print("Default ref: " + defaults.ref) print("Default remote name: " + defaults.remote) print("Default source name: " + defaults.source) print("Default git protocol: " + defaults.protocol) print("Default depth: " + str(defaults.depth)) print("Default recursive value: " + str(defaults.recursive)) print("Default timestamp author: " + str(defaults.timestamp_author)) for group in CLOWDER_CONTROLLER.groups: print('\n' + fmt.group_name(group.name)) print("Group name: " + group.name) print("Group depth: " + str(group.depth)) print("Group recursive: " + str(group.recursive)) print("Group timestamp author: " + str(group.timestamp_author)) print("Group ref: " + group.ref) print("Group remote name: " + group.remote_name) for project in group.projects: print("\nProject name: " + project.name) print("Project path: " + project.path) print("Project ref: " + project.ref) print("Project remote: " + project.remote) print("Project depth: " + str(project.depth)) print("Project recursive: " + str(project.recursive)) print("Source name: " + project.source.name) print("Source url: " + project.source.url) if project.fork: print("Fork name: " + project.fork.name) print("Fork path: " + project.fork.path) print("Fork remote name: " + project.fork.remote_name)