From: Daan De Meyer Date: Fri, 15 Mar 2024 10:01:01 +0000 (+0100) Subject: Check sync scripts are executable in run_sync() X-Git-Tag: v23~91 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=70f2dfb9140d2d8c4cbdccb8c70d623f0489851f;p=thirdparty%2Fmkosi.git Check sync scripts are executable in run_sync() check_inputs() is only invoked after sync scripts have already run, so do the check in run_sync() instead. --- diff --git a/mkosi/__init__.py b/mkosi/__init__.py index 06fa4f009..0cdac60f9 100644 --- a/mkosi/__init__.py +++ b/mkosi/__init__.py @@ -2528,7 +2528,6 @@ def check_inputs(config: Config) -> None: die(f"Initrd {p} is not a file") for script in itertools.chain( - config.sync_scripts, config.prepare_scripts, config.build_scripts, config.postinst_scripts, @@ -4026,6 +4025,10 @@ def run_sync(args: Args, config: Config, *, resources: Path) -> None: os.setgid(INVOKING_USER.gid) os.setuid(INVOKING_USER.uid) + for script in config.sync_scripts: + if not os.access(script, os.X_OK): + die(f"{script} is not executable") + if not (p := config.package_cache_dir_or_default()).exists(): p.mkdir(parents=True, exist_ok=True)