From a8db913b7144dbcdbe479f32c12c4dd8c21e0675 Mon Sep 17 00:00:00 2001 From: tv Date: Fri, 13 Nov 2026 20:28:01 +0000 Subject: populate: run pipe commands through a shell A pipe source's command is an absolute path, which a shell runs as a script if it isn't a program, e.g. lacks #!. The program ran it directly, which fails for such a command. pipe-script runs a pipe command without #!. --- pkgs/populate/src/populate.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'pkgs/populate') diff --git a/pkgs/populate/src/populate.rs b/pkgs/populate/src/populate.rs index 226cee2..40f86dd 100644 --- a/pkgs/populate/src/populate.rs +++ b/pkgs/populate/src/populate.rs @@ -114,9 +114,9 @@ fn deliver( let file = fs::File::create(&out).map_err(|e| { Failure::Message(format!("error: can't create {}: {e}", out.display())) })?; + // Through a shell, which runs a command without #! as a script. run::status( - Command::new(string(settings, "command")?) - .current_dir(&workdir) + run::local_shell("\"$1\"\n", &[string(settings, "command")?], &workdir) .stdout(file), )?; run::status( -- cgit v1.3.1