upgrade.js•1.12 kB
import ora from 'ora';
import chalk from 'chalk';
import { ensureDocker, runCompose } from '../utils/docker.js';
import { resolveProjectDirectory, logProjectHeading } from '../utils/project.js';
export async function upgradeProject(options) {
  ensureDocker();
  const projectDir = await resolveProjectDirectory(options.project);
  logProjectHeading(`Upgrading Ultimate MCP in ${projectDir}`);
  if (!options.skipPull) {
    const pullSpinner = ora('Pulling latest container images').start();
    try {
      await runCompose(['pull'], { cwd: projectDir });
      pullSpinner.succeed('Images pulled');
    } catch (error) {
      pullSpinner.fail('Failed to pull images');
      throw error;
    }
  } else {
    console.log(chalk.gray('Skipping image pull as requested.'));
  }
  const restartSpinner = ora('Restarting stack').start();
  try {
    await runCompose(['up', '-d'], { cwd: projectDir });
    restartSpinner.succeed('Stack running with latest images');
  } catch (error) {
    restartSpinner.fail('Failed to restart stack');
    throw error;
  }
  console.log(chalk.green('\nUpgrade complete.')); 
}