Fix the base path for envinclude

This commit is contained in:
pagedown 2022-12-05 14:27:50 +08:00
parent 9c488bb877
commit 30b25709d2
No known key found for this signature in database
GPG Key ID: E921CF18AC8FF6EB

View File

@ -206,7 +206,12 @@ def parse_line(
for x in os.environ: for x in os.environ:
if fnmatchcase(x, val): if fnmatchcase(x, val):
with currently_parsing.set_file(f'<env var: {x}>'): with currently_parsing.set_file(f'<env var: {x}>'):
_parse(NamedLineIterator(base_path_for_includes, iter(os.environ[x].splitlines())), parse_conf_item, ans, accumulate_bad_lines) _parse(
NamedLineIterator(os.path.join(base_path_for_includes, ''), iter(os.environ[x].splitlines())),
parse_conf_item,
ans,
accumulate_bad_lines
)
return return
else: else:
if not os.path.isabs(val): if not os.path.isabs(val):
@ -240,7 +245,7 @@ def _parse(
) -> None: ) -> None:
name = getattr(lines, 'name', None) name = getattr(lines, 'name', None)
if name: if name:
base_path_for_includes = os.path.dirname(os.path.abspath(name)) base_path_for_includes = os.path.abspath(name) if name.endswith(os.path.sep) else os.path.dirname(os.path.abspath(name))
else: else:
from ..constants import config_dir from ..constants import config_dir
base_path_for_includes = config_dir base_path_for_includes = config_dir