You are here

function _ctools_drush_filter_exportables in Chaos Tool Suite (ctools) 7

Filters a collection of exportables based on filters.

Parameters

$exportables:

$filter:

1 call to _ctools_drush_filter_exportables()
_ctools_drush_export_info in drush/ctools.drush.inc
Return array of CTools exportable info based on available tables returned from ctools_export_get_schemas().

File

drush/ctools.drush.inc, line 866
CTools Drush commands.

Code

function _ctools_drush_filter_exportables($exportables, $filter) {
  $eval = FALSE;
  if (is_string($filter)) {
    switch ($filter) {

      // Show enabled exportables only.
      case 'enabled':
        $eval = '_ctools_drush_object_is_disabled';
        break;

      // Show disabled exportables only.
      case 'disabled':
        $eval = '_ctools_drush_object_is_enabled';
        break;

      // Show overridden exportables only.
      case 'overridden':
        $eval = '_ctools_drush_object_is_not_overridden';
        break;

      // Show database only exportables.
      case 'database':
        $eval = '_ctools_drush_object_is_not_db_only';
        break;

      // Show code only exportables.
      case 'code':
        $eval = '_ctools_drush_object_is_not_code_only';
        break;

      // Do nothing.
      case 'all':
        break;
      default:
        drush_log(dt('Invalid filter option. Available options are: enabled, disabled, overridden, database, and code.'), 'error');
        return;
    }
    if ($eval) {
      foreach ($exportables as $table => $objects) {
        foreach ($objects as $key => $object) {
          if ($eval($object)) {
            unset($exportables[$table][$key]);
          }
        }
      }
    }
  }
  return array_filter($exportables);
}