def main(argv=None):
    if argv is None:
        argv = sys.argv
    try:
        args = parse_args(argv)
        config = PressgangConfig("%s/.pressgangcli.conf" %
                                 os.path.expanduser("~"))
        topic_server = TopicServer(config.get_location())
        topic = Topic(topic_server, args.TOPIC)
        output = None

        if args.json:
            output = topic.get_json(revision=int(args.revision))
        elif args.html:
            output = topic.get_html(revision=int(args.revision))
        else:
            output = topic.get_xml(revision=int(args.revision))

        if output is None:
            if args.revision != 0:
                raise Error("No such topic/revision combination exists.")
            else:
                raise Error("No such topic exists.")
        else:
            print output
            return 0

    except Usage, err:
        print >>sys.stderr, err.msg
        print >>sys.stderr, ("For help and usage information use the --help " +
                             "argument.")
        return 2