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 }