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]);