summaryrefslogtreecommitdiffstats
path: root/bin/zsh_functions
diff options
context:
space:
mode:
authorMatt Woodson <mwoodson@redhat.com>2015-02-13 09:50:35 -0500
committerMatt Woodson <mwoodson@redhat.com>2015-02-13 09:50:35 -0500
commit71c0c0c6d3dd2b3360604b118b496107b0f76d37 (patch)
treea59f17f686b03f2f614552ed0de28708f68f7793 /bin/zsh_functions
parentaafbcce3605b7f992ba4b73d67286dbb40461baa (diff)
downloadopenshift-71c0c0c6d3dd2b3360604b118b496107b0f76d37.tar.gz
openshift-71c0c0c6d3dd2b3360604b118b496107b0f76d37.tar.bz2
openshift-71c0c0c6d3dd2b3360604b118b496107b0f76d37.tar.xz
openshift-71c0c0c6d3dd2b3360604b118b496107b0f76d37.zip
added initial tower configs
Diffstat (limited to 'bin/zsh_functions')
-rw-r--r--bin/zsh_functions/_ossh49
1 files changed, 49 insertions, 0 deletions
diff --git a/bin/zsh_functions/_ossh b/bin/zsh_functions/_ossh
new file mode 100644
index 000000000..7c6cb7b0b
--- /dev/null
+++ b/bin/zsh_functions/_ossh
@@ -0,0 +1,49 @@
+#compdef ossh oscp
+
+_ossh_known_hosts(){
+ if [[ -f ~/.ansible/tmp/multi_ec2_inventory.cache ]]; then
+ print $(/usr/bin/python -c 'import json,os; z = json.loads(open("%s"%os.path.expanduser("~/.ansible/tmp/multi_ec2_inventory.cache")).read()); print "\n".join(["%s.%s" % (host["ec2_tag_Name"],host["ec2_tag_environment"]) for dns, host in z["_meta"]["hostvars"].items()])')
+ fi
+}
+
+_ossh(){
+ local curcontext="$curcontext" state line
+ typeset -A opt_args
+
+ common_arguments=(
+ '(- *)'{-h,--help}'[show help]' \
+ {-v,--verbose}'[enable verbose]' \
+ {-d,--debug}'[debug mode]' \
+ {-l,--login_name}+'[login name]:login_name' \
+ {-c,--command}+'[command to run on remote host]:command' \
+ {-o,--ssh_opts}+'[SSH Options to pass to SSH]:ssh options' \
+ {-e,--env}+'[environtment to use]:environment:->env' \
+ '--list[list out hosts]' \
+ ':OP Hosts:->oo_hosts'
+ )
+
+ case "$service" in
+ ossh)
+ _arguments -C -s \
+ "$common_arguments[@]" \
+ ;;
+
+ oscp)
+ _arguments -C -s \
+ "$common_arguments[@]" \
+ {-r,--recurse}'[Recursive copy]' \
+ ':file:_files'
+ ;;
+ esac
+
+ case "$state" in
+ oo_hosts)
+ _values 'oo_hosts' $(_ossh_known_hosts)
+ ;;
+ env)
+ _values 'environment' ops int stg prod
+ ;;
+ esac
+}
+
+_ossh "$@"