3 declare(strict_types=1);
37 protected InputInterface
$in;
38 protected OutputInterface
$out;
44 public function __construct(InputInterface $in, OutputInterface $out)
48 $this->style =
new SymfonyStyle($in, $out);
54 $this->style->progressStart($max);
59 $this->style->progressAdvance();
64 $this->style->progressFinish();
70 $this->style->note($message);
77 return $this->style->ask(
80 fn (
string $input):
bool => $type_text_to_confirm === $input
83 $this->
inform(
"Automatically confirmed:\n\n$message");
92 return $this->style->confirm($message,
false);
94 $this->
inform(
"Automatically confirmed:\n\n$message");
103 if ($this->
shouldSayYes() || ($this->in->hasOption(
"no-interaction") && $this->in->getOption(
"no-interaction"))) {
107 " ILIAS Copyright (C) 1998-2019 ILIAS Open Source e.V. - GPLv3\n\n" .
108 "This program comes with ABSOLUTELY NO WARRANTY. This is free software,\n" .
109 "and you are welcome to redistribute it under certain conditions. Look\n" .
110 "into the LICENSE file for details." 116 return $this->in->getOption(
"yes") ??
false;
119 public function title(
string $title): void
121 $this->style->title($title);
126 $this->style->success($text);
129 public function error(
string $text): void
131 $this->style->error($text);
134 public function text(
string $text): void
136 $this->style->text($text);
141 $this->last_objective_was_notable = $is_notable;
142 $this->last_objective_label = $label;
143 $this->output_in_objective =
false;
145 $this->style->write(str_pad($label .
"...", self::LABEL_WIDTH));
151 if ($this->output_in_objective) {
152 $this->
startObjective($this->last_objective_label, $this->last_objective_was_notable);
156 $this->style->write(
"[<fg=green>OK</>]\n");
163 if ($this->output_in_objective || !$this->last_objective_was_notable) {
168 $this->style->write(
"[<fg=red>FAILED</>]\n");
175 $this->output_in_objective =
true;
176 $this->style->write(
"[in progress]\n");
182 return $this->last_objective_was_notable
183 || $this->out->isVeryVerbose()
184 || $this->out->isDebug();
189 return $this->out->isVerbose();
Wrapper around symfonies input and output facilities to provide just the functionality required for t...
startObjective(string $label, bool $is_notable)
__construct(InputInterface $in, OutputInterface $out)
This defines ways in which objectives may interact with admins during the setup.
confirmOrDeny(string $message)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
string $last_objective_label
confirmExplicit(string $message, string $type_text_to_confirm)
bool $last_objective_was_notable
bool $output_in_objective