diff --git a/src/services/melo-tts.ts b/src/services/melo-tts.ts index 5cb4c05..4ccd992 100644 --- a/src/services/melo-tts.ts +++ b/src/services/melo-tts.ts @@ -9,11 +9,19 @@ import type { Logger } from "../logger.js"; import { playWavFile } from "./audio-playback.js"; async function run(command: string, args: string[], stdio: "ignore" | "inherit" = "ignore"): Promise { + const env = { ...process.env }; + if (path.isAbsolute(command)) { + const dockerBinDir = path.dirname(command); + const currentPath = env.PATH ?? env.Path ?? ""; + env.PATH = `${dockerBinDir}${path.delimiter}${currentPath}`; + } + await new Promise((resolve, reject) => { const child = spawn(command, args, { stdio: ["ignore", stdio, "inherit"], windowsHide: true, shell: process.platform === "win32" && !path.isAbsolute(command), + env, }); child.on("error", (error) => { diff --git a/src/setup-tts.ts b/src/setup-tts.ts index 9a73363..86f133e 100644 --- a/src/setup-tts.ts +++ b/src/setup-tts.ts @@ -9,12 +9,20 @@ import { Logger } from "./logger.js"; import { MeloTtsService } from "./services/melo-tts.js"; async function run(command: string, args: string[], cwd = process.cwd()): Promise { + const env = { ...process.env }; + if (path.isAbsolute(command)) { + const dockerBinDir = path.dirname(command); + const currentPath = env.PATH ?? env.Path ?? ""; + env.PATH = `${dockerBinDir}${path.delimiter}${currentPath}`; + } + await new Promise((resolve, reject) => { const child = spawn(command, args, { cwd, stdio: "inherit", windowsHide: true, shell: process.platform === "win32" && !path.isAbsolute(command), + env, }); child.on("error", (error) => {