gwynne Mon, 20 Jul 2009 15:05:54 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=284443
Changed paths: U SVNROOT/pre-commit Log: enable per-file avail checks Modified: SVNROOT/pre-commit =================================================================== --- SVNROOT/pre-commit 2009-07-20 15:00:54 UTC (rev 284442) +++ SVNROOT/pre-commit 2009-07-20 15:05:54 UTC (rev 284443) @@ -48,8 +48,8 @@ function pattern_matches_commit($pattern) { - foreach ($GLOBALS['dirs_changed'] as $dir_changed) { - if (!preg_match($pattern, $dir_changed)) { + foreach ($GLOBALS['paths_changed'] as $path_changed) { + if (!preg_match($pattern, $path_changed)) { return FALSE; } } @@ -71,17 +71,15 @@ // ----------------------------------------------------------------------------------------------------------------------------- // Build list of changes if ($is_DEBUG) { - $data = explode("\n::\n", trim(stream_get_contents(STDIN))); - $paths_changed = explode("\n", $data[0]); - $dirs_changed = explode("\n", $data[1]); + $paths_changed = explode("\n", trim(stream_get_contents(STDIN))); $log_message = array('test1', 'test2'); $author = $argv[3]; } else { $paths_changed = run_svnlook('changed'); - $dirs_changed = run_svnlook('dirs-changed'); $log_message = run_svnlook('log'); $author = trim(implode("\n", run_svnlook('author'))); } +array_walk($paths_changed, create_function('&$v, $k', '$v = trim($v); $v = ltrim(substr($v, strcspn($v, " \t")));')); // ----------------------------------------------------------------------------------------------------------------------------- // Log message empty? @@ -112,7 +110,7 @@ // ----------------------------------------------------------------------------------------------------------------------------- // Check commit against it $exit_val = 0; -foreach ($dirs_changed as $dir_changed) { +foreach ($paths_changed as $path_changed) { foreach ($avail_lines as $avail_line) { if (strncmp($avail_line, 'unavail', 7) == 0) { $bit = 0; @@ -138,7 +136,7 @@ $in_repo = count($modulelist) == 0; if (!$in_repo) { foreach ($modulelist as $module) { - if (fnmatch("{$module}*", $dir_changed)) { + if (fnmatch("{$module}*", $path_changed)) { $in_repo = TRUE; } } @@ -153,7 +151,7 @@ print "DEBUG: User {$author} " . ($user_in_list ? "matched" : "did not match") . " user list: " . implode(",", $userlist) . "\n"; } if ($in_repo) { - print "DEBUG: Directory {$dir_changed} " . ($in_repo ? "matched" : "did not match") . " repo list: " . implode(",", $modulelist) . "\n"; + print "DEBUG: Path {$path_changed} " . ($in_repo ? "matched" : "did not match") . " repo list: " . implode(",", $modulelist) . "\n"; } if ($user_in_list || $in_repo) { print "DEBUG: exit_val == {$exit_val} for " . var_export($user_in_list, 1) . "/" . var_export($in_repo, 1) . ".\n"; @@ -161,22 +159,22 @@ } } if ($exit_val) { // if one dir fails, all fail - $last_dir = $dir_changed; + $last_path = $path_changed; break; } } if ($exit_val) { - if (preg_match('/^pear/', $last_dir)) { + if (preg_match('/^pear/', $last_path)) { $access_contact_email = 'pear-gr...@php.net'; - } else if (preg_match('/^pecl/', $last_dir)) { + } else if (preg_match('/^pecl/', $last_path)) { $access_contact_email = 'pecl-gr...@php.net'; - } else if (preg_match('/^phpdoc/', $last_dir)) { + } else if (preg_match('/^phpdoc/', $last_path)) { $access_contact_email = 'php...@lists.php.net'; } else { $access_contact_email = 'gr...@php.net'; } - fail("*******\nAccess denied: Insufficient karma for {$author} to {$last_dir}.\nContact {$access_contact_email} for access.\n"); + fail("*******\nAccess denied: Insufficient karma for {$author} to {$last_path}.\nContact {$access_contact_email} for access.\n"); }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php