+++ /dev/null
-<?php
-
-/**
- * @file
- * Definition of Drush\Command\Commandfiles.
- */
-
-namespace Drush\Command;
-
-/**
- * Default commandfiles implementation.
- *
- * This class manages the list of commandfiles that are active
- * in Drush for the current command invocation.
- */
-class Commandfiles implements CommandfilesInterface {
- protected $cache;
- protected $deferred;
-
- function __construct() {
- $this->cache = array();
- $this->deferred = array();
- }
-
- function get() {
- return $this->cache;
- }
-
- function deferred() {
- return $this->deferred;
- }
-
- function sort() {
- ksort($this->cache);
- }
-
- function add($commandfile) {
- $load_command = FALSE;
-
- $module = basename($commandfile);
- $module = preg_replace('/\.*drush[0-9]*\.inc/', '', $module);
- $module_versionless = preg_replace('/\.d([0-9]+)$/', '', $module);
- if (!isset($this->cache[$module_versionless])) {
- $drupal_version = '';
- if (preg_match('/\.d([0-9]+)$/', $module, $matches)) {
- $drupal_version = $matches[1];
- }
- if (empty($drupal_version)) {
- $load_command = TRUE;
- }
- else {
- if (function_exists('drush_drupal_major_version') && ($drupal_version == drush_drupal_major_version())) {
- $load_command = TRUE;
- }
- else {
- // Signal that we should try again on
- // the next bootstrap phase.
- $this->deferred[$module] = $commandfile;
- }
- }
- if ($load_command) {
- $this->cache[$module_versionless] = $commandfile;
- require_once $commandfile;
- unset($this->deferred[$module]);
- }
- }
- return $load_command;
- }
-}