Open marcorieser opened 1 year ago
Invested some time yesterday and found out that ['--no-interaction' => true]
here seems to cause the issue.
if ($cleared = $this->shouldClear()) {
$this->call('statamic:site:clear', ['--no-interaction' => true]);
}
As soon as I remove that call or set it to interactive, the prompts in the starter kit post install hook ask for input rather than applying the default (--no-interaction
).
I have no clue why this is happening. The method seems to restore the interactivity somehow because dumping $this->input
shows interactive => true
. Maybe it's possible to run the clear command as subprocess to prevent side effects (whatever that means, just thinking out loud).
Adding a prompt (eg. text('Whatever');
) after the clear call above is interactive. Meaning it's somehow only affecting the starter kit post install hook.
Not sure if this issue belongs to the cli
repo anymore since the "issue code" is inside the cms
repo.
For now: We now reapply the interactivity state for prompts in the post install hook:
protected function applyInteractivity($console): void
{
$this->interactive = !$console->option('no-interaction');
/**
* Interactivity should be inherited but seems like there is a bug in Prompts where it stays
* without interaction when a command was run before with `--no-interaction` flag.
*/
Prompt::interactive($this->interactive);
}
Rob and I migrated the Post Install Script of Peak over to Laravel Prompts (https://github.com/studio1902/statamic-peak/pull/348).
So far so good and the prompts work as expected when installing Peak into an existing Statamic installation by running
php please starter-kit:install studio1902/statamic-peak --local
.However, when running
statamic new my-project studio1902/statamic-peak --local
the prompts do not show up asking for input but apply the default value. I can reproduce the same behaviour when runningphp please starter-kit:install studio1902/statamic-peak --local --no-interaction
(notice the--no-interaction
).I dumped the
$options
before they get passed into the starter kit installation but the--no-interaction
is missing. https://github.com/statamic/cli/blob/d320fbb834f69e54b2e58354d4c7e060b545be99/src/NewCommand.php#L550-L552