import importlib | |
import os | |
from ._core import ShellDetectionFailure | |
__version__ = "1.5.4" | |
def detect_shell(pid=None, max_depth=10): | |
name = os.name | |
try: | |
impl = importlib.import_module(".{}".format(name), __name__) | |
except ImportError: | |
message = "Shell detection not implemented for {0!r}".format(name) | |
raise RuntimeError(message) | |
try: | |
get_shell = impl.get_shell | |
except AttributeError: | |
raise RuntimeError("get_shell not implemented for {0!r}".format(name)) | |
shell = get_shell(pid, max_depth=max_depth) | |
if shell: | |
return shell | |
raise ShellDetectionFailure() | |