12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- <?php
-
- require_once 'phing/input/InputHandler.php';
- include_once 'phing/system/io/ConsoleReader.php';
- class DefaultInputHandler implements InputHandler {
-
-
- public function handleInput(InputRequest $request) {
- $prompt = $this->getPrompt($request);
- $in = new ConsoleReader();
- do {
- print $prompt;
- try {
- $input = $in->readLine();
- if ($input === "" && ($request->getDefaultValue() !== null) ) {
- $input = $request->getDefaultValue();
- }
- $request->setInput($input);
- } catch (Exception $e) {
- throw new BuildException("Failed to read input from Console.", $e);
- }
- } while (!$request->isInputValid());
- }
-
- protected function getPrompt(InputRequest $request) {
- $prompt = $request->getPrompt();
-
- if ($request instanceof YesNoInputRequest) {
- $prompt .= '(' . implode('/', $request->getChoices()) .')';
- } elseif ($request instanceof MultipleChoiceInputRequest) {
- $prompt .= '(' . implode(',', $request->getChoices()) . ')';
- }
- if ($request->getDefaultValue() !== null) {
- $prompt .= ' ['.$request->getDefaultValue().']';
- }
- $pchar = $request->getPromptChar();
- return $prompt . ($pchar ? $pchar . ' ' : ' ');
- }
- }
|