xref: /openbsd-src/gnu/llvm/lldb/bindings/python/createPythonInit.py (revision f6aab3d83b51b91c24247ad2c2573574de475a82)
1061da546Spatrickimport os
2061da546Spatrickimport sys
3061da546Spatrick
4061da546SpatrickpkgRelDir = sys.argv[1]
5061da546SpatrickpkgFiles = sys.argv[2:]
6061da546Spatrick
7061da546SpatrickgetFileName = lambda f: os.path.splitext(os.path.basename(f))[0]
8061da546SpatrickimportNames = ', '.join('"{}"'.format(getFileName(f)) for f in pkgFiles)
9061da546Spatrick
10061da546Spatrickscript = """__all__ = [{import_names}]
11061da546Spatrickfor x in __all__:
12061da546Spatrick  __import__('lldb.{pkg_name}.' + x)
13*f6aab3d8Srobert
14*f6aab3d8Srobertdef __lldb_init_module(debugger, internal_dict):
15*f6aab3d8Srobert  import lldb
16*f6aab3d8Srobert  for x in __all__:
17*f6aab3d8Srobert    submodule = getattr(lldb.{pkg_name}, x)
18*f6aab3d8Srobert    lldb_init = getattr(submodule, '__lldb_init_module', None)
19*f6aab3d8Srobert    if lldb_init:
20*f6aab3d8Srobert      lldb_init(debugger, internal_dict)
21061da546Spatrick""".format(import_names=importNames, pkg_name=pkgRelDir.replace("/", "."))
22061da546Spatrick
23061da546SpatrickpkgIniFile = os.path.normpath(os.path.join(pkgRelDir, "__init__.py"))
24061da546Spatrickwith open(pkgIniFile, "w") as f:
25061da546Spatrick    f.write(script)
26