in lib/litani.py [0:0]
def _get_cache_dir(path=os.getcwd()):
def cache_pointer_dirs():
current = pathlib.Path(path).resolve(strict=True)
yield current
while current.parent != current:
current = current.parent
yield current
for possible_dir in cache_pointer_dirs():
logging.debug(
"Searching for cache pointer in %s", possible_dir)
possible_pointer = possible_dir / CACHE_POINTER
try:
if possible_pointer.exists():
logging.debug(
"Found a cache pointer at %s", possible_pointer)
with open(possible_pointer) as handle:
pointer = handle.read().strip()
possible_cache = pathlib.Path(pointer)
if possible_cache.exists():
logging.debug("cache is at %s", possible_cache)
return possible_cache
logging.warning(
"Found a cache file at %s pointing to %s, but that "
"directory does not exist. Continuing search...",
possible_pointer, possible_cache)
except PermissionError:
pass
logging.error(
"Could not find a pointer to a litani cache. Did you forget "
"to run `litani init`?")
raise FileNotFoundError