#!/usr/bin/env php
<?php

/**
 * @file
 * Provides helper commands for automatic updates.
 *
 * This must be a separate application so class caches aren't an issue during
 * in place updates.
 */

use Drupal\automatic_updates\Command\CacheRebuild;
use Drupal\automatic_updates\Command\DatabaseUpdate;
use Drupal\automatic_updates\Command\DatabaseUpdateStatus;
use Symfony\Component\Console\Application;

if (PHP_SAPI !== 'cli') {
  return;
}

// Set up autoloader
$loader = false;
if (file_exists($autoloader = __DIR__ . '/../../../../autoload.php')
  || file_exists($autoloader = __DIR__ . '/../../../../../autoload.php')
  || file_exists($autoloader = __DIR__ . '/../../../autoload.php')
) {
  /** @var \Composer\Autoload\ClassLoader $loader */
  $loader = require_once $autoloader;
  // Drupal's autoloader doesn't bootstrap this module's classes yet. Do so
  // manually.
  $loader->addPsr4('Drupal\\automatic_updates\\', __DIR__ . '/../src');
}
else {
  throw new \RuntimeException('Could not locate autoload.php; __DIR__ is ' . __DIR__);
}

$application = new Application('automatic_update_tools', 'stable');
$application->add(new CacheRebuild($loader));
$application->add(new DatabaseUpdate($loader));
$application->add(new DatabaseUpdateStatus($loader));
$application->run();
