1*525cd59fSSerge Gueltonfrom __future__ import print_function 2b9c1b51eSKate Stoneimport sys 3b9c1b51eSKate Stoneimport os 4b9c1b51eSKate Stoneimport lldb 5b9c1b51eSKate Stone 6b9c1b51eSKate Stone 77f01ac39SJohnny Chendef check_has_dir_in_path(dirname): 8b9c1b51eSKate Stone return sys.path.__contains__(dirname) 9b9c1b51eSKate Stone 107f01ac39SJohnny Chen 117f01ac39SJohnny Chendef ensure_has_dir_in_path(dirname): 127f01ac39SJohnny Chen dirname = os.path.abspath(dirname) 137f01ac39SJohnny Chen if not (check_has_dir_in_path(dirname)): 14b9c1b51eSKate Stone sys.path.append(dirname) 15b9c1b51eSKate Stone 167f01ac39SJohnny Chen 177f01ac39SJohnny Chendef do_import(debugger, modname): 187f01ac39SJohnny Chen if (len(modname) > 4 and modname[-4:] == '.pyc'): 197f01ac39SJohnny Chen modname = modname[:-4] 207f01ac39SJohnny Chen if (len(modname) > 3 and modname[-3:] == '.py'): 217f01ac39SJohnny Chen modname = modname[:-3] 227f01ac39SJohnny Chen debugger.HandleCommand("script import " + modname) 237f01ac39SJohnny Chen 24b9c1b51eSKate Stone 257f01ac39SJohnny Chendef pyimport_cmd(debugger, args, result, dict): 267f01ac39SJohnny Chen """Import a Python module given its full path""" 27*525cd59fSSerge Guelton print('WARNING: obsolete feature - use native command "command script import"') 287f01ac39SJohnny Chen if args == "": 29b9c1b51eSKate Stone return "no module path given" 307f01ac39SJohnny Chen if not (os.sep in args): 317f01ac39SJohnny Chen modname = args 327f01ac39SJohnny Chen ensure_has_dir_in_path('.') 337f01ac39SJohnny Chen else: 347f01ac39SJohnny Chen endofdir = args.rfind(os.sep) 357f01ac39SJohnny Chen modname = args[endofdir + 1:] 367f01ac39SJohnny Chen args = args[0:endofdir] 377f01ac39SJohnny Chen ensure_has_dir_in_path(args) 387f01ac39SJohnny Chen do_import(debugger, modname) 397f01ac39SJohnny Chen return None 40