import { spawn } from 'node:child_process';

export async function runStep(step) {
  const started = Date.now();
  return await new Promise((resolve) => {
    const child = spawn(step.command, step.args, {
      stdio: 'inherit',
      shell: process.platform === 'win32',
    });

    child.on('close', (exitCode) => {
      resolve({
        ...step,
        status: exitCode === 0 ? 'pass' : 'fail',
        exitCode,
        durationMs: Date.now() - started,
      });
    });
  });
}