<?php include_once dirname(__FILE__) . '/PreCommitManager.class.php'; $stderr = defined('STDERR') ? STDERR : fopen('php://stderr', 'w'); try { array_shift($argv); // Remove script name $manager = new PreCommitManager(); $manager->parseArguments($argv); $manager->processChecks(); if ($manager->allCheckPassed()) { echo "All pre commit checks successed"; exit(0); } else { fwrite($stderr, $manager->getErrorMsg()); exit(1); } } catch (Exception $e) { fwrite($stderr, "PRE COMMIT HOOK SYSTEM ERROR, PLEASE CONTACT SERVER ADMIN.\n (" . $e->getMessage() . ")\n"); exit(1); }
<?php // Init lime include_once dirname(__FILE__) . '/../lime/lime.php'; $t = new lime_test(14, new lime_output_color()); require_once dirname(__FILE__) . '/../../PreCommitManager.class.php'; $manager = new PreCommitManager(); // Test arguments parsing $test = "->parseArguments(): Script should fail when the two required args are not pprovide"; try { $manager->parseArguments(array("repoName")); $t->fail($test); } catch (Exception $e) { $t->pass($test); $t->is($e->getMessage(), "Missing arguments! Usage: script_name.php SVN_REPO SVN_TRX [ --opt]*", $test . ": Appropriate Exception msg sent"); } $test = "->parseArguments(): Fail as third arg must be an option stating by --*"; try { $manager->parseArguments(array("repoName", "trxNum", "invalidArg")); $t->fail($test); } catch (Exception $e) { $t->pass($test); $t->is($e->getMessage(), "Invalid argument [invalidArg], all options must start by '--'", $test . ": Appropriate Exception msg sent"); } $test = "->parseArguments(): Fail as only a subset of options are allow"; try { $manager->parseArguments(array("repoName", "trxNum", "--invalidOpt")); $t->fail($test); } catch (Exception $e) { $t->pass($test); $t->is($e->getMessage(), "Invalid option name [\"invalidOpt\"]", $test . ": Appropriate Exception msg sent");