]> git.ipfire.org Git - thirdparty/mkosi.git/commitdiff
Check sync scripts are executable in run_sync()
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Fri, 15 Mar 2024 10:01:01 +0000 (11:01 +0100)
committerJörg Behrmann <behrmann@physik.fu-berlin.de>
Fri, 15 Mar 2024 10:31:45 +0000 (11:31 +0100)
check_inputs() is only invoked after sync scripts have already run,
so do the check in run_sync() instead.

mkosi/__init__.py

index 06fa4f009b44781e53e2e5cba7e4408ee0d03ce0..0cdac60f945d371e1366b2aa430374e81ab60bcd 100644 (file)
@@ -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)