Пример #1
0
def parse_args(argv: Optional[List[str]] = None) -> argparse.Namespace:
    """
    :raises: ValueError
    """
    output = ParserBuilder().add_pre_commit_arguments().parse_args(argv)
    if output.baseline:
        raise_exception_if_baseline_file_is_unstaged(output.baseline_filename)

    return output
Пример #2
0
def parser():
    return ParserBuilder().add_console_use_arguments()
Пример #3
0
 def parse_args(argument_string=''):
     # PluginOptions are added in pre-commit hook
     return ParserBuilder()\
         .add_pre_commit_arguments()\
         .parse_args(argument_string.split())
Пример #4
0
def parse_args(argv):
    return ParserBuilder().add_pre_commit_arguments()\
        .parse_args(argv)
Пример #5
0
def parse_args(argv):
    return ParserBuilder()\
        .add_console_use_arguments()\
        .parse_args(argv)
Пример #6
0
def parser():
    # NOTE: We perform the testing via ParserBuilder since that is responsible for initializing
    # the settings as expected. We use `add_pre_commit_arguments` so that we don't need to prefix
    # the arguments with `scan`.
    return ParserBuilder().add_pre_commit_arguments()
Пример #7
0
 def parse_args(argument_string=''):
     # PluginOptions are added by default
     return ParserBuilder().parse_args(argument_string.split())
def parse_args(argv):  # pragma: no cover (Mocked)
    return ParserBuilder()\
        .add_pre_commit_arguments()\
        .parse_args(argv)
def parser():
    return ParserBuilder().add_pre_commit_arguments()
Пример #10
0
def main(argv=None):

    version_check()

    if len(sys.argv) == 1:  # pragma: no cover
        sys.argv.append('-h')

    parserBuilder = ParserBuilder()
    args = parse_args(argv, parserBuilder)

    if args.verbose:  # pragma: no cover
        log.set_debug_level(args.verbose)

    if args.action == 'scan':
        automaton = None
        word_list_hash = None
        if args.word_list_file:
            automaton, word_list_hash = build_automaton(args.word_list_file)

        # Plugins are *always* rescanned with fresh settings, because
        # we want to get the latest updates.
        plugins = initialize.from_parser_builder(
            args.plugins,
            exclude_lines_regex=args.exclude_lines,
            automaton=automaton,
            should_verify_secrets=not args.no_verify,
            plugin_filenames=args.plugin_filenames,
        )
        if args.string:
            line = args.string

            if isinstance(args.string, bool):
                line = sys.stdin.read().splitlines()[0]

            _scan_string(line, plugins)

        else:
            baseline_dict = _perform_scan(
                args,
                plugins,
                automaton,
                word_list_hash,
            )

            if args.import_filename:
                write_baseline_to_file(
                    filename=args.import_filename[0],
                    data=baseline_dict,
                )
            else:
                print(
                    baseline.format_baseline_for_output(
                        baseline_dict,
                    ),
                )

    elif args.action == 'audit':
        if args.report:
            report.execute(args)

        report.validate_args(args, parserBuilder.subparser.choices['audit'])

        if not args.diff and not args.display_results:
            audit.audit_baseline(args.filename[0])
            return 0

        if args.display_results:
            audit.print_audit_results(args.filename[0])
            return 0

        if len(args.filename) != 2:
            print(
                'Must specify two files to compare!',
                file=sys.stderr,
            )
            return 1

        try:
            audit.compare_baselines(args.filename[0], args.filename[1])
        except audit.RedundantComparisonError:
            print(
                "No difference, because it's the same file!",
                file=sys.stderr,
            )

    return 0
Пример #11
0
def parser():
    return (ParserBuilder().add_plugin_options().add_baseline_options())
Пример #12
0
def _parse_console_use_args_with_correct_prog(argument_string=''):
    parser = ParserBuilder()
    # Rename from pytest.py to what it is when ran
    parser.parser.prog = 'detect-secrets'
    return parser.add_console_use_arguments()\
        .parse_args(shlex.split(argument_string))
Пример #13
0
def parse_pre_commit_args_with_correct_prog(argument_string=''):
    parser = ParserBuilder()
    # Rename from pytest.py to what it is when ran
    parser.parser.prog = 'detect-secrets-hook'
    return parser.add_pre_commit_arguments()\
        .parse_args(argument_string.split())