drush.complete.sh

  1. 8.0.x drush.complete.sh
  2. 6.x drush.complete.sh
  3. 7.x drush.complete.sh
  4. 5.x drush.complete.sh
  5. master drush.complete.sh
# BASH completion script for Drush.
#
# Place this in your /etc/bash_completion.d/ directory or source it from your
# ~/.bash_completion or ~/.bash_profile files.  Alternatively, source
# examples/example.bashrc instead, as it will automatically find and source
# this file.
#
# If you're using ZSH instead of BASH, add the following to your ~/.zshrc file
# and source it.
#
#   autoload bashcompinit
#   bashcompinit
#   source /path/to/your/drush.complete.sh

# Ensure drush is available.
which drush > /dev/null || alias drush &> /dev/null || return

__drush_ps1() {
  f="${TMPDIR:-/tmp/}/drush-env-${USER}/drush-drupal-site-$$"
  if [ -f $f ]
  then
    __DRUPAL_SITE=$(cat "$f")
  else
    __DRUPAL_SITE="$DRUPAL_SITE"
  fi

  # Set DRUSH_PS1_SHOWCOLORHINTS to a non-empty value and define a
  # __drush_ps1_colorize_alias() function for color hints in your Drush PS1
  # prompt. See example.prompt.sh for an example implementation.
  if [ -n "${__DRUPAL_SITE-}" ] && [ -n "${DRUSH_PS1_SHOWCOLORHINTS-}" ]; then
    __drush_ps1_colorize_alias
  fi

  [[ -n "$__DRUPAL_SITE" ]] && printf "${1:- (%s)}" "$__DRUPAL_SITE"
}

# Completion function, uses the "drush complete" command to retrieve
# completions for a specific command line COMP_WORDS.
_drush_completion() {
  # Set IFS to newline (locally), since we only use newline separators, and
  # need to retain spaces (or not) after completions.
  local IFS=$'\n'
  # The '< /dev/null' is a work around for a bug in php libedit stdin handling.
  # Note that libedit in place of libreadline in some distributions. See:
  # https://bugs.launchpad.net/ubuntu/+source/php5/+bug/322214
  COMPREPLY=( $(drush --early=includes/complete.inc "${COMP_WORDS[@]}" < /dev/null 2> /dev/null) )
}

# Register our completion function. We include common short aliases for Drush.
complete -o bashdefault -o default -o nospace -F _drush_completion d dr drush drush5 drush6 drush7 drush8 drush.php

File

drush.complete.sh
View source
  1. # BASH completion script for Drush.
  2. #
  3. # Place this in your /etc/bash_completion.d/ directory or source it from your
  4. # ~/.bash_completion or ~/.bash_profile files. Alternatively, source
  5. # examples/example.bashrc instead, as it will automatically find and source
  6. # this file.
  7. #
  8. # If you're using ZSH instead of BASH, add the following to your ~/.zshrc file
  9. # and source it.
  10. #
  11. # autoload bashcompinit
  12. # bashcompinit
  13. # source /path/to/your/drush.complete.sh
  14. # Ensure drush is available.
  15. which drush > /dev/null || alias drush &> /dev/null || return
  16. __drush_ps1() {
  17. f="${TMPDIR:-/tmp/}/drush-env-${USER}/drush-drupal-site-$$"
  18. if [ -f $f ]
  19. then
  20. __DRUPAL_SITE=$(cat "$f")
  21. else
  22. __DRUPAL_SITE="$DRUPAL_SITE"
  23. fi
  24. # Set DRUSH_PS1_SHOWCOLORHINTS to a non-empty value and define a
  25. # __drush_ps1_colorize_alias() function for color hints in your Drush PS1
  26. # prompt. See example.prompt.sh for an example implementation.
  27. if [ -n "${__DRUPAL_SITE-}" ] && [ -n "${DRUSH_PS1_SHOWCOLORHINTS-}" ]; then
  28. __drush_ps1_colorize_alias
  29. fi
  30. [[ -n "$__DRUPAL_SITE" ]] && printf "${1:- (%s)}" "$__DRUPAL_SITE"
  31. }
  32. # Completion function, uses the "drush complete" command to retrieve
  33. # completions for a specific command line COMP_WORDS.
  34. _drush_completion() {
  35. # Set IFS to newline (locally), since we only use newline separators, and
  36. # need to retain spaces (or not) after completions.
  37. local IFS=$'\n'
  38. # The '< /dev/null' is a work around for a bug in php libedit stdin handling.
  39. # Note that libedit in place of libreadline in some distributions. See:
  40. # https://bugs.launchpad.net/ubuntu/+source/php5/+bug/322214
  41. COMPREPLY=( $(drush --early=includes/complete.inc "${COMP_WORDS[@]}" < /dev/null 2> /dev/null) )
  42. }
  43. # Register our completion function. We include common short aliases for Drush.
  44. complete -o bashdefault -o default -o nospace -F _drush_completion d dr drush drush5 drush6 drush7 drush8 drush.php