summaryrefslogtreecommitdiffstats
path: root/lldb/examples/customization/import-python/importcmd.py
blob: 576a642d5a01e6516b4d507917f34c84768431cd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import sys,os,lldb
def check_has_dir_in_path(dirname):
	return sys.path.__contains__(dirname);

def ensure_has_dir_in_path(dirname):
	dirname = os.path.abspath(dirname)
	if not (check_has_dir_in_path(dirname)):
		sys.path.append(dirname);	

def do_import(debugger,modname):
	if (len(modname) > 4 and modname[-4:] == '.pyc'):
		modname = modname[:-4]
	if (len(modname) > 3 and modname[-3:] == '.py'):
		modname = modname[:-3]
	debugger.HandleCommand("script import " + modname)

def pyimport_cmd(debugger, args, result, dict):
	"""Import a Python module given its full path"""
	print 'WARNING: obsolete feature - use native command "command script import"'
	if args == "":
		return "no module path given";
	if not (os.sep in args):
		modname = args
		ensure_has_dir_in_path('.')
	else:
		endofdir = args.rfind(os.sep)
		modname = args[endofdir+1:]
		args = args[0:endofdir]
		ensure_has_dir_in_path(args)
	do_import(debugger,modname)
	return None
OpenPOWER on IntegriCloud