summaryrefslogtreecommitdiff
path: root/plugins/knife_ssh
diff options
context:
space:
mode:
authorTrae Robrock <trobrock@gmail.com>2013-07-16 16:57:08 -0700
committerTrae Robrock <trobrock@gmail.com>2013-07-16 16:58:55 -0700
commit00ccee1f33c90c8900e8c2efe4dca9bf5db040f9 (patch)
tree41d2dbba744c7c0478383239a31caba569754508 /plugins/knife_ssh
parent7f74294d7aa7ab86e18e70a1153c15fa373c5849 (diff)
downloadzsh-00ccee1f33c90c8900e8c2efe4dca9bf5db040f9.tar.gz
zsh-00ccee1f33c90c8900e8c2efe4dca9bf5db040f9.tar.bz2
zsh-00ccee1f33c90c8900e8c2efe4dca9bf5db040f9.zip
Add knife_ssh command to make connecting to servers managed with chef easier
Diffstat (limited to 'plugins/knife_ssh')
-rw-r--r--plugins/knife_ssh/knife_ssh.plugin.zsh18
1 files changed, 18 insertions, 0 deletions
diff --git a/plugins/knife_ssh/knife_ssh.plugin.zsh b/plugins/knife_ssh/knife_ssh.plugin.zsh
new file mode 100644
index 000000000..ea3361c49
--- /dev/null
+++ b/plugins/knife_ssh/knife_ssh.plugin.zsh
@@ -0,0 +1,18 @@
+function knife_ssh() {
+ grep -q $1 ~/.knife_comp~ || rm -f ~/.knife_comp~;
+ ssh $(knife node show $1 | awk '/IP:/{print $2}')
+}
+
+_knife_ssh() {
+ if hash knife 2>/dev/null; then
+ if [[ ! -f ~/.knife_comp~ ]]; then
+ echo "\nGenerating ~/.knife_comp~..." >/dev/stderr
+ knife node list > ~/.knife_comp~
+ fi
+ compadd `cat ~/.knife_comp~`
+ else
+ echo "Could not find knife" > /dev/stderr;
+ fi
+}
+
+compdef _knife_ssh knife_ssh