Client facing validate function. Runs _validate() and returns True if the
    the file_paths pass all of the validations. Handles exceptions
    automatically if _validate() throws any and exits the program.

    :param file_paths: List of string file paths to test
    :param opts: command-line arguments namespace - used for creating useful
        messages to the client if any tests fail
    :return: True if the file passes all validation tests

def validate(file_paths, opts):
    """
    Client facing validate function. Runs _validate() and returns True if the
    the file_paths pass all of the validations. Handles exceptions
    automatically if _validate() throws any and exits the program.

    :param file_paths: List of string file paths to test
    :param opts: command-line arguments namespace - used for creating useful
        messages to the client if any tests fail
    :return: True if the file passes all validation tests
    """
    try:
        return _validate(file_paths)
    except ValidationException as e:
        if str(e) == "No files found":
            messages.print_no_files_found(opts)
        else:
            print(e)
        sys.exit(0)