Home | Trees | Indices | Help |
---|
|
1 # Software License Agreement (BSD License) 2 # 3 # Copyright (c) 2010, Willow Garage, Inc. 4 # All rights reserved. 5 # 6 # Redistribution and use in source and binary forms, with or without 7 # modification, are permitted provided that the following conditions 8 # are met: 9 # 10 # * Redistributions of source code must retain the above copyright 11 # notice, this list of conditions and the following disclaimer. 12 # * Redistributions in binary form must reproduce the above 13 # copyright notice, this list of conditions and the following 14 # disclaimer in the documentation and/or other materials provided 15 # with the distribution. 16 # * Neither the name of Willow Garage, Inc. nor the names of its 17 # contributors may be used to endorse or promote products derived 18 # from this software without specific prior written permission. 19 # 20 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 23 # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 24 # COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 25 # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 26 # BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 27 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 28 # CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 30 # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 31 # POSSIBILITY OF SUCH DAMAGE. 32 # 33 # Revision $Id: ipy.py 11344 2010-09-29 21:58:07Z kwc $ 34 """ 35 IPython extensions. 36 """ 37 38 import os 39 import sys 40 41 import roslib.packages 42 import roslib.stacks 43 import roslib.rosenv 4446 return roslib.packages.list_pkgs() + roslib.stacks.list_stacks()4749 # Add some magic 50 try: 51 import IPython.Magic 52 IPython.Magic.Magic.magic_roscd = ipy_roscd 53 IPython.Magic.Magic.magic_rosmake = ipy_rosmake 54 55 # setup completers 56 import IPython.ipapi 57 ip = IPython.ipapi.get() 58 if ip is not None: 59 # #3043 ip is not available in roshlets 60 ip.set_hook('complete_command', pkg_stack_completers, str_key='roscd') 61 ip.set_hook('complete_command', pkg_stack_completers, str_key='rosmake') 62 except ImportError: 63 pass6466 if not target: 67 magic.magic_cd(roslib.rosenv.get_ros_root()) 68 else: 69 splits = target.split(os.sep) 70 target = splits[0] 71 base = None 72 try: 73 base = roslib.packages.get_pkg_dir(target) 74 except roslib.packages.InvalidROSPkgException: 75 try: 76 base = roslib.stacks.get_stack_dir(target) 77 except roslib.stacks.InvalidROSStackException: 78 pass 79 if base is None: 80 print >> sys.stderr, "No such package or stack '%s'"%(target) 81 else: 82 magic.magic_cd(os.sep.join( [base] + splits[1:]))8385 if not target: 86 if os.path.isfile(os.path.join(os.getcwd(), roslib.manifest.MANIFEST_FILE)): 87 import subprocess 88 print "starting rosmake in %s, this may take awhile"%(os.getcwd()) 89 subprocess.Popen(['rosmake']) 90 else: 91 print >> sys.stderr, "no package present in cwd" 92 elif type(target) != str: 93 print >> sys.stderr, "argument must be a package name", type(target) 94 else: 95 if os.sep in target: 96 print >> sys.stderr, "invalid argument: %s"%target 97 else: 98 #TODO: use python rosmake library instead 99 100 import subprocess 101 print "starting rosmake %s, this may take awhile"%target 102 subprocess.Popen(['rosmake', target])103
Home | Trees | Indices | Help |
---|
Generated by Epydoc 3.0.1 on Fri Jan 11 12:18:01 2013 | http://epydoc.sourceforge.net |