mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-05-08 04:34:00 +02:00
Merge 6aec44a7d3 into 5667161d49
This commit is contained in:
commit
58a8ebecc3
2 changed files with 97 additions and 0 deletions
58
plugins/clouds/_clouds
Normal file
58
plugins/clouds/_clouds
Normal file
|
|
@ -0,0 +1,58 @@
|
||||||
|
#compdef clouds
|
||||||
|
#autoload
|
||||||
|
|
||||||
|
# clouds zsh completion
|
||||||
|
|
||||||
|
_clouds_all_stacks() {
|
||||||
|
all_stacks=(`clouds list | tail -n +3 | awk '{print $1}'`)
|
||||||
|
}
|
||||||
|
|
||||||
|
_clouds_local_stacks() {
|
||||||
|
local_stacks=(`test -d stacks && ls -1 stacks`)
|
||||||
|
}
|
||||||
|
|
||||||
|
local -a _1st_arguments
|
||||||
|
_1st_arguments=(
|
||||||
|
'clone:Clones an existing stack into a new one'
|
||||||
|
'delete:Deletes a stack'
|
||||||
|
'dump:Dump CloudFormation stacks from your account into the current directory'
|
||||||
|
'edit:Edit a CloudFormation stack locally'
|
||||||
|
'help:Shows a list of commands or help for one command'
|
||||||
|
'list:List CloudFormation stacks from your account'
|
||||||
|
'update:Updated a list of CloudFormation stacks based on information from the current directory'
|
||||||
|
)
|
||||||
|
|
||||||
|
local expl
|
||||||
|
local -a all_stacks local_stacks
|
||||||
|
|
||||||
|
_arguments \
|
||||||
|
'(-f)--force[Force overwrites of existing data]' \
|
||||||
|
'(--help)--help[Show help]' \
|
||||||
|
'(--version)--version[Display the program version]' \
|
||||||
|
'*:: :->subcmds' && return 0
|
||||||
|
|
||||||
|
if (( CURRENT == 1 )); then
|
||||||
|
_describe -t commands "clouds subcommand" _1st_arguments
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$words[1]" in
|
||||||
|
clone|edit)
|
||||||
|
_clouds_local_stacks
|
||||||
|
_wanted local_stacks expl 'local stacks' compadd -a local_stacks
|
||||||
|
;;
|
||||||
|
update)
|
||||||
|
_arguments '(-c)--create_missing[Create AWS stacks if the required sources exist locally]'
|
||||||
|
_clouds_local_stacks
|
||||||
|
_wanted local_stacks expl 'local stacks' compadd -a local_stacks
|
||||||
|
;;
|
||||||
|
dump)
|
||||||
|
_arguments '(--all)--all[dump all stacks]'
|
||||||
|
_clouds_all_stacks
|
||||||
|
_wanted all_stacks expl 'all stacks' compadd -a all_stacks
|
||||||
|
;;
|
||||||
|
delete)
|
||||||
|
_clouds_all_stacks
|
||||||
|
_wanted all_stacks expl 'all stacks' compadd -a all_stacks
|
||||||
|
;;
|
||||||
|
esac
|
||||||
39
plugins/ssh/ssh.plugin.zsh
Normal file
39
plugins/ssh/ssh.plugin.zsh
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
############################################################
|
||||||
|
# Take all host sections in .ssh/config and offer them for
|
||||||
|
# completion as hosts (e.g. for ssh, rsync, scp and the like)
|
||||||
|
# Filter out wildcard host sections.
|
||||||
|
local hosts
|
||||||
|
if [[ -f $HOME/.ssh/config ]]; then
|
||||||
|
hosts=($(cat $HOME/.ssh/config | egrep '^Host.*' | awk '{print $2}' | grep -v '^*' | sed -e 's/\.*\*$//' | grep '\.'))
|
||||||
|
zstyle ':completion:*:hosts' hosts $hosts
|
||||||
|
fi
|
||||||
|
|
||||||
|
############################################################
|
||||||
|
# Remove host key from known hosts based on a host section
|
||||||
|
# name from .ssh/config
|
||||||
|
function ssh_rmhkey {
|
||||||
|
if [[ "x$1" == "x" ]]; then return; fi
|
||||||
|
ssh-keygen -R $(grep -A10 $1 ~/.ssh/config | grep -i HostName | head -n 1 | awk '{print $2}')
|
||||||
|
}
|
||||||
|
compctl -k hosts ssh_rmhkey
|
||||||
|
|
||||||
|
############################################################
|
||||||
|
# Load SSH key into agent
|
||||||
|
function ssh_load_key() {
|
||||||
|
local key=$1
|
||||||
|
if [[ "$key" == "" ]]; then return; fi
|
||||||
|
if ( ! ssh-add -l | grep -q $key ); then
|
||||||
|
ssh-add ~/.ssh/$key;
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
############################################################
|
||||||
|
# Remove SSH key from agent
|
||||||
|
function ssh_unload_key {
|
||||||
|
local key=$1
|
||||||
|
if [[ "$key" == "" ]]; then return; fi
|
||||||
|
if ( ssh-add -l|grep -q $key ); then
|
||||||
|
local keyfile=$(ssh-add -l | grep $key | cut -d ' ' -f 3)
|
||||||
|
ssh-add -d $keyfile
|
||||||
|
fi
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue