Index: modules/project/release.inc =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/project/release.inc,v retrieving revision 1.70.2.2 diff -u -F^f -r1.70.2.2 release.inc --- modules/project/release.inc 1 Jun 2006 09:56:51 -0000 1.70.2.2 +++ modules/project/release.inc 7 Jun 2006 18:42:08 -0000 @@ -58,12 +58,27 @@ function project_release_scan_parse($pat $file = basename($path); //preg_match('/^(.+?)-([0-9.]+(?:-.*)|[^-]+)\.(tar\.gz|zip)$/', $file, $matches); preg_match('/^(.+?)-([0-9.]+(?:-.*)|[^-]+)\.(tar.gz$|zip$)/', $file, $matches); + if (!isset($matches)) { + project_release_scan_directory_results(t('error')); + watchdog('project_debug', t("release_scan_parse: file %file doesn't match", array('%file' => theme('placeholder', $file)))); + } list($filename, $name, $version) = $matches; - + if ($name == "version") { + watchdog('project_debug', t("found 'version' tarball: file: %file, name: %name, version: %version", array('%file' => theme('placeholder', $file), '%name' => theme('placeholder', $name), '%version' => theme('placeholder', $version)))); + } // If the project was not previously loaded, load its data, including previous releases. if (!$projects[$name]) { + if ($name == "version") { + watchdog('project_debug', t("no previous project loaded for 'version'")); + } if ($project = db_fetch_object(db_query(db_rewrite_sql("SELECT n.nid, n.type, n.moderate FROM {node} n INNER JOIN {project_projects} p ON n.nid = p.nid WHERE p.uri = '%s'"), $name))) { + if ($name == "version") { + watchdog('project_debug', t("project loaded for 'version':") . '
' . var_export($project, TRUE));
+ }
if ($releases = project_release_load($project, 0)) {
+ if ($name == "version") {
+ watchdog('project_debug', t("found releases for 'version':") . '' . var_export($releases, TRUE));
+ }
// Releases are loaded in an array where the key is the rid and the value the version.
// We flip the array to more readily test for releases.
$project->releases = array_flip($releases);
@@ -75,12 +90,17 @@ function project_release_scan_parse($pat
}
else {
// No project found for this id.
+ project_release_scan_directory_results(t('without a project'));
+ watchdog('project_debug', t("No project node found with uri: %name", array('%name' => theme('placeholder', $name))));
return;
}
$projects[$name] = & $project;
}
else {
$project = & $projects[$name];
+ if ($name == "version") {
+ watchdog('project_debug', t("using previously loaded project for 'version':") . '' . var_export($project, TRUE));
+ }
}
$release->scan = 1;
@@ -96,12 +116,19 @@ function project_release_scan_parse($pat
}
$release->version = $version;
$release->path = $path;
+ if ($name == "version") {
+ watchdog('project_debug', t("about to save release %vers for 'version':", array('%vers' => theme('placeholder', $version))) . '' . var_export($release, TRUE));
+ }
project_release_save($release);
// This release version has been resaved, so take it out of the array.
// That way, any releases no longer present can be unpublished in project_release_scan_directory().
if ($project->releases[$version]) {
unset($project->releases[$version]);
}
+ if ($name == "version") {
+ $sanity_releases = project_release_load($release->rid);
+ watchdog('project_debug', t("after saving release %vers for 'version':", array('%vers' => theme('placeholder', $version))) . '' . var_export($sanity_releases, TRUE));
+ }
}
}
@@ -328,6 +355,9 @@ function project_release_save($release)
'changes' => "'%s'", 'status' => '%d');
$node = node_load($release->nid);
+ if ($node->uri == "version" || $release->nid == 64590) {
+ watchdog('project_debug', t("inside project_release_save() for 'version':") . '' . var_export($node, TRUE));
+ }
/* TODO: pending final fileapi
$file = check_file('file');
@@ -339,6 +369,8 @@ function project_release_save($release)
// This test should not be needed, but duplicate releases on drupal.org suggest
// that an unidentified problem is causing duplicate versions to be saved.
if (db_num_rows(db_fetch_object(db_query("SELECT rid FROM {project_releases} WHERE nid = %d AND version = '%s'", $release->nid, $release->version)))) {
+ project_release_scan_directory_results(t('duplicate'));
+ watchdog('project_debug', t("Duplicate version (%version) detected for node: %nid, not saving %file", array('%version' => theme('placeholder', $version), '%nid' => $nid, '%file' => theme('placeholder', $release->path))));
return FALSE;
}
$release->rid = db_next_id('project_rid');
@@ -364,8 +396,13 @@ function project_release_save($release)
}
// Insert the node into the database:
- db_query('INSERT INTO {project_releases} ('. implode(', ', array_keys($input)) .') VALUES('. implode(', ', $input) .')', $values);
- watchdog('project', t("added release %version to %project.", array('%version' => theme('placeholder', $release->version), '%project' => theme('placeholder', $node->title))));
+ if (db_query('INSERT INTO {project_releases} ('. implode(', ', array_keys($input)) .') VALUES('. implode(', ', $input) .')', $values)) {
+ watchdog('project', t("added release %version to %project (nid: %nid, rid: %rid, path: %path).", array('%version' => theme('placeholder', $release->version), '%project' => theme('placeholder', $node->title), '%nid' => $release->nid, '%rid' => $release->rid, '%path' => theme('placeholder', $release->path))));
+ watchdog('project_debug', t("added release %version to %project:", array('%version' => theme('placeholder', $release->version), '%project' => theme('placeholder', $node->title))) . 'values:
' . var_export($values, TRUE) . '
keys/escapes:
' . var_export($input, TRUE));
+ }
+ else {
+ watchdog('project_debug', t("ERROR: failed to add release %version to %project:", array('%version' => theme('placeholder', $release->version), '%project' => theme('placeholder', $node->title))) . 'values:
' . var_export($values, TRUE) . '
keys/escapes:
' . var_export($input, TRUE), WATCHDOG_ERROR);
+ }
}
// Otherwise, update the existing record.
else {
@@ -404,15 +441,21 @@ function project_release_save($release)
$v[] = $release->nid;
$v[] = $release->rid;
- db_query('UPDATE {project_releases} SET '. implode(', ', $q) .' WHERE nid = %d AND rid = %d', $v);
- watchdog('project', t("updated release %project %version", array('%project' => theme('placeholder', $node->title), '%version' => theme('placeholder', $release->version))));
+ if (db_query('UPDATE {project_releases} SET '. implode(', ', $q) .' WHERE nid = %d AND rid = %d', $v)) {
+ watchdog('project', t("updated release %project %version", array('%project' => theme('placeholder', $node->title), '%version' => theme('placeholder', $release->version))));
+ watchdog('project_debug', t("updated release %project %version", array('%version' => theme('placeholder', $release->version), '%project' => theme('placeholder', $node->title))) . 'values:
' . var_export($v, TRUE) . '
keys/escapes:
' . var_export($q, TRUE));
+ }
+ else {
+ watchdog('project_debug', t("ERROR: failed to update release %project %version", array('%version' => theme('placeholder', $release->version), '%project' => theme('placeholder', $node->title))) . 'values:
' . var_export($v, TRUE) . '
keys/escapes:
' . var_export($q, TRUE), WATCHDOG_ERROR);
+ }
}
return $release->rid;
}
function project_release_delete($rid) {
$release = project_release_load($rid);
- watchdog('project', t("unpublished release %version", array('%version' => theme('placeholder', $release->version))));
+ $project = project_project_load($release->nid);
+ watchdog('project', t("unpublished release %project %version", array('%project' => theme('placeholder', $project->uri), '%version' => theme('placeholder', $release->version))));
db_query('UPDATE {project_releases} SET status = 0 WHERE rid = %d', $rid);
}