Files
Mike Auty 9e042ad1ce Ensure we use configured paths at import.
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).
2019-11-04 19:42:24 +00:00

20 lines
981 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 Windows OS 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__]