#!/usr/bin/python

import sys
import os
import getopt
import umlrun

propagate_env = ['http_proxy', 'ftp_proxy','DEBEMAIL']

def usage(exitcode):
    sys.stderr.write('Usage: umlrun --umlargs=uml_args [-v] [command]\n')
    sys.exit(exitcode)

def main():
    optlist, args = getopt.getopt(sys.argv[1:], 'hu:vie:',
                                  ['help',
                                   'umlargs=',
                                   'verbose',
                                   'interactive',
                                   'environment'])

    umlargs = []
    envvars = {}
    verbose = 0
    interactive = 0
    for opt, arg in optlist:
        if opt in ('-h', '--help'):
            usage(0)
        elif opt in ('-u', '--umlargs'):
            umlargs.append(arg)
        elif opt in ('-v', '--verbose'):
            verbose += 1
        elif opt in ('-i', '--interactive'):
            interactive = 1
        elif opt in ('-e', '--environment'):
            name, value = arg.split('=', 1)
            envvars[name] = value

    uml = umlrun.UML()

    uml.start(umlargs=umlargs, verbose=verbose, interactive=interactive)
    try:
        for name in propagate_env:
            value = envvars.get(name,os.getenv(name))

            if value != None:
                uml.setenv(name, value)

        uml.shellcommand(' '.join(args))
    finally:
        uml.shutdown()

if __name__ == '__main__':
    main()
