mirror of
https://github.com/volatilityfoundation/volatility3.git
synced 2026-08-20 21:52:21 +02:00
Previously if submodules were imported after the plugin/symbol __path__s had been set, it would only use the __path__s from the constants module. We now use the parent module's __path__s to ensure we get the right sub__path__s. This seems better/more flexible than changing the original constants (since they'd no longer be constant) and allows people more chance to override things. It brings with it potential confusion as a local plugin directory will need __init__ files with this magic to allow the core modules to run (since they come first in the path list).
20 lines
984 B
Python
20 lines
984 B
Python
# This file is Copyright 2019 Volatility Foundation and licensed under the Volatility Software License 1.0
|
|
# which is available at https://www.volatilityfoundation.org/license/vsl-v1.0
|
|
#
|
|
"""All Linux-related plugins.
|
|
|
|
NOTE: This file is important for core plugins to run (which certain components such as the windows registry layers)
|
|
are dependent upon, please DO NOT alter or remove this file unless you know the consequences of doing so.
|
|
|
|
The framework is configured this way to allow plugin developers/users to override any plugin functionality whether
|
|
existing or new.
|
|
|
|
When overriding the plugins directory, you must include a file like this in any subdirectories that may be necessary.
|
|
"""
|
|
import os
|
|
import sys
|
|
|
|
# This is necessary to ensure the core plugins are available, whilst still be overridable
|
|
parent_module, module_name = ".".join(__name__.split(".")[:-1]), __name__.split(".")[-1]
|
|
__path__ = [os.path.join(x, module_name) for x in sys.modules[parent_module].__path__]
|