function Get-GitCommandAddDefinition { <# .SYNOPSIS Get the command definition for the git add verb command This is useful for validating a git input is reasonably correct #> [CmdletBinding()] [OutputType([object])] param() return @{ CommandName = 'Add' Alias = @( 'add' ) Arguments = @( @{ ArgumentName = 'Verbose' Variants = @( '--verbose' '-vv' '-v' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @() } @{ ArgumentName = 'Dry Run' Variants = @( '--dry-run' '-n' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @() } @{ ArgumentName = 'Force' Variants = @( '--force' '-f' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @() } @{ ArgumentName = 'Interactive' Variants = @( '--interactive' '-i' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @() } @{ ArgumentName = 'Patch' Variants = @( '--patch' '-p' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @() } @{ ArgumentName = 'Edit' Variants = @( '--edit' '-e' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @() } @{ ArgumentName = 'MaybeUpdate' Variants = @( '--no-all' '--all' '--no-ignore-removal' '--ignore-removal' '-A' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @( @{ ArgumentName = 'Update' Variants = @( '-update' '-u' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @() } ) } @{ ArgumentName = 'IntentToAdd' Variants = @( '--intent-to-add' '-N' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @() } @{ ArgumentName = 'Refresh' Variants = @( '--refresh' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @() } @{ ArgumentName = 'IgnoreErrors' Variants = @( '--ignore-errors' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @() } @{ ArgumentName = 'IgnoreMissing' Variants = @( '--ignore-missing' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @() } @{ ArgumentName = 'Renormalize' Variants = @( '--renormalize' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @() } @{ ArgumentName = 'ChangeModificationStrategy' Variants = @( '--chmod' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '(+|-){1}.+' TrailingArguments = @() } @{ ArgumentName = 'PathspecFromFile' Variants = @( '--pathspec-from-file' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '.+' TrailingArguments = @( @{ ArgumentName = 'PathspecFileNull' Variants = @( '--pathspec-file-nul' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @() } ) } @{ ArgumentName = 'RestOfLine' Variants = @( '--' ) RequiredAdditionalArguments = 0 EqualsSplitAcceptRegex = '' TrailingArguments = @() } ) } }