def add_report_cmd(subparsers): report_help = ("Produces a report with the analysis of the code format " "adherence of the selected targets taken as a group.") parser = subparsers.add_parser('report', help=report_help) parser.set_defaults(cmd=lambda o: ReportCmd(o)) add_jobs_option(parser) add_json_option(parser) add_clang_options(parser, style_file=True) add_git_tracked_targets_parameter(parser)
def add_report_cmd(subparsers): report_help = ("Runs clang static analysis and produces a summary report " "of the findings.") parser = subparsers.add_parser('report', help=report_help) parser.set_defaults(cmd=lambda o: ReportCmd(o)) add_jobs_option(parser) add_json_option(parser) add_clang_options(parser, report_path=True) add_git_repository_parameter(parser)
def add_check_cmd(subparsers): check_help = ("Validates that the selected targets match the style, gives " "a per-file report and returns a non-zero shell status if " "there are any format issues discovered.") parser = subparsers.add_parser('check', help=check_help) parser.set_defaults(cmd=lambda o: CheckCmd(o)) add_jobs_option(parser) add_json_option(parser) add_clang_options(parser, style_file=True, force=True) add_git_tracked_targets_parameter(parser)
def add_check_cmd(subparsers): check_help = ("Runs clang static analysis and output details for each " "discovered issue. Returns a non-zero shell status if any " "issues are found.") parser = subparsers.add_parser('check', help=check_help) parser.set_defaults(cmd=lambda o: CheckCmd(o)) add_jobs_option(parser) add_json_option(parser) add_clang_options(parser, report_path=True) add_git_repository_parameter(parser)
repository_cmds = { 'copyright_header': CopyrightHeaderCheck(settings), 'basic_style': BasicStyleCheck(settings), 'clang_format': ClangFormatCheck(settings), 'clang_static_analysis': ClangStaticAnalysisCheck(settings), } self.json = settings.json super().__init__(settings, repository_cmds, silent=settings.json) def _output(self, results): if self.json: return super()._output(results) reports = [(self.repository_cmds[l].title + ":\n" + self.repository_cmds[l]._output(r)) for l, r in sorted(results.items())] return '\n'.join(reports) if __name__ == "__main__": description = ("Wrapper to invoke a collection of scripts that check on " "the state of the repository.") parser = argparse.ArgumentParser(description=description) add_jobs_option(parser) add_json_option(parser) add_clang_options(parser, report_path=True, style_file=True, force=True) add_git_tracked_targets_parameter(parser) settings = parser.parse_args() finish_clang_settings(settings) checks = Checks(settings) checks.run()
def add_format_cmd(subparsers): format_help = ("Applies the style formatting to the target files.") parser = subparsers.add_parser('format', help=format_help) parser.set_defaults(cmd=lambda o: FormatCmd(o)) add_clang_options(parser, style_file=True, force=True) add_git_tracked_targets_parameter(parser)