Skip to content

Commit

Permalink
Use Extension::getType(), getName() and getPath() so we can make prop…
Browse files Browse the repository at this point in the history
…erties private.
  • Loading branch information
alexpott committed Mar 7, 2014
1 parent ea173d0 commit d04b883
Show file tree
Hide file tree
Showing 9 changed files with 191 additions and 56 deletions.
38 changes: 36 additions & 2 deletions commands/core/drupal/environment.inc
Expand Up @@ -19,7 +19,6 @@ function drush_get_modules($include_hidden = TRUE) {
$modules = system_rebuild_module_data();

foreach ($modules as $key => $module) {
$module->type = 'module';
if ((!$include_hidden) && (isset($module->info['hidden']))) {
unset($modules[$key]);
}
Expand Down Expand Up @@ -182,7 +181,6 @@ function drush_module_uninstall($modules) {
function drush_get_themes($include_hidden = TRUE) {
$themes = system_rebuild_theme_data();
foreach ($themes as $key => $theme) {
$theme->type = 'theme';
if (!$include_hidden) {
if (isset($theme->info['hidden'])) {
unset($themes[$key]);
Expand Down Expand Up @@ -282,3 +280,39 @@ function _drush_file_private_path() {
return \Drupal::config('system.file')->get('path.private');
}

/**
* Gets the extension name.
*
* @param $info
* The extension info.
* @return string
* The extension name.
*/
function _drush_pm_extension_get_name($info) {
return $info->getName();
}

/**
* Gets the extension type.
*
* @param $info
* The extension info.
* @return string
* The extension type.
*/
function _drush_pm_extension_get_type($info) {
return $info->getType();
}

/**
* Gets the extension path.
*
* @param $info
* The extension info.
* @return string
* The extension path.
*/
function _drush_pm_extension_get_path($info) {
return $info->getPath();
}

36 changes: 36 additions & 0 deletions commands/core/drupal/environment_6.inc
Expand Up @@ -317,3 +317,39 @@ function _drush_file_public_path() {
function _drush_file_private_path() {
// @todo
}

/**
* Gets the extension name.
*
* @param $info
* The extension info.
* @return string
* The extension name.
*/
function _drush_pm_extension_get_name($info) {
return $info->name;
}

/**
* Gets the extension type.
*
* @param $info
* The extension info.
* @return string
* The extension type.
*/
function _drush_pm_extension_get_type($info) {
return $info->type;
}

/**
* Gets the extension path.
*
* @param $info
* The extension info.
* @return string
* The extension path.
*/
function _drush_pm_extension_get_path($info) {
return dirname($info->filename);
}
36 changes: 36 additions & 0 deletions commands/core/drupal/environment_7.inc
Expand Up @@ -293,3 +293,39 @@ function _drush_file_public_path() {
function _drush_file_private_path() {
return variable_get('file_private_path', FALSE);
}

/**
* Gets the extension name.
*
* @param $info
* The extension info.
* @return string
* The extension name.
*/
function _drush_pm_extension_get_name($info) {
return $info->name;
}

/**
* Gets the extension type.
*
* @param $info
* The extension info.
* @return string
* The extension type.
*/
function _drush_pm_extension_get_type($info) {
return $info->type;
}

/**
* Gets the extension path.
*
* @param $info
* The extension info.
* @return string
* The extension path.
*/
function _drush_pm_extension_get_path($info) {
return dirname($info->filename);
}
25 changes: 25 additions & 0 deletions commands/core/drupal/pm.inc
Expand Up @@ -159,3 +159,28 @@ function _drush_pm_uninstall($modules) {
}
}

/**
* Return an array with general info of an extension.
*/
function _drush_pm_info_extension($info) {
$major_version = drush_drupal_major_version();

$data['extension'] = $info->name;
$data['project'] = isset($info->info['project'])?$info->info['project']:dt('Unknown');
$data['type'] = $info->type;
$data['title'] = $info->info['name'];
$data['config'] = isset($info->info['configure']) ? $info->info['configure'] : dt('None');
$data['description'] = $info->info['description'];
$data['version'] = $info->info['version'];
$data['date'] = $info->info['datestamp'] ? format_date($info->info['datestamp'] ?: 0, 'custom', 'Y-m-d') : NULL;
$data['package'] = $info->info['package'];
$data['core'] = $info->info['core'];
$data['php'] = $info->info['php'];
$data['status'] = drush_get_extension_status($info);
$path = (($info->type == 'module')&&($major_version == 7))?$info->uri:$info->filename;
$path = substr($path, 0, strrpos($path, '/'));
$data['path'] = $path;

return $data;
}

29 changes: 25 additions & 4 deletions commands/core/drupal/pm_8.inc
Expand Up @@ -36,7 +36,7 @@ function _drush_pm_uninstall($args) {

// Discard extensions that are not installed.
foreach ($extensions as $name) {
if (!$extension_info[$name]->status && $extension_info[$name]->type == 'theme') {
if (!$extension_info[$name]->status && $extension_info[$name]->getType() == 'theme') {
unset($themes[$name]);
drush_log(dt('!extension is not installed.', array('!extension' => $name)), 'ok');
}
Expand Down Expand Up @@ -97,15 +97,36 @@ function _drush_pm_uninstall($args) {
// Inform the user of final status.
$result_extensions = drush_get_named_extensions_list($extensions);
$problem_extensions = array();
foreach ($result_extensions as $name => $extension) {
foreach ($result_extensions as $extension) {
if (!$extension->status) {
drush_log(dt('!extension was uninstalled successfully.', array('!extension' => $extension->name)), 'ok');
drush_log(dt('!extension was uninstalled successfully.', array('!extension' => $extension->getName())), 'ok');
}
else {
$problem_extensions[] = $extension->name;
$problem_extensions[] = $extension->getName();
}
}
if (!empty($problem_extensions)) {
return drush_set_error('DRUSH_PM_UNINSTALL_EXTENSION_ISSUE', dt('There was a problem uninstalling !extension.', array('!extension' => implode(',', $problem_extensions))));
}
}

/**
* Return an array with general info of an extension.
*/
function _drush_pm_info_extension($info) {
$data['extension'] = $info->getName();
$data['project'] = isset($info->info['project'])?$info->info['project']:dt('Unknown');
$data['type'] = $info->getType();
$data['title'] = $info->info['name'];
$data['config'] = isset($info->info['configure']) ? $info->info['configure'] : dt('None');
$data['description'] = $info->info['description'];
$data['version'] = $info->info['version'];
$data['date'] = $info->info['datestamp'] ? format_date($info->info['datestamp'] ?: 0, 'custom', 'Y-m-d') : NULL;
$data['package'] = $info->info['package'];
$data['core'] = $info->info['core'];
$data['php'] = $info->info['php'];
$data['status'] = drush_get_extension_status($info);
$data['path'] = $info->getPath();

return $data;
}
31 changes: 4 additions & 27 deletions commands/pm/info.pm.inc
Expand Up @@ -14,6 +14,8 @@ function drush_pm_info() {
$args = array_keys($extension_info);
}

drush_include_engine('drupal', 'pm', drush_drupal_major_version());

foreach ($args as $extension) {
if (isset($extension_info[$extension])) {
$info = $extension_info[$extension];
Expand All @@ -22,7 +24,7 @@ function drush_pm_info() {
drush_log(dt('!extension was not found.', array('!extension' => $extension)), 'warning');
continue;
}
if ($info->type == 'module') {
if (_drush_pm_extension_get_type($info) == 'module') {
$data = _drush_pm_info_module($info);
}
else {
Expand Down Expand Up @@ -51,31 +53,6 @@ function _drush_pm_info_format_table_data($data) {
return $result;
}

/**
* Return an array with general info of an extension.
*/
function _drush_pm_info_extension($info) {
$major_version = drush_drupal_major_version();

$data['extension'] = $info->name;
$data['project'] = isset($info->info['project'])?$info->info['project']:dt('Unknown');
$data['type'] = $info->type;
$data['title'] = $info->info['name'];
$data['config'] = isset($info->info['configure']) ? $info->info['configure'] : dt('None');
$data['description'] = $info->info['description'];
$data['version'] = $info->info['version'];
$data['date'] = $info->info['datestamp'] ? format_date($info->info['datestamp'] ?: 0, 'custom', 'Y-m-d') : NULL;
$data['package'] = $info->info['package'];
$data['core'] = $info->info['core'];
$data['php'] = $info->info['php'];
$data['status'] = drush_get_extension_status($info);
$path = (($info->type == 'module')&&($major_version == 7))?$info->uri:$info->filename;
$path = substr($path, 0, strrpos($path, '/'));
$data['path'] = $path;

return $data;
}

/**
* Return an array with info of a module.
*/
Expand Down Expand Up @@ -107,7 +84,7 @@ function _drush_pm_info_module($info) {
$data['required_by'] = $requiredby;
if ($info->status == 1) {
$role = drush_role_get_class();
$data['permissions'] = $role->getModulePerms($info->name);
$data['permissions'] = $role->getModulePerms(_drush_pm_extension_get_name($info));
}
return $data;
}
Expand Down

0 comments on commit d04b883

Please sign in to comment.