[zsh] Add completions

This commit is contained in:
2025-12-23 18:22:12 +00:00
parent 78646a7e1d
commit e6e1c51a96
3 changed files with 56 additions and 17 deletions

View File

@@ -1,19 +1,4 @@
fpath+=($HOME/.config/zsh/completions)
autoload -Uz compinit
compinit
function _add-sshkey() {
local -a identities
# check for .ssh folder presence
if [[ ! -d $HOME/.ssh ]]; then
return
fi
for id in $HOME/.ssh/id_ed25519_*; do
name=$(basename $id | cut -d'_' -f3- | cut -d'.' -f1)
[[ ${id:-3} != 'pub' ]] && identities+=$name
done
compadd $identities
}
compdef _add-sshkey add-sshkey

View File

@@ -0,0 +1,18 @@
#compdef add-sshkey
_add-sshkey() {
local -a identities
# check for .ssh folder presence
if [[ ! -d $HOME/.ssh ]]; then
return
fi
for id in $HOME/.ssh/id_ed25519_*; do
name=$(basename $id | cut -d'_' -f3- | cut -d'.' -f1)
[[ ${id:-3} != 'pub' ]] && identities+=$name
done
compadd $identities
}
_add-sshkey "$@"

View File

@@ -0,0 +1,36 @@
#compdef awslogin
_awslogin() {
local context state state_descr line
typeset -A opt_args
_arguments \
'--profile[AWS profile name]:profile:->profiles' \
'--region[AWS region]:region:->regions'
case $state in
profiles)
local profiles
profiles=(${(f)"$(aws --no-cli-pager configure list-profiles 2>/dev/null)"})
_describe 'AWS profiles' profiles
;;
regions)
local regions
regions=(
'us-east-1:US East (N. Virginia)'
'us-east-2:US East (Ohio)'
'us-west-1:US West (N. California)'
'us-west-2:US West (Oregon)'
'eu-west-1:Europe (Ireland)'
'eu-west-2:Europe (London)'
'eu-central-1:Europe (Frankfurt)'
'ap-southeast-1:Asia Pacific (Singapore)'
'ap-southeast-2:Asia Pacific (Sydney)'
'ap-northeast-1:Asia Pacific (Tokyo)'
)
_describe 'AWS regions' regions
;;
esac
}
_awslogin "$@"