mirror of
https://github.com/pestphp/pest.git
synced 2026-03-06 07:47:22 +01:00
feat: improve --init command
This commit is contained in:
@ -8,6 +8,7 @@ use Pest\Bootstrappers\BootView;
|
|||||||
use Pest\Support\View;
|
use Pest\Support\View;
|
||||||
use Symfony\Component\Console\Helper\SymfonyQuestionHelper;
|
use Symfony\Component\Console\Helper\SymfonyQuestionHelper;
|
||||||
use Symfony\Component\Console\Input\ArrayInput;
|
use Symfony\Component\Console\Input\ArrayInput;
|
||||||
|
use Symfony\Component\Console\Input\InputInterface;
|
||||||
use Symfony\Component\Console\Output\OutputInterface;
|
use Symfony\Component\Console\Output\OutputInterface;
|
||||||
use Symfony\Component\Console\Question\ConfirmationQuestion;
|
use Symfony\Component\Console\Question\ConfirmationQuestion;
|
||||||
|
|
||||||
@ -30,8 +31,10 @@ final class Thanks
|
|||||||
/**
|
/**
|
||||||
* Creates a new Console Command instance.
|
* Creates a new Console Command instance.
|
||||||
*/
|
*/
|
||||||
public function __construct(private readonly OutputInterface $output)
|
public function __construct(
|
||||||
{
|
private readonly InputInterface $input,
|
||||||
|
private readonly OutputInterface $output
|
||||||
|
) {
|
||||||
// ..
|
// ..
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -43,11 +46,11 @@ final class Thanks
|
|||||||
$bootstrapper = new BootView($this->output);
|
$bootstrapper = new BootView($this->output);
|
||||||
$bootstrapper->boot();
|
$bootstrapper->boot();
|
||||||
|
|
||||||
$wantsToSupport = (new SymfonyQuestionHelper())->ask(
|
$wantsToSupport = $this->input->isInteractive() && (new SymfonyQuestionHelper())->ask(
|
||||||
new ArrayInput([]),
|
new ArrayInput([]),
|
||||||
$this->output,
|
$this->output,
|
||||||
new ConfirmationQuestion(
|
new ConfirmationQuestion(
|
||||||
' <options=bold>Would you like to show your support by starring the project on GitHub?</>',
|
' <options=bold>Wanna show Pest some love by starring it on GitHub?</>',
|
||||||
true,
|
true,
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|||||||
@ -9,6 +9,7 @@ use Pest\Console\Thanks;
|
|||||||
use Pest\Contracts\Plugins\HandlesArguments;
|
use Pest\Contracts\Plugins\HandlesArguments;
|
||||||
use Pest\Support\View;
|
use Pest\Support\View;
|
||||||
use Pest\TestSuite;
|
use Pest\TestSuite;
|
||||||
|
use Symfony\Component\Console\Input\InputInterface;
|
||||||
use Symfony\Component\Console\Output\OutputInterface;
|
use Symfony\Component\Console\Output\OutputInterface;
|
||||||
use Symfony\Component\Process\Process;
|
use Symfony\Component\Process\Process;
|
||||||
|
|
||||||
@ -38,6 +39,7 @@ final class Init implements HandlesArguments
|
|||||||
*/
|
*/
|
||||||
public function __construct(
|
public function __construct(
|
||||||
private readonly TestSuite $testSuite,
|
private readonly TestSuite $testSuite,
|
||||||
|
private readonly InputInterface $input,
|
||||||
private readonly OutputInterface $output
|
private readonly OutputInterface $output
|
||||||
) {
|
) {
|
||||||
// ..
|
// ..
|
||||||
@ -54,6 +56,7 @@ final class Init implements HandlesArguments
|
|||||||
if ($arguments[1] !== self::INIT_OPTION) {
|
if ($arguments[1] !== self::INIT_OPTION) {
|
||||||
return $arguments;
|
return $arguments;
|
||||||
}
|
}
|
||||||
|
|
||||||
unset($arguments[1]);
|
unset($arguments[1]);
|
||||||
|
|
||||||
$this->init();
|
$this->init();
|
||||||
@ -61,7 +64,10 @@ final class Init implements HandlesArguments
|
|||||||
return array_values($arguments);
|
return array_values($arguments);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function init(): void
|
/**
|
||||||
|
* Initializes the tests directory.
|
||||||
|
*/
|
||||||
|
private function init(): never
|
||||||
{
|
{
|
||||||
$testsBaseDir = "{$this->testSuite->rootPath}/tests";
|
$testsBaseDir = "{$this->testSuite->rootPath}/tests";
|
||||||
|
|
||||||
@ -92,6 +98,8 @@ final class Init implements HandlesArguments
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@mkdir(dirname($toPath));
|
||||||
|
|
||||||
copy($fromPath, $toPath);
|
copy($fromPath, $toPath);
|
||||||
|
|
||||||
View::render('components.two-column-detail', [
|
View::render('components.two-column-detail', [
|
||||||
@ -102,7 +110,7 @@ final class Init implements HandlesArguments
|
|||||||
|
|
||||||
View::render('components.new-line');
|
View::render('components.new-line');
|
||||||
|
|
||||||
(new Thanks($this->output))();
|
(new Thanks($this->input, $this->output))();
|
||||||
|
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user