You are here

function drush_feeds_delete in Feeds 7.2

Deletes a set of Feeds importers.

File

./feeds.drush.inc, line 722
Drush commands for Feeds module.

Code

function drush_feeds_delete() {
  $all = feeds_importer_load_all(TRUE);
  $to_delete = array_intersect_key($all, array_flip(func_get_args()));
  $missing = array_diff(func_get_args(), array_keys($all));
  $cant_delete = array();

  // Filter out default importers that are not overridden.
  foreach ($to_delete as $delta => $importer) {
    if ($importer->export_type === EXPORT_IN_CODE) {
      unset($to_delete[$delta]);
      $cant_delete[$importer->id] = $importer->id;
    }
  }
  if ($missing) {
    drush_print(dt('The following importers are missing: !importers', array(
      '!importers' => implode(', ', $missing),
    )));
  }
  if ($cant_delete) {
    drush_print(dt('The following importers cannot be deleted because they only exist in code: !importers', array(
      '!importers' => implode(', ', array_keys($cant_delete)),
    )));
  }
  if ($to_delete) {
    drush_print(dt('The following importers will be deleted: !importers', array(
      '!importers' => implode(', ', array_keys($to_delete)),
    )));
  }
  elseif (count(func_get_args()) == 0) {
    return drush_set_error(dt('Please specify a space delimited list of importers to delete.'));
  }
  else {
    return drush_print(dt('There are no importers to delete.'));
  }
  if (!drush_confirm(dt('Do you really want to continue?'))) {
    return drush_log(dt('Aborting.'), 'ok');
  }
  foreach ($to_delete as $importer) {
    $importer
      ->delete();
    drush_log(dt("The importer '!importer' was deleted successfully.", array(
      '!importer' => $importer->id,
    )), 'ok');
  }
  feeds_cache_clear();
}