function drush_pm_include_version_control
8.0.x pm.drush.inc | drush_pm_include_version_control($directory = '.') |
6.x pm.drush.inc | drush_pm_include_version_control($directory = '.') |
7.x pm.drush.inc | drush_pm_include_version_control($directory = '.') |
3.x pm.drush.inc | drush_pm_include_version_control($directory = '.') |
4.x pm.drush.inc | drush_pm_include_version_control($directory = '.') |
5.x pm.drush.inc | drush_pm_include_version_control($directory = '.') |
master pm.drush.inc | drush_pm_include_version_control($directory = '.') |
A simple factory function that tests for version control systems, in a user specified order, and returns the one that appears to be appropriate for a specific directory.
4 calls to drush_pm_include_version_control()
- drush_pm_download in commands/
pm/ download.pm.inc - Command callback. Download Drupal core or any project.
- drush_pm_updatecode_rollback in commands/
pm/ updatecode.pm.inc - Rollback the update process.
- pm_update_packages in commands/
pm/ updatecode.pm.inc - Update projects according to an array of releases and print the release notes for each project, following interactive confirmation from the user.
- _pm_update_core in commands/
pm/ updatecode.pm.inc - Update drupal core, following interactive confirmation from the user.
File
- commands/
pm/ pm.drush.inc, line 1893 - The drush Project Manager
Code
function drush_pm_include_version_control($directory = '.') {
$engine_info = drush_get_engines('version_control');
$version_controls = drush_get_option('version-control', FALSE);
// If no version control was given, use a list of defaults.
if (!$version_controls) {
// Backup engine is the last option.
$version_controls = array_reverse(array_keys($engine_info['engines']));
}
else {
$version_controls = array($version_controls);
}
// Find the first valid engine in the list, checking signatures if needed.
$engine = FALSE;
while (!$engine && count($version_controls)) {
$version_control = array_shift($version_controls);
if (isset($engine_info['engines'][$version_control])) {
if (!empty($engine_info['engines'][$version_control]['signature'])) {
drush_log(dt('Verifying signature for !vcs version control engine.', array('!vcs' => $version_control)), LogLevel::DEBUG);
if (drush_shell_exec($engine_info['engines'][$version_control]['signature'], $directory)) {
$engine = $version_control;
}
}
else {
$engine = $version_control;
}
}
}
if (!$engine) {
return drush_set_error('DRUSH_PM_NO_VERSION_CONTROL', dt('No valid version control or backup engine found (the --version-control option was set to "!version-control").', array('!version-control' => $version_control)));
}
$instance = drush_include_engine('version_control', $engine);
return $instance;
}