export async function execute()

in src/utils/exec.ts [4:27]


export async function execute(cmd: string, args: string[], { cwd }: { cwd: string }): Promise<string> {
  const child = childProcess.spawn(cmd, args, {
    cwd,
    shell: true,
    stdio: ["ignore", "pipe", "inherit"],
  });

  let stdout = "";

  // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access -- ???
  child.stdout.on("data", (chunk) => (stdout += chunk.toString()));

  return new Promise<string>((ok, fail) => {
    child.once("error", (err) => fail(err));
    child.once("exit", (status) => {
      if (status === 0) {
        return ok(stdout.trim());
      } else {
        process.stderr.write(stdout);
        return fail(new Error(`${cmd} exited with status ${status ?? "unknown"}`));
      }
    });
  });
}