| 1 |
<?php |
<?php |
| 2 |
// $Id: versioncontrol_release.module,v 1.9 2009/03/09 04:46:28 jpetso Exp $ |
// $Id: versioncontrol_release.module,v 1.10 2009/03/21 02:32:36 jpetso Exp $ |
| 3 |
/** |
/** |
| 4 |
* @file |
* @file |
| 5 |
* Version Control / Release Node integration - Integrates release nodes |
* Version Control / Release Node integration - Integrates release nodes |
| 29 |
} |
} |
| 30 |
|
|
| 31 |
/** |
/** |
| 32 |
|
* Return TRUE if the given backend implements all functionality that is |
| 33 |
|
* required for proper version control / release node integration. |
| 34 |
|
*/ |
| 35 |
|
function versioncontrol_release_is_supported_backend($vcs) { |
| 36 |
|
$required_functions = array( |
| 37 |
|
'get_item', 'get_parallel_items', 'export_directory', |
| 38 |
|
); |
| 39 |
|
foreach ($required_functions as $function) { |
| 40 |
|
if (!versioncontrol_backend_implements($vcs, $function)) { |
| 41 |
|
return FALSE; |
| 42 |
|
} |
| 43 |
|
} |
| 44 |
|
return TRUE; |
| 45 |
|
} |
| 46 |
|
|
| 47 |
|
/** |
| 48 |
* Form callback for 'admin/project/versioncontrol-settings/project-release': |
* Form callback for 'admin/project/versioncontrol-settings/project-release': |
| 49 |
* Global settings for this module. |
* Global settings for this module. |
| 50 |
*/ |
*/ |
| 153 |
if (empty($repository)) { |
if (empty($repository)) { |
| 154 |
return array(); |
return array(); |
| 155 |
} |
} |
| 156 |
|
if (!versioncontrol_release_is_supported_backend($repository['vcs'])) { |
| 157 |
|
return array(); |
| 158 |
|
} |
| 159 |
$directory_item = versioncontrol_get_item($repository, $project['directory']); |
$directory_item = versioncontrol_get_item($repository, $project['directory']); |
| 160 |
|
|
| 161 |
if (empty($directory_item)) { |
if (empty($directory_item)) { |
| 255 |
if (!versioncontrol_project_node_uses_versioncontrol($project_node)) { |
if (!versioncontrol_project_node_uses_versioncontrol($project_node)) { |
| 256 |
return; |
return; |
| 257 |
} |
} |
| 258 |
|
$project = $project_node->versioncontrol_project; |
| 259 |
|
$repository = versioncontrol_get_repository($project['repo_id']); |
| 260 |
|
|
| 261 |
|
if (empty($repository)) { |
| 262 |
|
return; |
| 263 |
|
} |
| 264 |
|
if (!versioncontrol_release_is_supported_backend($repository['vcs'])) { |
| 265 |
|
return; |
| 266 |
|
} |
| 267 |
if (empty($project_node->project_release['releases'])) { |
if (empty($project_node->project_release['releases'])) { |
| 268 |
return; // This project does not support releases, nothing to alter. |
return; // This project does not support releases, nothing to alter. |
| 269 |
} |
} |