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