Skip to content

Commit cb183eb

Browse files
authored
Merge pull request #140 from redcanaryco/tabcomplete
Tab Completion
2 parents 6005451 + e4a6e8c commit cb183eb

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

Public/Get-AtomicTechnique.ps1

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -498,3 +498,22 @@ filter Get-AtomicTechnique {
498498
$AtomicInstance
499499
}
500500
}
501+
502+
503+
# Tab completion for Atomic Tests
504+
function Get-TechniqueNumbers {
505+
$PathToAtomicsFolder = if ($IsLinux -or $IsMacOS) { $Env:HOME + "/AtomicRedTeam/atomics" } else { $env:HOMEDRIVE + "\AtomicRedTeam\atomics" }
506+
$techniqueNumbers = Get-ChildItem $PathToAtomicsFolder -Directory |
507+
ForEach-Object { $_.BaseName }
508+
509+
return $techniqueNumbers
510+
}
511+
512+
Register-ArgumentCompleter -CommandName 'Invoke-AtomicTest' -ParameterName 'AtomicTechnique' -ScriptBlock {
513+
param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameter)
514+
515+
Get-TechniqueNumbers | Where-Object { $_ -like "$wordToComplete*" } |
516+
ForEach-Object {
517+
New-Object System.Management.Automation.CompletionResult $_, $_, 'ParameterValue', "Technique number $_"
518+
}
519+
}

0 commit comments

Comments
 (0)