mirror of
https://github.com/rwinkhart/MUTN.git
synced 2026-09-05 16:47:20 -04:00
Do not require a pre-existing entry name for PowerShell completions
This commit is contained in:
+14
-18
@@ -1,18 +1,13 @@
|
|||||||
Class libmuttonEntries : System.Management.Automation.IValidateSetValuesGenerator {
|
function MUTNEntryCompleter {
|
||||||
[string[]] GetValidValues() {
|
param($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameter)
|
||||||
#$entryPath = (Resolve-Path '~/.local/share/libmutton').Path # UNIX testing
|
$entryPath = (Resolve-Path '~/.local/share/libmutton').Path # UNIX testing
|
||||||
$entryPath = (Resolve-Path '~/AppData/Local/libmutton/entries').Path
|
#$entryPath = (Resolve-Path '~/AppData/Local/libmutton/entries').Path
|
||||||
$entryNames = If (Test-Path $entryPath) {(Get-ChildItem -Path $entryPath -Recurse).FullName.Substring($entryPath.Length) -replace '\\', '/'}
|
$entryNames = If (Test-Path $entryPath) {(Get-ChildItem -Path $entryPath -Recurse).FullName.Substring($entryPath.Length) -replace '\\', '/' -replace ' ', '` '}
|
||||||
return [string[]] $entryNames
|
$entryNames | Where-Object { $_ -like "$wordToComplete*" }
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function MUTNArgumentCompleter {
|
function MUTNOptionCompleter {
|
||||||
param ( $commandName,
|
param ($commandName, $parameterName, $wordToComplete, $commandAst, $fakeBoundParameters)
|
||||||
$parameterName,
|
|
||||||
$wordToComplete,
|
|
||||||
$commandAst,
|
|
||||||
$fakeBoundParameters )
|
|
||||||
|
|
||||||
$possibleValues = @{
|
$possibleValues = @{
|
||||||
add = @('password', 'note', 'folder')
|
add = @('password', 'note', 'folder')
|
||||||
@@ -33,8 +28,8 @@ if ($fakeBoundParameters.ContainsKey('argument')) {
|
|||||||
function mutn {
|
function mutn {
|
||||||
[CmdletBinding()]
|
[CmdletBinding()]
|
||||||
param (
|
param (
|
||||||
[Parameter(Mandatory=$false, Position = 0)]
|
[Parameter(Position = 0)]
|
||||||
[ValidateSet([libmuttonEntries])]
|
[ArgumentCompleter({ MUTNEntryCompleter @args })]
|
||||||
[string]$entry,
|
[string]$entry,
|
||||||
|
|
||||||
[Parameter(Position = 1)]
|
[Parameter(Position = 1)]
|
||||||
@@ -42,9 +37,10 @@ function mutn {
|
|||||||
[string]$argument,
|
[string]$argument,
|
||||||
|
|
||||||
[Parameter(Position = 2)]
|
[Parameter(Position = 2)]
|
||||||
[ArgumentCompleter({ MUTNArgumentCompleter @args })]
|
[ArgumentCompleter({ MUTNOptionCompleter @args })]
|
||||||
[string]$option
|
[string]$option
|
||||||
)
|
)
|
||||||
#Invoke-Expression -Command ('/usr/local/bin/mutn ' + ($entry -replace ' ', '` '), $argument, ($option -replace ':', '-')).Trim() # UNIX testing
|
|
||||||
Invoke-Expression -Command ('mutn.exe ' + ($entry -replace ' ', '` '), $argument, $option).Trim()
|
Invoke-Expression -Command ('/usr/local/bin/mutn ' + ($entry -replace ' ', '` '), $argument, ($option -replace ':', '-')).Trim() # UNIX testing
|
||||||
|
#Invoke-Expression -Command ('mutn.exe ' + ($entry -replace ' ', '` '), $argument, $option).Trim()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user