def report_command_parser(parent_parser, configuration, **kwargs):
    """sets up the argument parser for the report command"""
    parser = parent_parser.add_parser('report', description=
        'Generate a report about modules and versions deployed in the puppet environments.'
        , help='generate a report about modules and versions')
    filter_group = parser.add_argument_group('filter options')
    filter_group.add_argument('-e', '--env', '--environment',
        '--environments', nargs='*', type=str, dest='environments', metavar
        ='PATTERN', help=
        'only report modules in environments matching any PATTERN. If the first supplied PATTERN is !, only report modules in environments NOT matching any PATTERN. PATTERN is a case-sensitive glob(7)-style pattern.'
        )
    filter_group.add_argument('-m', '--mod', '--module', '--modules', nargs
        ='*', type=str, dest='modules', help=
        'only report modules matching any PATTERN. If the first supplied PATTERN is !, only report modules NOT matching any PATTERN. PATTERN is a case-sensitive glob(7)-style pattern.'
        )
    display_group = parser.add_argument_group('display options')
    display_group.add_argument('-c', '--compare', dest='compare', action=
        'store_true', help=
        'compare mode will only show modules that differ between environments.'
        )
    version_check_group = display_group.add_mutually_exclusive_group()
    version_check_group.add_argument('--version-check', dest=
        'version_check', action='store_true', help=
        'disable check for latest version (forge modules) or latest git tag (git modules). The information is cached for subsequent runs. (default: %s)'
         % str(configuration.version_check))
    version_check_group.add_argument('--no-version-check', dest=
        'version_check', action='store_false', help=
        'disable check for latest version (forge modules) or latest git tag (git modules). (default: %s)'
         % str(not configuration.version_check))
    wrap_group = display_group.add_mutually_exclusive_group()
    wrap_group.add_argument('--wrap', dest='wrap', action='store_true',
        help='enable wrapping of long lines. (default: %s)' % str(
        configuration.wrap))
    wrap_group.add_argument('--no-wrap', dest='wrap', action='store_false',
        help='disable wrapping of long lines. (default: %s)' % str(not
        configuration.wrap))
    parser.set_defaults(version_check=configuration.version_check, wrap=
        configuration.wrap)
    return parser
