You are here

function libraries_drush_list in Libraries API 8.3

Same name and namespace in other branches
  1. 7.3 libraries.drush.inc \libraries_drush_list()

Lists registered library information.

1 string reference to 'libraries_drush_list'
libraries_drush_command in ./libraries.drush.inc
Implements hook_drush_command().

File

./libraries.drush.inc, line 65
Drush integration for Libraries API.

Code

function libraries_drush_list() {
  $libraries = [];
  foreach (\Drupal::service('libraries.manager')
    ->info() as $name => $info) {
    $libraries[$name] = \Drupal::service('libraries.manager')
      ->getLibrary($name);
  }
  ksort($libraries);
  if (empty($libraries)) {
    drush_print('There are no registered libraries.');
  }
  else {
    $rows = [];

    // drush_print_table() automatically treats the first row as the header, if
    // $header is TRUE.
    $rows[] = [
      dt('Name'),
      dt('Status'),
      dt('Version'),
      dt('Variants'),
      dt('Dependencies'),
    ];
    foreach ($libraries as $name => $library) {
      $status = $library['installed'] ? dt('OK') : Unicode::ucfirst($library['error']);
      $version = $library['installed'] && !empty($library['version']) ? $library['version'] : '-';

      // Only list installed variants.
      $variants = [];
      foreach ($library['variants'] as $variant_name => $variant) {
        if ($variant['installed']) {
          $variants[] = $variant_name;
        }
      }
      $variants = empty($variants) ? '-' : implode(', ', $variants);
      $dependencies = !empty($library['dependencies']) ? implode(', ', $library['dependencies']) : '-';
      $rows[] = [
        $name,
        $status,
        $version,
        $variants,
        $dependencies,
      ];
    }

    // Make the possible values for the 'Status' column and the 'Version' header
    // wrap nicely.
    $widths = [
      0,
      12,
      7,
      0,
      0,
    ];
    drush_print_table($rows, TRUE, $widths);
  }
}