import { HealthCheckResult } from "./HealthCheckResult" import { timeoutPromise } from "./index" import { SubContainer } from "../../util/SubContainer" import { SDKManifest } from "../../types" /** * Running a health script, is used when we want to have a simple * script in bash or something like that. It should return something that is useful * in {result: string} else it is considered an error * @param param0 * @returns */ export const runHealthScript = async ( runCommand: string[], subcontainer: SubContainer, { timeout = 30000, errorMessage = `Error while running command: ${runCommand}`, message = (res: string) => `Have ran script ${runCommand} and the result: ${res}`, } = {}, ): Promise => { const res = await Promise.race([ subcontainer.execFail(runCommand), timeoutPromise(timeout), ]).catch((e) => { console.warn(errorMessage) console.warn(JSON.stringify(e)) console.warn(e.toString()) throw { result: "failure", message: errorMessage } as HealthCheckResult }) return { result: "success", message: message(res.stdout.toString()), } as HealthCheckResult }