00001 #!/usr/bin/env python 00002 00003 # Software License Agreement (BSD License) 00004 # 00005 # Copyright (c) 2013, Tokyo Opensource Robotics Kyokai Association 00006 # All rights reserved. 00007 # 00008 # Redistribution and use in source and binary forms, with or without 00009 # modification, are permitted provided that the following conditions 00010 # are met: 00011 # 00012 # * Redistributions of source code must retain the above copyright 00013 # notice, this list of conditions and the following disclaimer. 00014 # * Redistributions in binary form must reproduce the above 00015 # copyright notice, this list of conditions and the following 00016 # disclaimer in the documentation and/or other materials provided 00017 # with the distribution. 00018 # * Neither the name of Tokyo Opensource Robotics Kyokai Association. nor the 00019 # names of its contributors may be used to endorse or promote products 00020 # derived from this software without specific prior written permission. 00021 # 00022 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 00023 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 00024 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 00025 # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 00026 # COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 00027 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 00028 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 00029 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 00030 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 00031 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 00032 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 00033 # POSSIBILITY OF SUCH DAMAGE. 00034 # 00035 # Author: Jonathan Mace, Jihoon Lee, Isaac Isao Saito 00036 00037 import sys 00038 import argparse 00039 import roswww 00040 import rosgraph 00041 00042 def parse_argument(argv): 00043 """ 00044 argument parser for roswww server configuration 00045 """ 00046 parser = argparse.ArgumentParser(description="ROSWWW Server") 00047 parser.add_argument('-n', '--name', default='80', help='Webserver name') 00048 parser.add_argument('-p', '--port', default='80', help='Webserver Port number') 00049 parser.add_argument('-w', '--webpath', default='www', help='package relative path to web pages') 00050 parser.add_argument('--start_port', default='8000', help='setting up port scan range') 00051 parser.add_argument('--end_port', default='9000', help='setting up port scan range') 00052 00053 myargs = rosgraph.myargv(sys.argv[1:]) # strips ros arguements 00054 parsed_args = parser.parse_args(myargs) 00055 00056 return parsed_args.name, parsed_args.webpath, (parsed_args.port, parsed_args.start_port, parsed_args.end_port) 00057 00058 00059 if __name__ == '__main__': 00060 argv = sys.argv 00061 name, webpath, port = parse_argument(argv[1:]) 00062 00063 webserver = roswww.ROSWWWServer(name, webpath, port) 00064 webserver.loginfo("Initialised") 00065 webserver.spin()