def METHOD_NAME(ctx, topic, devel, base):
    """Obtain help for a certain topic, plugin or command.
    The <topic> can either be a plugin name or one of:
    \b
        - topics
        - plugins
        - sources
    \b
    Examples:
        snapcraft help topics
        snapcraft help plugins
        snapcraft help sources
        snapcraft help go
        snapcraft help go --base core18
        snapcraft help build
    """
    if not topic:
        click.echo(ctx.parent.get_help())
        click.echo(
            dedent(
                """\
            For more help, use:
                snapcraft help topics
                snapcraft help <topic>
                snapcraft help <plugin-name>
                snapcraft help <command-name>
        """
            )
        )
    elif topic in ctx.parent.command.commands:
        ctx.info_name = topic
        click.echo(ctx.parent.command.commands[topic].get_help(ctx))
    elif topic == "topics":
        for key in _TOPICS:
            click.echo(key)
    elif topic in _TOPICS:
        _topic_help(topic, devel)
    else:
        try:
            _module_help(topic, devel, base)
        except ImportError:
            # 10 is the limit which determines ellipsis is needed
            if len(topic) > 10:
                topic = "{}...".format(topic[:10])
            echo.wrapped(
                dedent(
                    """\
    There is no help topic, plugin or command {!r}. Try:
    For topics:
        snapcraft help topics
    For valid plugins:
        snapcraft list-plugins
    Or for general help:
        snapcraft help
    """
                ).format(topic)
            )
            sys.exit(1)