diff --git a/aliases/available/kubectl.aliases.bash b/aliases/available/kubectl.aliases.bash index 58670ce5..0322c931 100644 --- a/aliases/available/kubectl.aliases.bash +++ b/aliases/available/kubectl.aliases.bash @@ -18,6 +18,7 @@ function _set_pkg_aliases() alias kcdn='kubectl describe node' alias kcgpan='kubectl get pods --all-namespaces' alias kcgdan='kubectl get deployments --all-namespaces' + alias kcnetshoot='kubectl run --generator=run-pod/v1 netshoot-$(uuidgen | tr A-Z a-z | sed 's/-//g') --rm -i --tty --image nicolaka/netshoot -- /bin/bash' fi } diff --git a/completion/available/vagrant.completion.bash b/completion/available/vagrant.completion.bash index e0abb7af..0803893f 100644 --- a/completion/available/vagrant.completion.bash +++ b/completion/available/vagrant.completion.bash @@ -53,7 +53,7 @@ __vagrantinvestigate() { _vagrant() { cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" - commands="snapshot box connect destroy docker-logs docker-run global-status halt help init list-commands login package plugin provision rdp reload resume rsync rsync-auto share ssh ssh-config status suspend up version" + commands="box cloud destroy global-status halt help hostmanager init login package plugin port powershell provision push rdp reload resume scp snapshot ssh ssh-config status suspend up upload validate vbguest version winrm winrm-config" if [ $COMP_CWORD == 1 ] then @@ -91,12 +91,12 @@ _vagrant() { return 0 ;; "box") - box_commands="add help list remove repackage" + box_commands="add list outdated prune remove repackage update" COMPREPLY=($(compgen -W "${box_commands}" -- ${cur})) return 0 ;; "plugin") - plugin_commands="install license list uninstall update" + plugin_commands="expunge install license list repair uninstall update" COMPREPLY=($(compgen -W "${plugin_commands}" -- ${cur})) return 0 ;; @@ -105,7 +105,7 @@ _vagrant() { return 0 ;; "snapshot") - snapshot_commands="back delete go list take" + snapshot_commands="delete list pop push restore save" COMPREPLY=($(compgen -W "${snapshot_commands}" -- ${cur})) return 0 ;; @@ -135,13 +135,29 @@ _vagrant() { esac ;; "snapshot") - if [ "$prev" == "go" ]; then - local snapshot_list=$(vagrant snapshot list | awk '/Name:/ { print $2 }') - COMPREPLY=($(compgen -W "${snapshot_list}" -- ${cur})) + if [ "$prev" == "restore" ]; then + COMPREPLY=($(compgen -W "${vm_list}" -- ${cur})) return 0 fi ;; esac fi + + if [ $COMP_CWORD == 4 ] + then + action="${COMP_WORDS[COMP_CWORD-3]}" + prev="${COMP_WORDS[COMP_CWORD-2]}" + case "$action" in + "snapshot") + if [ "$prev" == "restore" ]; then + local snapshot_list="$(vagrant snapshot list ${cur} 2>/dev/null | awk '{ORS=" "} /==>/ {next} {print}')" + COMPREPLY=($(compgen -W "${snapshot_list}" -- ${cur})) + return 0 + fi + ;; + *) + ;; + esac + fi } complete -F _vagrant vagrant diff --git a/lib/preexec.bash b/lib/preexec.bash index 87922946..2386f46a 100644 --- a/lib/preexec.bash +++ b/lib/preexec.bash @@ -123,7 +123,7 @@ function preexec_install () { # Finally, install the actual traps. if [[ ! -z "${PROMPT_COMMAND// }" ]]; then - PROMPT_COMMAND="${PROMPT_COMMAND};preexec_invoke_cmd" + PROMPT_COMMAND="${PROMPT_COMMAND}"$'\n'"preexec_invoke_cmd" else PROMPT_COMMAND="preexec_invoke_cmd" fi diff --git a/plugins/available/cht-sh.plugin.bash b/plugins/available/cht-sh.plugin.bash new file mode 100644 index 00000000..63e3c9b7 --- /dev/null +++ b/plugins/available/cht-sh.plugin.bash @@ -0,0 +1,21 @@ +cite about-plugin +about-plugin 'Simplify `curl cht.sh/` to `cht.sh `' + +# Play nicely if user already installed cht.sh cli tool +if ! _command_exists cht.sh ; then + function cht.sh () { + about 'Executes a cht.sh curl query using the provided arguments' + param ' [ ( topic [sub-topic] ) | ~keyword ] [ :list | :help | :learn ]' + example '$ cht.sh :help' + example '$ cht.sh :list' + example '$ cht.sh tar' + example '$ cht.sh js "parse json"' + example '$ cht.sh python :learn' + example '$ cht.sh rust :list' + group 'cht-sh' + + # Separate arguments with '/', preserving spaces within them + local query=$(IFS=/ ; echo "$*") + curl "cht.sh/${query}" + } +fi diff --git a/themes/base.theme.bash b/themes/base.theme.bash index d5858018..7452eb9f 100644 --- a/themes/base.theme.bash +++ b/themes/base.theme.bash @@ -68,6 +68,8 @@ NVM_THEME_PROMPT_SUFFIX='|' RVM_THEME_PROMPT_PREFIX=' |' RVM_THEME_PROMPT_SUFFIX='|' +THEME_SHOW_RUBY_PROMPT=${THEME_SHOW_RUBY_PROMPT:=true} + THEME_SHOW_USER_HOST=${THEME_SHOW_USER_HOST:=false} USER_HOST_THEME_PROMPT_PREFIX='' USER_HOST_THEME_PROMPT_SUFFIX='' @@ -371,7 +373,9 @@ function chruby_version_prompt { } function ruby_version_prompt { - echo -e "$(rbfu_version_prompt)$(rbenv_version_prompt)$(rvm_version_prompt)$(chruby_version_prompt)" + if [[ "${THEME_SHOW_RUBY_PROMPT}" = "true" ]]; then + echo -e "$(rbfu_version_prompt)$(rbenv_version_prompt)$(rvm_version_prompt)$(chruby_version_prompt)" + fi } function k8s_context_prompt { diff --git a/themes/envy/envy.theme.bash b/themes/envy/envy.theme.bash index 277e3751..f4f09be8 100644 --- a/themes/envy/envy.theme.bash +++ b/themes/envy/envy.theme.bash @@ -9,8 +9,11 @@ GIT_THEME_PROMPT_CLEAN=" ${bold_green}✓" GIT_THEME_PROMPT_PREFIX=" ${green}|" GIT_THEME_PROMPT_SUFFIX="${green}|" +VIRTUALENV_THEME_PROMPT_PREFIX="${green}ⓔ " +VIRTUALENV_THEME_PROMPT_SUFFIX="" + function prompt_command() { - PS1="\n${yellow}$(ruby_version_prompt) ${purple}\h ${reset_color}in ${green}\w\n${bold_cyan}$(scm_char)${green}$(scm_prompt_info) ${green}→${reset_color} " + PS1="\n$(virtualenv_prompt)${yellow}$(ruby_version_prompt) ${purple}\h ${reset_color}in ${green}\w\n${bold_cyan}$(scm_char)${green}$(scm_prompt_info) ${green}→${reset_color} " } safe_append_prompt_command prompt_command