# LIBTBX_PRE_DISPATCHER_INCLUDE_SH PHENIX_GUI_ENVIRONMENT=1
# LIBTBX_PRE_DISPATCHER_INCLUDE_SH export PHENIX_GUI_ENVIRONMENT
# LIBTBX_SET_DISPATCHER_NAME phenix.MRage
# LIBTBX_SET_DISPATCHER_NAME phaser.MRage

from phaser.pipeline import brunett
from phaser import cli
from phaser import output

parser = cli.PCLIParser(
    master_phil = brunett.PHIL_MASTER,
    description = "Molecular replacement pipeline",
    usage = "%(prog)s [options] phils"
    )

parser.add_argument(
    "-v", "--verbosity",
    action = "store",
    choices = output.SingleStream.LEVEL_FOR.keys(),
    default = "INFO",
    help = "verbosity level"
    )

parser.add_argument(
    "--version",
    action = "version",
    version = "%s %s" % ( brunett.PROGRAM, brunett.VERSION )
    )

master_params = brunett.PHIL_MASTER

if __name__ == "__main__":
    params = parser.parse_args()
    
    from libtbx.utils import Sorry
    import sys
    
    logger = output.SingleStream(
        stream = sys.stdout,
        level = output.SingleStream.LEVEL_FOR[ params.verbosity ]
        )
    
    try:
        brunett.run( args = params.phils, logger = logger )
        
    except Sorry:
        raise
    
    except Exception, e:
        print "An internal error has occurred"
        print "The traceback is as follows:"
        import traceback
        print traceback.format_exc()
        print "Terminating..."
        sys.exit( 1 )
