function ctools_drush_export_info

Drush callback: Export info.

@params $table_names Each argument will be taken as a CTools exportable table name.

1 string reference to 'ctools_drush_export_info'
ctools_drush_command in drush/ctools.drush.inc
Implements hook_drush_command().

File

drush/ctools.drush.inc, line 371

Code

function ctools_drush_export_info() {
    // Collect array of table names from args.
    $table_names = func_get_args();
    // Get format option to allow for alternative output.
    $format = drush_get_option('format', FALSE);
    $tables_only = drush_get_option('tables-only', FALSE);
    $filter = drush_get_option('filter', FALSE);
    $export_module = drush_get_option('module', FALSE);
    $load = (bool) $filter || $export_module;
    // Get info on these tables, or all tables if none specified.
    $info = _ctools_drush_export_info($table_names, $load);
    $schemas = $info['schemas'];
    $exportables = $info['exportables'];
    if (empty($exportables)) {
        drush_log(dt('There are no exportables available.'), 'warning');
        return;
    }
    // Filter by export module.
    if (is_string($export_module)) {
        $exportables = _ctools_drush_export_module_filter($exportables, $export_module);
    }
    if (empty($exportables)) {
        drush_log(dt('There are no exportables matching this criteria.'), 'notice');
        return;
    }
    $exportable_counts = _ctools_drush_count_exportables($exportables);
    // Only use array keys if --tables-only option is set.
    if ($tables_only) {
        $exportables = array_keys($exportables);
    }
    // Use format from --format option if it's present, and send to drush_format.
    if ($format) {
        // Create array with all exportable info and counts in one.
        $output = array(
            'exportables' => $exportables,
            'count' => $exportable_counts,
        );
        drush_print(drush_format($output, NULL, $format));
    }
    else {
        $header = $tables_only ? array() : array(
            dt('Module'),
            dt('Base table'),
            dt('Exportables'),
        );
        $rows = array();
        foreach ($exportables as $table => $info) {
            if (is_array($info)) {
                $row = array(
                    $schemas[$table]['module'],
                    $table,
                    // Machine name is better for this?
shellColours::getColouredOutput(implode("\n", array_keys($info)), 'light_green') . "\n",
                );
                $rows[] = $row;
            }
            else {
                $rows[] = array(
                    $info,
                );
            }
        }
        if (!empty($rows)) {
            drush_print("\n");
            array_unshift($rows, $header);
            drush_print_table($rows, TRUE, array(
                20,
                20,
            ));
            drush_print(dt('Total exportables found: !total', array(
                '!total' => $exportable_counts['total'],
            )));
            foreach ($exportable_counts['exportables'] as $table_name => $count) {
                drush_print(dt('!table_name (!count)', array(
                    '!table_name' => $table_name,
                    '!count' => $count,
                )), 2);
            }
            drush_print("\n");
        }
    }
}