Add a way to add directories to just one type of loader

parent d2abfb9f
...@@ -68,7 +68,7 @@ class Inventory(object): ...@@ -68,7 +68,7 @@ class Inventory(object):
host_list = [ h for h in host_list if h and h.strip() ] host_list = [ h for h in host_list if h and h.strip() ]
else: else:
utils.plugins.push_basedir(self.basedir()) utils.plugins.vars_loader.add_directory(self.basedir())
if type(host_list) == list: if type(host_list) == list:
all = Group('all') all = Group('all')
......
...@@ -42,6 +42,7 @@ class PluginLoader(object): ...@@ -42,6 +42,7 @@ class PluginLoader(object):
self.subdir = subdir self.subdir = subdir
self.aliases = aliases self.aliases = aliases
self._module_cache = {} self._module_cache = {}
self._extra_dirs = []
def _get_package_path(self): def _get_package_path(self):
"""Gets the path of a Python package""" """Gets the path of a Python package"""
...@@ -55,7 +56,14 @@ class PluginLoader(object): ...@@ -55,7 +56,14 @@ class PluginLoader(object):
"""Return a list of paths to search for plugins in """Return a list of paths to search for plugins in
The list is searched in order.""" The list is searched in order."""
return [os.path.join(basedir, self.subdir) for basedir in _basedirs] + self.config.split(os.pathsep) + [self._get_package_path()] return self._extra_dirs +
[os.path.join(basedir, self.subdir) for basedir in _basedirs] +
self.config.split(os.pathsep) +
[self._get_package_path()]
def add_directory(self, directory):
"""Adds an additional directory to the search path"""
self._extra_dirs.append(directory)
def find_plugin(self, name): def find_plugin(self, name):
"""Find a plugin named name""" """Find a plugin named name"""
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment