#!/usr/bin/python

import sys
from spacewalk.common.rhnConfig import RHNOptions

do_list=0
if len(sys.argv) == 4 and sys.argv[1] == "get":
    comp = sys.argv[2]
    key = sys.argv[3]
elif len(sys.argv) == 3 and sys.argv[1] == "list":
    comp = sys.argv[2]
    do_list = 1
elif len(sys.argv) == 2:
    # assume we want key from root
    comp = ''
    key = sys.argv[1]
else:
    print "Usage: spacewalk-cfg-get [ { get | list } component [ key ]"
    print "       spacewalk-cfg-get key"
    sys.exit(1)

cfg = RHNOptions(comp)
cfg.parse()

if do_list:
    cfg.show()
else:
    val = cfg.get(key)
    # default_db is a special 'virtual' key
    if key == 'default_db':
        if cfg.get('db_backend') == 'oracle':
            default_db = "%s/%s@%s" % (
                cfg.get('db_user'), cfg.get('db_password'), cfg.get('db_name'))
        elif cfg.get('db_backend') == 'postgresql':
            default_db = "%s/%s@db_name=%s" % (
                cfg.get('db_user'), cfg.get('db_password'), cfg.get('db_name'))
            db_host = cfg.get('db_host')
            if db_host:
                default_db += ";host=%s" % db_host
            db_port = cfg.get('db_port')
            if db_port:
                default_db += ";port=%s" % db_port
        print default_db
    elif isinstance(val, list):
        for i in val:
            print i
    else:
        print val

