function Get-GitCommandApplyDefinition { <# .SYNOPSIS Get the command definition for the git apply verb command This is useful for validating a git input is reasonably correct .NOTES Not documented here: [-p] [-C] Not handled because this is a weird scenario to match on given the other constraints # TODO ~ cbrand - Handle this case #> [CmdletBinding()] [OutputType([object])] param() return @{ CommandName = 'Apply' Alias = @( 'apply' ) Arguments = @( @{ ArgumentName = 'Verbose' Variants = @( '--verbose' '-v' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @() } @{ ArgumentName = 'Statistics' Variants = @( '--stat' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @() } @{ ArgumentName = 'NumericalStatistics' Variants = @( '--numstat' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @( @{ ArgumentName = 'NullTerminatedMachineOutput' Variants = @( '-z' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @() } ) } @{ ArgumentName = 'Summary' Variants = @( '--summary' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @() } @{ ArgumentName = 'Check' Variants = @( '--check' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @() } @{ ArgumentName = 'Index' Variants = @( '--index' '--intent-to-add' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @() } @{ ArgumentName = 'ThreeWay' Variants = @( '--3way' '-3' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @( ) } @{ ArgumentName = 'Apply' Variants = @( '--apply' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @() } @{ ArgumentName = 'NoAdd' Variants = @( '--no-add' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @() } @{ ArgumentName = 'BuildFakeAncestor' Variants = @( '--build-fake-ancestor' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '.+' TrailingArguments = @() } @{ ArgumentName = 'Reverse' Variants = @( '--reverse' '-R' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @() } @{ ArgumentName = 'Binary' Variants = @( '--binary' '--allow-binary-replacement' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @() } @{ ArgumentName = 'Reject' Variants = @( '--reject' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @() } @{ ArgumentName = 'InaccurateEOF' Variants = @( '--inaccurate-eof' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @() } @{ ArgumentName = 'Recount' Variants = @( '--recount' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @() } @{ ArgumentName = 'Cached' Variants = @( '--cached' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @() } @{ ArgumentName = 'IgnoreWhitespace' Variants = @( '--ignore-whitespace' '--ignore-space-change' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @() } @{ ArgumentName = 'Whitespace' Variants = @( '--whitespace' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = 'nowarn|warn|fix|error|error-all' TrailingArguments = @() } @{ ArgumentName = 'Exclude' Variants = @( '--exclude' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '.+' TrailingArguments = @() } @{ ArgumentName = 'Include' Variants = @( '--include' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '.+' TrailingArguments = @() } @{ ArgumentName = 'Directory' Variants = @( '--directory' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '.+' TrailingArguments = @() } @{ ArgumentName = 'unsafe-paths' Variants = @( '--unsafe-paths' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @() } ) } }