Skip to content

Refactor New-CommandDataFile script - #2197

Open
Sean Wheeler (sdwheeler) wants to merge 5 commits into
PowerShell:mainfrom
sdwheeler:sdw-w600137-refactor-script
Open

Sean Wheeler (sdwheeler) wants to merge 5 commits into
PowerShell:mainfrom
sdwheeler:sdw-w600137-refactor-script

Conversation

@sdwheeler

@sdwheeler Sean Wheeler (sdwheeler) commented Jul 25, 2026

Copy link
Copy Markdown
Collaborator

Refactor New-CommandDataFile script

  • Fixes AB#600137

This PR rewrites the script to create a function and fixes several issues:

  • Adds comment-based help
  • Adds parameter to specify an output path for the JSON file
  • Fixes the logic to avoid duplicate data output
  • Outputs a FileInfo object for the newly created file

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Refactors Utils/New-CommandDataFile.ps1 into an advanced script/function that generates the command/alias JSON data file used for compatibility-related settings, adding an OutputPath parameter and modernizing the implementation.

Changes:

  • Converts the script logic into an advanced function (New-CommandDataFile) and calls it from the script entrypoint.
  • Adds OutputPath support and uses module-qualified cmdlet invocations throughout.
  • Reworks module/command/alias enumeration and JSON emission.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread Utils/New-CommandDataFile.ps1 Outdated
Comment thread Utils/New-CommandDataFile.ps1
Comment thread Utils/New-CommandDataFile.ps1

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Help is attached to the inaccessible nested function, input validation accepts files, and failed writes can return stale output.

Get a fresh assessment by requesting another Copilot review.

Review details
  • Files reviewed: 1/1 changed files
  • Comments generated: 3
  • Review effort level: Balanced

[OutputType([System.IO.FileInfo])]
[CmdletBinding()]
param(
[ValidateScript({ Test-Path $_ })]
$aliases = $aliases.Name
$jsonData |
Microsoft.PowerShell.Utility\ConvertTo-Json -Depth 4 |
Microsoft.PowerShell.Utility\Out-File $outputFileName -Encoding utf8
Comment on lines +7 to +8
function New-CommandDataFile {
<#

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

happy with it but what is the context if you can share? the files shipped with PSSA and produced by this command are many years old btw and probably need updating as they are also powershell version specific. as no one has complained, don't think the rule that uses them is used a lot (which makes sense given that the new compat rules from rob are much better)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants