mirror of
https://github.com/gopasspw/gopass.git
synced 2025-12-08 19:24:54 +00:00
* [chore] Migrate to golangci-lint v2 Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [chore] Fix more lint issues Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [chore] Fix more lint issue Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [chore] Fix more lint issues Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [chore] Add more package comments. Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [chore] Fix golangci-lint config and the remaining checks Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [fix] Use Go 1.24 Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [fix] Fix container builds Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * Fix more failing tests Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * Fix test failure Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * Fix another len assertion Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * Move location tests Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [fix] Fix most remaining lint issues Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [fix] Only run XDG specific tests on linux Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [fix] Attempt to address on source of flaky failures Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> --------- Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
64 lines
2.4 KiB
Go
64 lines
2.4 KiB
Go
// Package fish implements a fish completion template for gopass.
|
|
package fish
|
|
|
|
// see https://fishshell.com/docs/current/commands.html#complete
|
|
var fishTemplate = `#!/usr/bin/env fish
|
|
{{ $prog := .Name -}}
|
|
set PROG '{{ $prog }}'
|
|
|
|
function __fish_{{ $prog }}_needs_command
|
|
set -l cmd (commandline -opc)
|
|
if [ (count $cmd) -eq 1 -a $cmd[1] = $PROG ]
|
|
return 0
|
|
end
|
|
return 1
|
|
end
|
|
|
|
function __fish_{{ $prog }}_uses_command
|
|
set cmd (commandline -opc)
|
|
if [ (count $cmd) -gt 1 ]
|
|
if [ $argv[1] = $cmd[2] ]
|
|
return 0
|
|
end
|
|
end
|
|
return 1
|
|
end
|
|
|
|
function __fish_{{ $prog }}_print_gpg_keys
|
|
gpg2 --list-keys | grep uid | sed 's/.*<\(.*\)>/\1/'
|
|
end
|
|
|
|
function __fish_{{ $prog }}_print_entries
|
|
{{ $prog }} ls --flat
|
|
end
|
|
|
|
function __fish_{{ $prog }}_print_dir
|
|
for i in ({{ $prog }} ls --flat)
|
|
echo (dirname $i)
|
|
end | sort -u
|
|
end
|
|
|
|
# erase any existing completions for {{ $prog }}
|
|
complete -c $PROG -e
|
|
complete -c $PROG -f -n '__fish_{{ $prog }}_needs_command' -a "(__fish_{{ $prog }}_print_entries)"
|
|
complete -c $PROG -f -s c -l clip -r -a "(__fish_{{ $prog }}_print_entries)"
|
|
{{- $gflags := .Flags -}}
|
|
{{ range .Commands }}
|
|
complete -c $PROG -f -n '__fish_{{ $prog }}_needs_command' -a {{ .Name }} -d 'Command: {{ .Usage }}'
|
|
{{- $cmd := .Name -}}
|
|
{{- if or (eq $cmd "copy") (eq $cmd "cp") (eq $cmd "move") (eq $cmd "mv") (eq $cmd "delete") (eq $cmd "remove") (eq $cmd "rm") (eq $cmd "show") (eq $cmd "set") (eq $cmd "edit") (eq $cmd "otp") }}
|
|
complete -c $PROG -f -n '__fish_{{ $prog }}_uses_command {{ $cmd }}' -a "(__fish_{{ $prog }}_print_entries)"{{ end -}}
|
|
{{- if or (eq $cmd "insert") (eq $cmd "generate") (eq $cmd "list") (eq $cmd "ls") }}
|
|
complete -c $PROG -f -n '__fish_{{ $prog }}_uses_command {{ $cmd }}' -a "(__fish_{{ $prog }}_print_dir)"{{ end -}}
|
|
{{- range .Subcommands }}
|
|
{{- $subcmd := .Name }}
|
|
complete -c $PROG -f -n '__fish_{{ $prog }}_uses_command {{ $cmd }}' -a {{ $subcmd }} -d 'Subcommand: {{ .Usage }}'
|
|
{{- range .Flags }}
|
|
complete -c $PROG -f -n '__fish_{{ $prog }}_uses_command {{ $cmd }} {{ $subcmd }} {{ if ne (. | formatShortFlag) "" }}-s {{ . | formatShortFlag }} {{ end }}-l {{ . | formatLongFlag }} -d "{{ . | formatFlagUsage }}"'
|
|
{{- end }}
|
|
{{- range $gflags }}
|
|
complete -c $PROG -f -n '__fish_{{ $prog }}_uses_command {{ $cmd }} {{ $subcmd }} {{ if ne (. | formatShortFlag) "" }}-s {{ . | formatShortFlag }} {{ end }}-l {{ . | formatLongFlag }} -d "{{ . | formatFlagUsage }}"'
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}`
|