Add a base-level get_basedir method for lookup plugins and fix relative lookups
Fixes #11746pull/4420/head
parent
3a4dd523d3
commit
ee835ff7ad
|
@ -32,6 +32,12 @@ class LookupBase:
|
||||||
self._loader = loader
|
self._loader = loader
|
||||||
self._display = display
|
self._display = display
|
||||||
|
|
||||||
|
def get_basedir(self, variables):
|
||||||
|
if 'role_path' in variables:
|
||||||
|
return variables['role_path']
|
||||||
|
else:
|
||||||
|
return self._loader.get_basedir()
|
||||||
|
|
||||||
def _flatten(self, terms):
|
def _flatten(self, terms):
|
||||||
ret = []
|
ret = []
|
||||||
for term in terms:
|
for term in terms:
|
||||||
|
|
|
@ -45,12 +45,9 @@ class LookupModule(LookupBase):
|
||||||
if isinstance(terms, basestring):
|
if isinstance(terms, basestring):
|
||||||
terms = [ terms ]
|
terms = [ terms ]
|
||||||
|
|
||||||
ret = []
|
basedir = self.get_basedir(variables)
|
||||||
|
|
||||||
if 'role_path' in variables:
|
ret = []
|
||||||
basedir = variables['role_path']
|
|
||||||
else:
|
|
||||||
basedir = self._loader.get_basedir()
|
|
||||||
|
|
||||||
for term in terms:
|
for term in terms:
|
||||||
params = term.split()
|
params = term.split()
|
||||||
|
|
|
@ -32,10 +32,7 @@ class LookupModule(LookupBase):
|
||||||
|
|
||||||
ret = []
|
ret = []
|
||||||
|
|
||||||
if 'role_path' in variables:
|
basedir = self.get_basedir(variables)
|
||||||
basedir = variables['role_path']
|
|
||||||
else:
|
|
||||||
basedir = self._loader.get_basedir()
|
|
||||||
|
|
||||||
for term in terms:
|
for term in terms:
|
||||||
self._display.debug("File lookup term: %s" % term)
|
self._display.debug("File lookup term: %s" % term)
|
||||||
|
|
|
@ -26,9 +26,11 @@ class LookupModule(LookupBase):
|
||||||
|
|
||||||
def run(self, terms, variables=None, **kwargs):
|
def run(self, terms, variables=None, **kwargs):
|
||||||
|
|
||||||
|
basedir = self.get_basedir(variables)
|
||||||
|
|
||||||
ret = []
|
ret = []
|
||||||
for term in terms:
|
for term in terms:
|
||||||
dwimmed = self._loader.path_dwim(term)
|
dwimmed = self._loader.path_dwim_relative(basedir, 'files', term)
|
||||||
globbed = glob.glob(dwimmed)
|
globbed = glob.glob(dwimmed)
|
||||||
ret.extend(g for g in globbed if os.path.isfile(g))
|
ret.extend(g for g in globbed if os.path.isfile(g))
|
||||||
return ret
|
return ret
|
||||||
|
|
|
@ -30,15 +30,12 @@ class LookupModule(LookupBase):
|
||||||
if not isinstance(terms, list):
|
if not isinstance(terms, list):
|
||||||
terms = [ terms ]
|
terms = [ terms ]
|
||||||
|
|
||||||
|
basedir = self.get_basedir(variables)
|
||||||
|
|
||||||
ret = []
|
ret = []
|
||||||
|
|
||||||
templar = Templar(loader=self._loader, variables=variables)
|
templar = Templar(loader=self._loader, variables=variables)
|
||||||
|
|
||||||
if 'role_path' in variables:
|
|
||||||
basedir = variables['role_path']
|
|
||||||
else:
|
|
||||||
basedir = self._loader.get_basedir()
|
|
||||||
|
|
||||||
for term in terms:
|
for term in terms:
|
||||||
self._display.debug("File lookup term: %s" % term)
|
self._display.debug("File lookup term: %s" % term)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue