aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Zanussi <tom.zanussi@linux.intel.com>2014-07-04 19:11:49 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-07-10 17:37:40 +0100
commit37db9423e7872012fabde67e8858db5b512832f6 (patch)
tree40f5aeca37902e2ffe04cad4a98c4ab5af1726e0
parentad4a54a0f5bb667f5d5e3df2bcf841b05e0d0f2c (diff)
downloadopenembedded-core-contrib-37db9423e7872012fabde67e8858db5b512832f6.tar.gz
openembedded-core-contrib-37db9423e7872012fabde67e8858db5b512832f6.tar.bz2
openembedded-core-contrib-37db9423e7872012fabde67e8858db5b512832f6.zip
wic: Add command to list available source plugins
Add a 'wic list source-plugins' command enabling users to get a list of valid partition --sources. This is useful not only for determining sources to use in .wks partition statements, but also for making sense of errors in .wks partition processing. Signed-off-by: Tom Zanussi <tom.zanussi@linux.intel.com> Signed-off-by: Saul Wold <sgw@linux.intel.com>
-rw-r--r--scripts/lib/image/engine.py13
-rw-r--r--scripts/lib/mic/plugin.py16
2 files changed, 29 insertions, 0 deletions
diff --git a/scripts/lib/image/engine.py b/scripts/lib/image/engine.py
index 12562363049..b850bb9bfe6 100644
--- a/scripts/lib/image/engine.py
+++ b/scripts/lib/image/engine.py
@@ -174,6 +174,16 @@ def list_canned_image_help(scripts_path, fullpath):
break
+def list_source_plugins():
+ """
+ List the available source plugins i.e. plugins available for --source.
+ """
+ plugins = pluginmgr.get_source_plugins()
+
+ for plugin in plugins:
+ print " %s" % plugin
+
+
def wic_create(args, wks_file, rootfs_dir, bootimg_dir, kernel_dir,
native_sysroot, hdddir, staging_data_dir, scripts_path,
image_output_dir, debug, properties_file, properties=None):
@@ -258,6 +268,9 @@ def wic_list(args, scripts_path, properties_file):
if args[0] == "images":
list_canned_images(scripts_path)
return True
+ elif args[0] == "source-plugins":
+ list_source_plugins()
+ return True
elif args[0] == "properties":
return True
else:
diff --git a/scripts/lib/mic/plugin.py b/scripts/lib/mic/plugin.py
index 585fd6d5630..f8369507278 100644
--- a/scripts/lib/mic/plugin.py
+++ b/scripts/lib/mic/plugin.py
@@ -117,6 +117,22 @@ class PluginMgr(object):
return pluginbase.get_plugins(ptype)
+ def get_source_plugins(self):
+ """
+ Return list of available source plugins.
+ """
+ plugins_dir = self._build_plugin_dir_list(self.plugin_dir, 'source')
+
+ self.append_dirs(plugins_dir)
+
+ plugins = []
+
+ for _source_name, klass in self.get_plugins('source').iteritems():
+ plugins.append(_source_name)
+
+ return plugins
+
+
def get_source_plugin_methods(self, source_name, methods):
"""
The methods param is a dict with the method names to find. On