danielebarchiesi@4: 'rdfx_drush_arc2_download', danielebarchiesi@4: 'description' => dt('Downloads the required ARC2 library from http://github.com/semsol/arc2'), danielebarchiesi@4: 'aliases' => array('rdfdl'), danielebarchiesi@4: 'arguments' => array( danielebarchiesi@4: 'path' => dt('Optional. A path to the rdfx module. If omitted Drush will use the default location.'), danielebarchiesi@4: ), danielebarchiesi@4: ); danielebarchiesi@4: return $items; danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: /** danielebarchiesi@4: * Implementation of hook_drush_help(). danielebarchiesi@4: * danielebarchiesi@4: * This function is called whenever a drush user calls danielebarchiesi@4: * 'drush help ' danielebarchiesi@4: * danielebarchiesi@4: * @param danielebarchiesi@4: * A string with the help section (prepend with 'drush:') danielebarchiesi@4: * danielebarchiesi@4: * @return danielebarchiesi@4: * A string with the help text for your command. danielebarchiesi@4: */ danielebarchiesi@4: function rdfx_drush_help($section) { danielebarchiesi@4: switch ($section) { danielebarchiesi@4: case 'drush:rdf-download': danielebarchiesi@4: return dt("Downloads the required ARC2 library from http://github.com/semsol/arc2. Include the optional path."); danielebarchiesi@4: } danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: /** danielebarchiesi@4: * Example drush command callback. danielebarchiesi@4: * danielebarchiesi@4: * This is where the action takes place. danielebarchiesi@4: * danielebarchiesi@4: * In this function, all of Drupals API is (usually) available, including danielebarchiesi@4: * any functions you have added in your own modules/themes. danielebarchiesi@4: * danielebarchiesi@4: * To print something to the terminal window, use drush_print(). danielebarchiesi@4: * danielebarchiesi@4: */ danielebarchiesi@4: function rdfx_drush_arc2_download() { danielebarchiesi@4: $args = func_get_args(); danielebarchiesi@4: if ($args[0]) { danielebarchiesi@4: $path = $args[0]; danielebarchiesi@4: } danielebarchiesi@4: else { danielebarchiesi@4: $path = drush_get_context('DRUSH_DRUPAL_ROOT'); danielebarchiesi@4: if (module_exists('libraries')) { danielebarchiesi@4: $path .= '/' . libraries_get_path('ARC2'); danielebarchiesi@4: } danielebarchiesi@4: else { danielebarchiesi@4: $path .= '/' . drupal_get_path('module', 'rdfx') . '/vendor'; danielebarchiesi@4: } danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: // Create the path if it does not exist yet. danielebarchiesi@4: if (!is_dir($path)) { danielebarchiesi@4: drush_mkdir($path); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: if (is_dir($path . '/arc')) { danielebarchiesi@4: drush_log('ARC2 already present. No download required.', 'ok'); danielebarchiesi@4: } danielebarchiesi@4: elseif (drush_op('chdir', $path) && danielebarchiesi@4: drush_shell_exec('wget --no-check-certificate -O arc.tar.gz http://github.com/semsol/arc2/tarball/master') && danielebarchiesi@4: drush_shell_exec('tar zxvf arc.tar.gz') && danielebarchiesi@4: drush_shell_exec('mv semsol-arc2-* arc') && danielebarchiesi@4: drush_shell_exec('rm arc.tar.gz')) { danielebarchiesi@4: drush_log(dt('The latest ARC2 library has been downloaded to @path', array('@path' => $path)), 'success'); danielebarchiesi@4: } danielebarchiesi@4: else { danielebarchiesi@4: drush_log(dt('Drush was unable to download the ARC2 library to @path', array('@path' => $path)), 'error'); danielebarchiesi@4: } danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: /** danielebarchiesi@4: * Implements drush_MODULE_post_COMMAND(). danielebarchiesi@4: */ danielebarchiesi@4: function drush_rdfx_post_pm_enable() { danielebarchiesi@4: $extensions = func_get_args(); danielebarchiesi@4: // Deal with comma delimited extension list. danielebarchiesi@4: if (strpos($extensions[0], ',') !== FALSE) { danielebarchiesi@4: $extensions = explode(',', $extensions[0]); danielebarchiesi@4: } danielebarchiesi@4: danielebarchiesi@4: if (in_array('rdfx', $extensions) && !drush_get_option('skip')) { danielebarchiesi@4: rdfx_drush_arc2_download(); danielebarchiesi@4: } danielebarchiesi@4: }