예제 #1
0
def cli():
    # Parse CLI arguments
    args_parser = ArgumentParser("whispers", description=("Identify secrets and dangerous behaviours"))
    args_parser.add_argument("-v", "--version", action="version", version=f"whispers {__version__}")
    args_parser.add_argument("-c", "--config", default=None, help="config file")
    args_parser.add_argument("-o", "--output", help="output file (.yml)")
    args_parser.add_argument("src", nargs="?", help="source code file or directory")
    args = args_parser.parse_args()

    # Default response
    if not args.src:
        exit(args_parser.print_help())

    # Clear output file
    if args.output:
        args.output = Path(args.output)
        args.output.write_text("")

    # Configure execution
    configure_log()
    if args.config:
        args.config = load_config(args.config, src=args.src)

    # Valar margulis
    for secret in run(args.src, config=args.config):
        format_stdout(secret, args.output)
예제 #2
0
파일: cli.py 프로젝트: stevieg27/whispers
def cli(arguments=None):
    # Parse CLI arguments
    args = parse_args(arguments)

    # Show information
    if args.info:
        exit(cli_info())

    # Default response
    if not args.src:
        exit(cli_parser().print_help())

    # Clear output file
    if args.output:
        args.output = Path(args.output)
        args.output.write_text("")

    # Configure execution
    configure_log()
    if args.config:
        args.config = load_config(args.config, src=args.src)

    # Valar margulis
    for secret in run(args):
        format_stdout(secret, args.output)

    # Clean up
    cleanup_log()
예제 #3
0
def cli():
    # Parse CLI arguments
    args = parse_args()

    # Valar margulis
    for secret in run(args):
        format_stdout(secret, args.output)

    # Clean up
    cleanup_log()
예제 #4
0
def test_format_stdout():
    secret = Secret("file", 123, "key", "value", "message", "severity")
    secret_str = json.dumps(secret._asdict())
    assert format_stdout(secret) == secret_str