Index: release/package-release-nodes.php =================================================================== RCS file: /cvs/drupal/contributions/modules/project/release/package-release-nodes.php,v retrieving revision 1.22 diff -p -u -r1.22 package-release-nodes.php --- release/package-release-nodes.php 22 Aug 2007 16:30:52 -0000 1.22 +++ release/package-release-nodes.php 14 Sep 2007 16:05:05 -0000 @@ -167,6 +167,7 @@ elseif ($task == 'repair') { // ------------------------------------------------------------ function package_releases($type, $project_id) { + global $wd_err_msg; if ($type == 'tag') { $where = " AND (prn.rebuild = 0) AND (prn.file_path = '')"; $plural = t('tags'); @@ -198,6 +199,7 @@ function package_releases($type, $projec $num_considered = 0; $project_nids = array(); while ($release = db_fetch_object($query)) { + $wd_err_msg = array(); $version = $release->version; $uri = $release->uri; $tag = $release->tag; @@ -207,6 +209,7 @@ function package_releases($type, $projec $uri = escapeshellcmd($uri); $version = escapeshellcmd($version); $rev = escapeshellcmd($rev); + @db_query("DELETE FROM {project_release_package_errors} WHERE `nid` = %d", $nid); if ($release->rid == 1) { $built = package_release_core($nid, $uri, $version, $rev); } @@ -219,6 +222,9 @@ function package_releases($type, $projec $project_nids[$pid] = TRUE; } $num_considered++; + if (count($wd_err_msg)) { + @db_query("INSERT INTO {project_release_package_errors} (`nid`,`messages`) values (%d, %s)", $nid, serialize($wd_err_msg)); + } } if ($num_built || $type == 'branch') { if (!empty($project_id)) { @@ -589,8 +595,13 @@ function wd_msg($msg, $link = NULL) { * Wrapper function for watchdog() to log error messages. */ function wd_err($msg, $link = NULL) { + global $wd_err_msg; + if (!isset($wd_err_msg)) { + $wd_err_msg = array(); + } watchdog('package_error', $msg, WATCHDOG_ERROR, $link); echo $msg ."\n"; + $wd_err_msg[] = $msg; } /** Index: release/project_release.install =================================================================== RCS file: /cvs/drupal/contributions/modules/project/release/project_release.install,v retrieving revision 1.12 diff -p -u -r1.12 project_release.install --- release/project_release.install 22 Aug 2007 16:30:52 -0000 1.12 +++ release/project_release.install 14 Sep 2007 16:05:05 -0000 @@ -36,6 +36,11 @@ function project_release_install() { major int unsigned NOT NULL default '0', PRIMARY KEY (nid, tid) ) /*!40100 DEFAULT CHARACTER SET utf8 */;"); + db_query("CREATE TABLE IF NOT EXISTS {project_release_package_errors} ( + nid int unsigned NOT NULL default '0', + messages text, + PRIMARY KEY (nid) + ) /*!40100 DEFAULT CHARACTER SET utf8 */;"); db_query("CREATE TABLE IF NOT EXISTS {cache_project_release} ( cid varchar(255) BINARY NOT NULL default '', data longblob, @@ -84,6 +89,13 @@ function project_release_install() { PRIMARY KEY (nid, tid) );"); } + if (!db_table_exists('project_release_package_errors')) { + db_query("CREATE TABLE {project_release_package_errors} ( + nid int NOT NULL default '0', + messages text, + PRIMARY KEY (nid) + )"); + } if (!db_table_exists('cache_project_release')) { db_query("CREATE TABLE {cache_project_release} ( cid varchar(255) NOT NULL default '', @@ -247,3 +259,30 @@ function project_release_update_5001() { } return $ret; } + +/** + * Add {project_release_package_errors} table to track packaging errors. + */ +function project_release_update_5002() { + $ret = array(); + switch ($GLOBALS['db_type']) { + case 'mysql': + case 'mysqli': + $ret[] = update_sql("CREATE TABLE IF NOT EXISTS {project_release_package_errors} ( + nid int unsigned NOT NULL default '0', + messages text NOT NULL, + PRIMARY KEY (nid) + ) /*!40100 DEFAULT CHARACTER SET utf8 */;"); + break; + case 'pgsql': + if (!db_table_exists('project_release_package_errors')) { + $ret[] = update_sql("CREATE TABLE {project_release_package_errors} ( + nid int NOT NULL default '0', + messages text, + PRIMARY KEY (nid) + )"); + } + break; + } + return $ret; +} Index: release/project_release.module =================================================================== RCS file: /cvs/drupal/contributions/modules/project/release/project_release.module,v retrieving revision 1.46 diff -p -u -r1.46 project_release.module --- release/project_release.module 23 Aug 2007 23:26:38 -0000 1.46 +++ release/project_release.module 14 Sep 2007 16:05:05 -0000 @@ -754,8 +754,24 @@ function project_release_view($node, $te } $node->content['release_info'] = array( '#value' => '
'. $output .'
', - '#weight' => -1, + '#weight' => -2, ); + + // Display packaging errors to admins. + if (project_check_admin_access($node->pid)) { + $rows = array(); + $result = db_query('SELECT * FROM {project_release_package_errors} WHERE nid = %d', $node->nid); + $error = db_fetch_object($result); + $rows = unserialize($error->messages); + if ($rows) { + $header = array(t('Error messages')); + $node->content['release_errors'] = array( + '#value' => theme('table', $header, $rows), + '#weight' => -1, + ); + } + } + return $node; } @@ -1615,4 +1631,4 @@ function project_release_file_download($ */ function project_release_devel_caches() { return array('cache_project_release'); -} \ No newline at end of file +}