'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))); } } } }