#! /usr/bin/env python

"""
usage: %prog [args]
"""

import roslib
roslib.load_manifest('app_manager')

import os
import sys
import string
from optparse import OptionParser

import app_manager
import rospy

def main(argv, stdout, environ):

    args = rospy.myargv()
    parser = OptionParser()

    applist_default = app_manager.get_default_applist_directory()
    
    parser.add_option("--applist", dest="applist_directory",
                      default=applist_default,
                      help="path to applist directory", metavar="PATH")
    options, args = parser.parse_args(args)
    if not os.path.exists(options.applist_directory):
      parser.error("applist directory [%s] does not exist.\nUse --applist to set the correct location"%(options.applist_directory))
    
    rospy.init_node('app_manager')

    robot_name = rospy.get_param('/robot/name', 'robot')
    interface_master = rospy.get_param('~interface_master', 'http://localhost:11312')

    try:
        app_list = app_manager.AppList(options.applist_directory)
    except app_manager.AppException as e:
        print >> sys.stderr, "Failed to load app list: %s"%(str(e))
        sys.exit(1)
        
    am = app_manager.AppManager(robot_name, interface_master, app_list)

    rospy.on_shutdown(am.shutdown)

    rospy.spin()



if __name__ == "__main__":
    main(sys.argv, sys.stdout, os.environ)
