diff options
author | Lee Chee Yang <chee.yang.lee@intel.com> | 2020-04-01 14:39:56 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2020-04-01 23:19:57 +0100 |
commit | 986baff26bd96a6265f5fe2d631818fff9f66374 (patch) | |
tree | c5a992e53f576719490e71a25d3fe50d32bea641 /scripts | |
parent | b1b98ed4fafa9d37f71cbfe18f7a00ce2643449e (diff) | |
download | openembedded-core-contrib-986baff26bd96a6265f5fe2d631818fff9f66374.tar.gz |
wic: align layer plugin path
wic look for external layer source plugin under scripts/lib/
while other tools look for lib/.
allow wic to check for source plugin at both scripts/lib/ and
lib/ to align with other tools while avoid breaking any existing
source plugin in external layer.
[YOCTO #13056]
Signed-off-by: Lee Chee Yang <chee.yang.lee@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/lib/wic/help.py | 3 | ||||
-rw-r--r-- | scripts/lib/wic/pluginbase.py | 11 |
2 files changed, 8 insertions, 6 deletions
diff --git a/scripts/lib/wic/help.py b/scripts/lib/wic/help.py index 4d342fcf05..1e3d06a87b 100644 --- a/scripts/lib/wic/help.py +++ b/scripts/lib/wic/help.py @@ -536,7 +536,8 @@ DESCRIPTION Source plugins can also be implemented and added by external layers - any plugins found in a scripts/lib/wic/plugins/source/ - directory in an external layer will also be made available. + or lib/wic/plugins/source/ directory in an external layer will + also be made available. When the wic implementation needs to invoke a partition-specific implementation, it looks for the plugin that has the same name as diff --git a/scripts/lib/wic/pluginbase.py b/scripts/lib/wic/pluginbase.py index f74d6430fd..d9b4e57747 100644 --- a/scripts/lib/wic/pluginbase.py +++ b/scripts/lib/wic/pluginbase.py @@ -18,7 +18,7 @@ from wic.misc import get_bitbake_var PLUGIN_TYPES = ["imager", "source"] -SCRIPTS_PLUGIN_DIR = "scripts/lib/wic/plugins" +SCRIPTS_PLUGIN_DIR = ["scripts/lib/wic/plugins", "lib/wic/plugins"] logger = logging.getLogger('wic') @@ -38,10 +38,11 @@ class PluginMgr: cls._plugin_dirs = [os.path.join(os.path.dirname(__file__), 'plugins')] layers = get_bitbake_var("BBLAYERS") or '' for layer_path in layers.split(): - path = os.path.join(layer_path, SCRIPTS_PLUGIN_DIR) - path = os.path.abspath(os.path.expanduser(path)) - if path not in cls._plugin_dirs and os.path.isdir(path): - cls._plugin_dirs.insert(0, path) + for script_plugin_dir in SCRIPTS_PLUGIN_DIR: + path = os.path.join(layer_path, script_plugin_dir) + path = os.path.abspath(os.path.expanduser(path)) + if path not in cls._plugin_dirs and os.path.isdir(path): + cls._plugin_dirs.insert(0, path) if ptype not in PLUGINS: # load all ptype plugins |