1*7f01ac39SJohnny Chenimport sys,os,lldb 2*7f01ac39SJohnny Chendef check_has_dir_in_path(dirname): 3*7f01ac39SJohnny Chen return sys.path.__contains__(dirname); 4*7f01ac39SJohnny Chen 5*7f01ac39SJohnny Chendef ensure_has_dir_in_path(dirname): 6*7f01ac39SJohnny Chen dirname = os.path.abspath(dirname) 7*7f01ac39SJohnny Chen if not (check_has_dir_in_path(dirname)): 8*7f01ac39SJohnny Chen sys.path.append(dirname); 9*7f01ac39SJohnny Chen 10*7f01ac39SJohnny Chendef do_import(debugger,modname): 11*7f01ac39SJohnny Chen if (len(modname) > 4 and modname[-4:] == '.pyc'): 12*7f01ac39SJohnny Chen modname = modname[:-4] 13*7f01ac39SJohnny Chen if (len(modname) > 3 and modname[-3:] == '.py'): 14*7f01ac39SJohnny Chen modname = modname[:-3] 15*7f01ac39SJohnny Chen debugger.HandleCommand("script import " + modname) 16*7f01ac39SJohnny Chen 17*7f01ac39SJohnny Chendef pyimport_cmd(debugger, args, result, dict): 18*7f01ac39SJohnny Chen """Import a Python module given its full path""" 19*7f01ac39SJohnny Chen if args == "": 20*7f01ac39SJohnny Chen return "no module path given"; 21*7f01ac39SJohnny Chen if not (os.sep in args): 22*7f01ac39SJohnny Chen modname = args 23*7f01ac39SJohnny Chen ensure_has_dir_in_path('.') 24*7f01ac39SJohnny Chen else: 25*7f01ac39SJohnny Chen endofdir = args.rfind(os.sep) 26*7f01ac39SJohnny Chen modname = args[endofdir+1:] 27*7f01ac39SJohnny Chen args = args[0:endofdir] 28*7f01ac39SJohnny Chen ensure_has_dir_in_path(args) 29*7f01ac39SJohnny Chen do_import(debugger,modname) 30*7f01ac39SJohnny Chen return None 31