123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- <?php
- /**
- * @file
- * Drush integration for @font-your-face.
- */
- /**
- * Implements hook_drush_help().
- */
- function fontyourface_drush_help($section) {
- switch ($section) {
- case 'drush:fyf-status':
- $help = dt('Displays @font-your-face status');
- return $help;
- case 'drush:fyf-import':
- $help = dt('Imports @font-your-face fonts');
- return $help;
- case 'meta:fontyourface:title':
- $help = dt('@font-your-face commands');
- return $help;
- }
- }
- /**
- * Implements hook_drush_command().
- */
- function fontyourface_drush_command() {
- $items = array();
- $items['fyf-status'] = array(
- 'callback' => 'fontyourface_fyf_status',
- 'drupal dependencies' => array('fontyourface'),
- 'description' => 'Displays general @font-your-face status information',
- 'bootstrap' => DRUSH_BOOTSTRAP_DRUPAL_FULL,
- 'aliases' => array('@s', 'fyfs'),
- );
- $items['fyf-import'] = array(
- 'callback' => 'fontyourface_fyf_import',
- 'drupal dependencies' => array('fontyourface'),
- 'description' => 'Imports fonts from one or more providers',
- 'arguments' => array(
- 'providers' => '(optional) A space delimited list of providers.',
- ),
- 'bootstrap' => DRUSH_BOOTSTRAP_DRUPAL_FULL,
- 'aliases' => array('@i', 'fyfi'),
- 'examples' => array(
- 'drush @i' => 'Import fonts from all enabled providers.',
- 'drush @i google_fonts_api fontdeck' => 'Import fonts from Google Fonts API and Fontdeck.',
- ),
- );
- return $items;
- }
- /**
- * Callback for Drush command 'fyf-status'.
- */
- function fontyourface_fyf_status() {
- // Provider info.
- $modules = module_implements('fontyourface_info', TRUE);
- if (count($modules) > 0) {
- drush_print(dt('Providers enabled (@count):', array('@count' => count($modules))));
- $rows = array();
- $rows[] = array(
- dt('Provider'),
- dt('Total fonts'),
- dt('Enabled fonts'),
- );
- foreach ($modules as $module) {
- $row = array();
- $row[] = $module;
- $row[] = fontyourface_count_fonts($module);
- $row[] = fontyourface_count_fonts($module, TRUE);
- $rows[] = $row;
- }
- drush_print_table($rows, TRUE);
- }
- else {
- drush_print(dt('No font providers are enabled.'));
- // If there are no providers, we can call it quits as there will be no
- // fonts either.
- return;
- }
- // Font info.
- $fonts = fontyourface_get_fonts('enabled = 1');
- if (count($fonts) > 0) {
- drush_print(dt('Fonts enabled (@count):', array('@count' => count($fonts))));
- $rows = array();
- $rows[] = array(
- dt('Font'),
- dt('Provider'),
- dt('CSS selector'),
- );
- foreach ($fonts as $font) {
- $row = array();
- $row[] = $font->name;
- $row[] = $font->provider;
- $row[] = $font->css_selector;
- $rows[] = $row;
- }
- drush_print_table($rows, TRUE);
- }
- else {
- drush_print(dt('No fonts are enabled.'));
- }
- }
- /**
- * Callback for Drush command 'fyf-import'.
- */
- function fontyourface_fyf_import() {
- $providers = _convert_csv_to_array(func_get_args());
- if (empty($providers)) {
- // If no providers were specified, get all existing import functions.
- $providers = module_implements('fontyourface_import');
- }
- foreach ($providers as $provider) {
- $import_function = $provider . '_fontyourface_import';
- if ($provider == 'fontsquirrel') {
- drush_set_error(dt("Font Squirrel import is not supported yet. We're working on that."));
- }
- elseif (!function_exists($import_function)) {
- drush_set_error(dt("Unknown provider '@provider', or there is no import function for it; run 'drush fyf-status' to see enabled providers", array('@provider' => $provider)));
- }
- else {
- $before = fontyourface_count_fonts($provider);
- if ($import_function()) {
- $message = dt('Imported fonts from @provider.', array('@provider' => $provider));
- drush_log($message, 'success');
- $after = fontyourface_count_fonts($provider);
- drush_print(dt('@provider now has @fonts fonts (+@diff).', array('@provider' => $provider, '@fonts' => $after, '@diff' => $after - $before)));
- }
- else {
- drush_set_error(dt('Font import from @provider failed.', array('@provider' => $provider)));
- }
- }
- }
- }
|