Update-PSKoan - Fix "Yes to All" for ShouldProcess Prompts #292
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR Summary
Currently, Update-PSKoan prompts for every file updated, even if the user selects "A" for "Yes to All" at one of the prompts.
Fix is to have the ShouldProcess check only in the iterating function, and allow the child function to use that preference instead of checking each time it is called.
Context
The reason this is needed appears to be that "yes to all" is only respected for the duration of the current function. Since
Update-PSKoanFile
was being called once for every file that needed updating, the prompt was unable to remember the user's selection from the prior call.Moving the ShouldProcess test into the parent
Update-PSKoan
function appears to resolve the issue most neatly.Changes
$PSCmdlet.ShouldProcess()
test fromUpdate-PSKoanFile
itself intoUpdate-PSKoan
and test before calling the private function.Checklist