1*061da546Spatrickimport sys 2*061da546Spatrickimport os 3*061da546Spatrickimport lldb 4*061da546Spatrick 5*061da546Spatrick 6*061da546Spatrickdef check_has_dir_in_path(dirname): 7*061da546Spatrick return sys.path.__contains__(dirname) 8*061da546Spatrick 9*061da546Spatrick 10*061da546Spatrickdef ensure_has_dir_in_path(dirname): 11*061da546Spatrick dirname = os.path.abspath(dirname) 12*061da546Spatrick if not (check_has_dir_in_path(dirname)): 13*061da546Spatrick sys.path.append(dirname) 14*061da546Spatrick 15*061da546Spatrick 16*061da546Spatrickdef do_import(debugger, modname): 17*061da546Spatrick if (len(modname) > 4 and modname[-4:] == '.pyc'): 18*061da546Spatrick modname = modname[:-4] 19*061da546Spatrick if (len(modname) > 3 and modname[-3:] == '.py'): 20*061da546Spatrick modname = modname[:-3] 21*061da546Spatrick debugger.HandleCommand("script import " + modname) 22*061da546Spatrick 23*061da546Spatrick 24*061da546Spatrickdef pyimport_cmd(debugger, args, result, dict): 25*061da546Spatrick """Import a Python module given its full path""" 26*061da546Spatrick print('WARNING: obsolete feature - use native command "command script import"') 27*061da546Spatrick if args == "": 28*061da546Spatrick return "no module path given" 29*061da546Spatrick if not (os.sep in args): 30*061da546Spatrick modname = args 31*061da546Spatrick ensure_has_dir_in_path('.') 32*061da546Spatrick else: 33*061da546Spatrick endofdir = args.rfind(os.sep) 34*061da546Spatrick modname = args[endofdir + 1:] 35*061da546Spatrick args = args[0:endofdir] 36*061da546Spatrick ensure_has_dir_in_path(args) 37*061da546Spatrick do_import(debugger, modname) 38*061da546Spatrick return None 39