24 lines
635 B
Python
24 lines
635 B
Python
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()
|