From 6b6c9a29077e628543953ffccf8bcdec7ac907c4 Mon Sep 17 00:00:00 2001 From: jim-p Date: Mon, 7 May 2012 13:09:49 -0400 Subject: Add a way to view the full output from a test patch apply/revert --- config/systempatches/patches.inc | 19 ++++++++++--------- config/systempatches/system_patches.php | 15 +++++++++++++++ 2 files changed, 25 insertions(+), 9 deletions(-) (limited to 'config/systempatches') diff --git a/config/systempatches/patches.inc b/config/systempatches/patches.inc index e25db3ff..d17e3614 100644 --- a/config/systempatches/patches.inc +++ b/config/systempatches/patches.inc @@ -43,13 +43,14 @@ function patch_commit($patch, $action, $test=false, $fulldetail=false) { $direction = ($action == "revert") ? "--reverse" : "--forward"; $whitespace = $patch['ignorewhitespace'] ? "--ignore-whitespace" : ""; $pathstrip = '-p' . $patch['pathstrip']; + $full_patch_command = "{$patch_cmd} --directory={$directory} {$force} {$pathstrip} {$filename} {$check} {$direction} {$whitespace}"; patch_write($patch); - $status = mwexec("{$patch_cmd} --directory={$directory} {$force} {$pathstrip} {$filename} {$check} {$direction} {$whitespace}", true); - //patch_erase($patch); - if ($status == 0) - return true; + if (!$fulldetail) + $output = (mwexec($full_patch_command, true) == 0); else - return false; + $output = $full_patch_command . "\n\n" . shell_exec($full_patch_command . ' 2>&1'); + patch_erase($patch); + return $output; } /* Attempt to apply a patch */ @@ -63,13 +64,13 @@ function patch_revert($patch) { } /* Test if a patch would apply cleanly */ -function patch_test_apply($patch) { - return patch_commit($patch, "apply", true); +function patch_test_apply($patch, $fulldetail=false) { + return patch_commit($patch, "apply", true, $fulldetail); } /* Test if a patch would revert cleanly */ -function patch_test_revert($patch) { - return patch_commit($patch, "revert", true); +function patch_test_revert($patch, $fulldetail=false) { + return patch_commit($patch, "revert", true, $fulldetail); } /* Fetch a patch from a URL or github */ diff --git a/config/systempatches/system_patches.php b/config/systempatches/system_patches.php index 7086f0ca..a10cb0bc 100644 --- a/config/systempatches/system_patches.php +++ b/config/systempatches/system_patches.php @@ -71,8 +71,17 @@ if (($_GET['act'] == "fetch") && ($a_patches[$_GET['id']])) { } if (($_GET['act'] == "test") && ($a_patches[$_GET['id']])) { $savemsg = patch_test_apply($a_patches[$_GET['id']]) ? gettext("Patch can be applied cleanly") : gettext("Patch can NOT be applied cleanly"); + $savemsg .= " (" . gettext("detail") . ")"; $savemsg .= empty($savemsg) ? "" : "
"; $savemsg .= patch_test_revert($a_patches[$_GET['id']]) ? gettext("Patch can be reverted cleanly") : gettext("Patch can NOT be reverted cleanly"); + $savemsg .= " (" . gettext("detail") . ")"; +} +if (($_GET['fulltest']) && ($a_patches[$_GET['id']])) { + if ($_GET['fulltest'] == "apply") { + $fulldetail = patch_test_apply($a_patches[$_GET['id']], true); + } elseif ($_GET['fulltest'] == "revert") { + $fulldetail = patch_test_revert($a_patches[$_GET['id']], true); + } } if (($_GET['act'] == "apply") && ($a_patches[$_GET['id']])) { $savemsg = patch_apply($a_patches[$_GET['id']]) ? gettext("Patch applied successfully") : gettext("Patch could NOT be applied!"); @@ -158,6 +167,12 @@ echo "