#!/usr/bin/env python
# Licensed under the MIT license
# http://opensource.org/licenses/mit-license.php or see LICENSE file.
# Copyright 2008 Brisa Team <brisa-develop@garage.maemo.org>

import sys
import pprint

from optparse import OptionParser, OptionGroup, make_option

from brisa.core import config


def main():
    parser = OptionParser(usage='Usage: %prog [options] [args]')
    general = OptionGroup(parser, 'General options')
    general_options = [make_option('-v', '--version', help='display version'\
                                  ' information and exit', dest='version',
                                  action='store_true', default=False),
                       make_option('-i', '--items', help='print media server'\
                                   ' parameters and values',
                                   action='store_true', dest='item_section',
                                   default=False)]
    general.add_options(general_options)
    parser.add_option_group(general)

    set = OptionGroup(parser, 'Configuring parameters', 'Combine the '\
                      'following options to set parameters values. For'\
                      ' example: "brisa-media-server-conf -ptest value".')
    set_option = make_option('-p', '--parameter', help='parameter name to '\
                               'set value', metavar='PARAMETER',
                               dest='parameter')
    set.add_option(set_option)
    parser.add_option_group(set)

    (options, args) = parser.parse_args()

    if options.version:
        print 'brisa-media-server-conf 0.1.1'
        print 'License MIT: Copyright (c) 2008-2009 BRisa Team'\
              ' <http://www.opensource.org/licenses/mit-license.php>'
        print 'Written by Andre Dieb Martins.'
        sys.exit()

    if options.item_section:
        pprint.pprint(config.manager.items('media_server'))
        sys.exit()

    if options.parameter:
        print 'setting parameter', options.parameter, args
        config.manager.set_parameter('media_server', options.parameter,
                                     ' '.join(args))
        config.manager.save()
        sys.exit()

    # Launch default GUI
    from brisa_media_server.conf import gui
    gui.run()


if __name__ == '__main__':
    main()
