From: Daan De Meyer Date: Tue, 18 Apr 2023 19:48:10 +0000 (+0200) Subject: Don't make output an absolute path while parsing X-Git-Tag: v15~232 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b0e67ca730b64643e62663ce4cca6f98537b6345;p=thirdparty%2Fmkosi.git Don't make output an absolute path while parsing Fixes a regression from 2a6aa720f59e4f66ba63d311f5fa79c3a3ac0a61. --- diff --git a/mkosi/__init__.py b/mkosi/__init__.py index 26a307576..e416b66d2 100644 --- a/mkosi/__init__.py +++ b/mkosi/__init__.py @@ -1186,7 +1186,8 @@ def load_args(args: argparse.Namespace) -> MkosiConfig: args.output = args.output_dir / args.output else: warn("Ignoring configured output directory as output file is a qualified path.") - args.output = args.output.absolute() + + args.output = args.output.absolute() if args.environment: env = {} diff --git a/mkosi/config.py b/mkosi/config.py index 68761d784..57949c35c 100644 --- a/mkosi/config.py +++ b/mkosi/config.py @@ -203,7 +203,7 @@ def make_path_parser(required: bool) -> Callable[[str], Path]: return parse_path -def config_make_path_parser(required: bool) -> ConfigParseCallback: +def config_make_path_parser(required: bool, absolute: bool = True) -> ConfigParseCallback: def config_parse_path(dest: str, value: Optional[str], namespace: argparse.Namespace) -> Optional[Path]: if dest in namespace: return getattr(namespace, dest) # type: ignore @@ -211,7 +211,10 @@ def config_make_path_parser(required: bool) -> ConfigParseCallback: if value and required and not Path(value).exists(): die(f"{value} does not exist") - return Path(value).absolute() if value else None + if value: + return Path(value).absolute() if absolute else Path(value) + + return None return config_parse_path @@ -368,7 +371,7 @@ class MkosiConfigParser: MkosiConfigSetting( dest="output", section="Output", - parse=config_make_path_parser(required=False), + parse=config_make_path_parser(required=False, absolute=False), ), MkosiConfigSetting( dest="output_dir",