import { CliTerseError } from '@alwaysai/alwayscli';
import { Spinner, echo, stringifyError } from '../../util';

export async function checkForDockerComposeComponent(spawner) {
  const spinner = Spinner('Check for Docker Compose');
  try {
    await spawner.run({ exe: 'docker-compose', args: ['--version'] });
    spinner.succeed();
  } catch (ex) {
    spinner.fail('Command "docker-compose --version" failed');
    echo(stringifyError(ex));
    echo(
      `Please install docker-compose on your target system or verify the existing installation if there is one.`
    );
    echo();
    echo('To install on an ARM-based device, run:');
    echo();
    echo('  pip3 install docker-compose');
    echo(
      '  sudo ln -s /home/<user>/.local/bin/docker-compose /usr/local/bin/docker-compose'
    );
    echo();
    echo('To install on x86 systems, see:');
    echo();
    echo('  https://docs.docker.com/compose/install/');
    echo();
    throw new CliTerseError('Failed to run "docker-compose --version"');
  }
}
