Index: release.inc
===================================================================
RCS file: /cvs/drupal/contributions/modules/project/release.inc,v
retrieving revision 1.52.2.1
diff -u -r1.52.2.1 release.inc
--- release.inc 24 May 2005 21:01:57 -0000 1.52.2.1
+++ release.inc 30 Aug 2005 10:27:07 -0000
@@ -2,28 +2,44 @@
/* $Id: release.inc,v 1.52.2.1 2005/05/24 21:01:57 unconed Exp $ */
function project_release_scan() {
- project_release_scan_directory();
drupal_set_title(t('Release directory scan'));
- print theme('page', t('Scan successful.'));
+ $projects = project_release_scan_directory();
+ $releases = array();
+ $output = t('Scan successful');
+ if (!$projects) {
+ $output = $output.' - '.t('no releases found.');
+ }
+ else {
+ $output = $output.".";
+ foreach ($projects as $project) {
+ $releases[] = "$project->name ($project->version)";
+ }
+ $output .= theme('item_list', $releases, t('Releases found'));
+ }
+ print theme('page', $output);
}
function project_release_scan_directory($project = NULL) {
if ($dir = file_create_path(variable_get('project_release_directory', ''))) {
if ($project) {
- $regexp = "($project)" .'-(.+)\.(tar.gz|zip)';
+ $regexp = "($project)".'-(.+)\.(.+)';
}
else {
- $regexp = '(.+)-(.+)\.(tar.gz|zip)';
+ $regexp = '(.+)-(.+)\.(.+)';
}
file_scan_directory($dir, $regexp, array('.', '..', 'CVS'), 'project_release_scan_parse');
- foreach (project_release_scan_parse() as $project) {
+ $projects = project_release_scan_parse();
+
+ foreach ($projects as $project) {
if ($project->releases) {
foreach ($project->releases as $rid) {
project_release_delete($rid);
}
}
}
+
+ return $projects;
}
}
@@ -36,7 +52,7 @@
else {
$dir = dirname($path);
$file = basename($path);
- preg_match('/^(.+?)-([0-9.]+(?:-.*)|[^-]+)\.(tar.gz$|zip$)/', $file, $matches);
+ preg_match('/^(.+?)-([0-9.]+(?:-.*)|[^-]+)\.(.+$)/', $file, $matches);
list($filename, $name, $version) = $matches;
if (!$projects[$name]) {
@@ -59,11 +75,13 @@
$project = & $projects[$name];
}
+ $project->name = $name;
$release->scan = 1;
$release->nid = $project->nid;
$release->rid = $project->releases[$version];
$release->version = $version;
$release->path = $path;
+ $project->version = $version;
project_release_save($release);
if ($project->releases[$version]) {
unset($project->releases[$version]);