annotate sites/all/modules/rdfx/drush/rdfx.drush.inc @ 4:ce11bbd8f642

added modules
author danieleb <danielebarchiesi@me.com>
date Thu, 19 Sep 2013 10:38:44 +0100
parents
children
rev   line source
danielebarchiesi@4 1 <?php
danielebarchiesi@4 2
danielebarchiesi@4 3 /**
danielebarchiesi@4 4 * @file
danielebarchiesi@4 5 * drush integration for rdfx.
danielebarchiesi@4 6 */
danielebarchiesi@4 7
danielebarchiesi@4 8 /**
danielebarchiesi@4 9 * Implementation of hook_drush_command().
danielebarchiesi@4 10 *
danielebarchiesi@4 11 * In this hook, you specify which commands your
danielebarchiesi@4 12 * drush module makes available, what it does and
danielebarchiesi@4 13 * description.
danielebarchiesi@4 14 *
danielebarchiesi@4 15 * Notice how this structure closely resembles how
danielebarchiesi@4 16 * you define menu hooks.
danielebarchiesi@4 17 *
danielebarchiesi@4 18 * @See drush_parse_command() for a list of recognized keys.
danielebarchiesi@4 19 *
danielebarchiesi@4 20 * @return
danielebarchiesi@4 21 * An associative array describing your command(s).
danielebarchiesi@4 22 */
danielebarchiesi@4 23 function rdfx_drush_command() {
danielebarchiesi@4 24 $items = array();
danielebarchiesi@4 25
danielebarchiesi@4 26 $items['rdf-download'] = array(
danielebarchiesi@4 27 'callback' => 'rdfx_drush_arc2_download',
danielebarchiesi@4 28 'description' => dt('Downloads the required ARC2 library from http://github.com/semsol/arc2'),
danielebarchiesi@4 29 'aliases' => array('rdfdl'),
danielebarchiesi@4 30 'arguments' => array(
danielebarchiesi@4 31 'path' => dt('Optional. A path to the rdfx module. If omitted Drush will use the default location.'),
danielebarchiesi@4 32 ),
danielebarchiesi@4 33 );
danielebarchiesi@4 34 return $items;
danielebarchiesi@4 35 }
danielebarchiesi@4 36
danielebarchiesi@4 37 /**
danielebarchiesi@4 38 * Implementation of hook_drush_help().
danielebarchiesi@4 39 *
danielebarchiesi@4 40 * This function is called whenever a drush user calls
danielebarchiesi@4 41 * 'drush help <name-of-your-command>'
danielebarchiesi@4 42 *
danielebarchiesi@4 43 * @param
danielebarchiesi@4 44 * A string with the help section (prepend with 'drush:')
danielebarchiesi@4 45 *
danielebarchiesi@4 46 * @return
danielebarchiesi@4 47 * A string with the help text for your command.
danielebarchiesi@4 48 */
danielebarchiesi@4 49 function rdfx_drush_help($section) {
danielebarchiesi@4 50 switch ($section) {
danielebarchiesi@4 51 case 'drush:rdf-download':
danielebarchiesi@4 52 return dt("Downloads the required ARC2 library from http://github.com/semsol/arc2. Include the optional path.");
danielebarchiesi@4 53 }
danielebarchiesi@4 54 }
danielebarchiesi@4 55
danielebarchiesi@4 56 /**
danielebarchiesi@4 57 * Example drush command callback.
danielebarchiesi@4 58 *
danielebarchiesi@4 59 * This is where the action takes place.
danielebarchiesi@4 60 *
danielebarchiesi@4 61 * In this function, all of Drupals API is (usually) available, including
danielebarchiesi@4 62 * any functions you have added in your own modules/themes.
danielebarchiesi@4 63 *
danielebarchiesi@4 64 * To print something to the terminal window, use drush_print().
danielebarchiesi@4 65 *
danielebarchiesi@4 66 */
danielebarchiesi@4 67 function rdfx_drush_arc2_download() {
danielebarchiesi@4 68 $args = func_get_args();
danielebarchiesi@4 69 if ($args[0]) {
danielebarchiesi@4 70 $path = $args[0];
danielebarchiesi@4 71 }
danielebarchiesi@4 72 else {
danielebarchiesi@4 73 $path = drush_get_context('DRUSH_DRUPAL_ROOT');
danielebarchiesi@4 74 if (module_exists('libraries')) {
danielebarchiesi@4 75 $path .= '/' . libraries_get_path('ARC2');
danielebarchiesi@4 76 }
danielebarchiesi@4 77 else {
danielebarchiesi@4 78 $path .= '/' . drupal_get_path('module', 'rdfx') . '/vendor';
danielebarchiesi@4 79 }
danielebarchiesi@4 80 }
danielebarchiesi@4 81
danielebarchiesi@4 82 // Create the path if it does not exist yet.
danielebarchiesi@4 83 if (!is_dir($path)) {
danielebarchiesi@4 84 drush_mkdir($path);
danielebarchiesi@4 85 }
danielebarchiesi@4 86
danielebarchiesi@4 87 if (is_dir($path . '/arc')) {
danielebarchiesi@4 88 drush_log('ARC2 already present. No download required.', 'ok');
danielebarchiesi@4 89 }
danielebarchiesi@4 90 elseif (drush_op('chdir', $path) &&
danielebarchiesi@4 91 drush_shell_exec('wget --no-check-certificate -O arc.tar.gz http://github.com/semsol/arc2/tarball/master') &&
danielebarchiesi@4 92 drush_shell_exec('tar zxvf arc.tar.gz') &&
danielebarchiesi@4 93 drush_shell_exec('mv semsol-arc2-* arc') &&
danielebarchiesi@4 94 drush_shell_exec('rm arc.tar.gz')) {
danielebarchiesi@4 95 drush_log(dt('The latest ARC2 library has been downloaded to @path', array('@path' => $path)), 'success');
danielebarchiesi@4 96 }
danielebarchiesi@4 97 else {
danielebarchiesi@4 98 drush_log(dt('Drush was unable to download the ARC2 library to @path', array('@path' => $path)), 'error');
danielebarchiesi@4 99 }
danielebarchiesi@4 100 }
danielebarchiesi@4 101
danielebarchiesi@4 102 /**
danielebarchiesi@4 103 * Implements drush_MODULE_post_COMMAND().
danielebarchiesi@4 104 */
danielebarchiesi@4 105 function drush_rdfx_post_pm_enable() {
danielebarchiesi@4 106 $extensions = func_get_args();
danielebarchiesi@4 107 // Deal with comma delimited extension list.
danielebarchiesi@4 108 if (strpos($extensions[0], ',') !== FALSE) {
danielebarchiesi@4 109 $extensions = explode(',', $extensions[0]);
danielebarchiesi@4 110 }
danielebarchiesi@4 111
danielebarchiesi@4 112 if (in_array('rdfx', $extensions) && !drush_get_option('skip')) {
danielebarchiesi@4 113 rdfx_drush_arc2_download();
danielebarchiesi@4 114 }
danielebarchiesi@4 115 }