Add drush plugin (#4490)
parent
a43cef3404
commit
f1799de0c9
3 changed files with 237 additions and 0 deletions
@ -0,0 +1,83 @@ |
|||||||
|
# Drush |
||||||
|
|
||||||
|
## Description |
||||||
|
This plugin offers aliases and functions to make the work with drush easier and more productive. |
||||||
|
|
||||||
|
To enable it, add the `drush` to your `plugins` array in `~/.zshrc`: |
||||||
|
|
||||||
|
``` |
||||||
|
plugins=(... drush) |
||||||
|
``` |
||||||
|
|
||||||
|
## Aliases |
||||||
|
| Alias | Description | Command | |
||||||
|
|-------|-----------------------------------------------------------------------|-----------------------------| |
||||||
|
| dr | Display drush help | drush | |
||||||
|
| drca | Clear all drupal caches. | drush cc all | |
||||||
|
| drcb | Clear block cache. | drush cc block | |
||||||
|
| drcg | Clear registry cache. | drush cc registry | |
||||||
|
| drcj | Clear css-js cache. | drush cc css-js | |
||||||
|
| drcm | Clear menu cache. | drush cc menu | |
||||||
|
| drcml | Clear module-list cache. | drush cc module-list | |
||||||
|
| drcr | Run all cron hooks in all active modules for specified site. | drush core-cron | |
||||||
|
| drct | Clear theme-registry cache. | drush cc theme-registry | |
||||||
|
| drcv | Clear views cache. (Make sure that the views module is enabled) | drush cc views | |
||||||
|
| drdmp | Backup database in a new dump.sql file | drush drush sql-dump --ordered-dump --result-file=dump.sql| |
||||||
|
| drf | Display features status | drush features | |
||||||
|
| drfr | Revert a feature module on your site. | drush features-revert -y | |
||||||
|
| drfu | Update a feature module on your site. | drush features-update -y | |
||||||
|
| drfra | Revert all enabled feature module on your site. | drush features-revert-all | |
||||||
|
| drif | Flush all derived images. | drush image-flush --all | |
||||||
|
| drpm | Show a list of available modules. | drush pm-list --type=module | |
||||||
|
| drst | Provides a birds-eye view of the current Drupal installation, if any. | drush core-status | |
||||||
|
| drup | Apply any database updates required (as with running update.php). | drush updatedb | |
||||||
|
| drups | List any pending database updates. | drush updatedb-status | |
||||||
|
| drv | Show drush version. | drush version | |
||||||
|
| drvd | Delete a variable. | drush variable-del | |
||||||
|
| drvg | Get a list of some or all site variables and values. | drush variable-get | |
||||||
|
| drvs | Set a variable. | drush variable-set | |
||||||
|
|
||||||
|
## Functions |
||||||
|
|
||||||
|
### dren |
||||||
|
Download and enable one or more extensions (modules or themes). |
||||||
|
Must be invoked with one or more parameters. e.g.: |
||||||
|
`dren devel` or `dren devel module_filter views` |
||||||
|
|
||||||
|
### drf |
||||||
|
Edit drushrc, site alias, and Drupal settings.php files. |
||||||
|
Can be invoked with one or without parameters. e.g.: |
||||||
|
`drf 1` |
||||||
|
|
||||||
|
### dris |
||||||
|
Disable one or more extensions (modules or themes) |
||||||
|
Must be invoked with one or more parameters. e.g.: |
||||||
|
`dris devel` or `dris devel module_filter views` |
||||||
|
|
||||||
|
### drpu |
||||||
|
Uninstall one or more modules. |
||||||
|
Must be invoked with one or more parameters. e.g.: |
||||||
|
`drpu devel` or `drpu devel module_filter views` |
||||||
|
|
||||||
|
### drnew |
||||||
|
Creates a brand new drupal website. |
||||||
|
Note: As soon as the installation is complete, drush will print a username and a random password into the terminal: |
||||||
|
``` |
||||||
|
Installation complete. User name: admin User password: cf7t8yqNEm |
||||||
|
``` |
||||||
|
|
||||||
|
## Additional features |
||||||
|
|
||||||
|
### Autocomplete |
||||||
|
The [completion script for drush](https://github.com/drush-ops/drush/blob/8.0.1/drush.complete.sh) comes enabled with this plugin. |
||||||
|
So, it is possible to type a command: |
||||||
|
``` |
||||||
|
drush sql |
||||||
|
``` |
||||||
|
|
||||||
|
And as soon as the tab key is pressed, the script will display the available commands: |
||||||
|
``` |
||||||
|
drush sql |
||||||
|
sqlc sql-conf sql-create sql-dump sql-query sql-sanitize |
||||||
|
sql-cli sql-connect sql-drop sqlq sqlsan sql-sync |
||||||
|
``` |
||||||
@ -0,0 +1,50 @@ |
|||||||
|
# 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 |
||||||
@ -0,0 +1,104 @@ |
|||||||
|
# Drush support. |
||||||
|
|
||||||
|
function dren() { |
||||||
|
drush en $@ -y |
||||||
|
} |
||||||
|
|
||||||
|
function dris() { |
||||||
|
drush pm-disable $@ -y |
||||||
|
} |
||||||
|
|
||||||
|
function drpu() { |
||||||
|
drush pm-uninstall $@ -y |
||||||
|
} |
||||||
|
|
||||||
|
function drf() { |
||||||
|
if [[ $1 == "" ]] then |
||||||
|
drush core-config |
||||||
|
else |
||||||
|
drush core-config --choice=$1 |
||||||
|
fi |
||||||
|
} |
||||||
|
|
||||||
|
function drfi() { |
||||||
|
if [[ $1 == "fields" ]]; then |
||||||
|
drush field-info fields |
||||||
|
elif [[ $1 == "types" ]]; then |
||||||
|
drush field-info types |
||||||
|
else |
||||||
|
drush field-info |
||||||
|
fi |
||||||
|
} |
||||||
|
|
||||||
|
function drnew() { |
||||||
|
|
||||||
|
cd ~ |
||||||
|
echo "Website's name: " |
||||||
|
read WEBSITE_NAME |
||||||
|
|
||||||
|
HOST=http://$(hostname -i)/ |
||||||
|
|
||||||
|
if [[ $WEBSITE_NAME == "" ]] then |
||||||
|
MINUTES=$(date +%M:%S) |
||||||
|
WEBSITE_NAME="Drupal-$MINUTES" |
||||||
|
echo "Your website will be named: $WEBSITE_NAME" |
||||||
|
fi |
||||||
|
|
||||||
|
drush dl drupal --drupal-project-rename=$WEBSITE_NAME |
||||||
|
|
||||||
|
echo "Type your localhost directory: (Leave empty for /var/www/html/)" |
||||||
|
read DIRECTORY |
||||||
|
|
||||||
|
if [[ $DIRECTORY == "" ]] then |
||||||
|
DIRECTORY="/var/www/html/" |
||||||
|
fi |
||||||
|
|
||||||
|
echo "Moving to $DIRECTORY$WEBSITE_NAME" |
||||||
|
sudo mv $WEBSITE_NAME $DIRECTORY |
||||||
|
cd $DIRECTORY$WEBSITE_NAME |
||||||
|
|
||||||
|
echo "Database's user: " |
||||||
|
read DATABASE_USR |
||||||
|
echo "Database's password: " |
||||||
|
read -s DATABASE_PWD |
||||||
|
echo "Database's name for your project: " |
||||||
|
read DATABASE |
||||||
|
|
||||||
|
DB_URL="mysql://$DATABASE_USR:$DATABASE_PWD@localhost/$DATABASE" |
||||||
|
drush site-install standard --db-url=$DB_URL --site-name=$WEBSITE_NAME |
||||||
|
|
||||||
|
open_command $HOST$WEBSITE_NAME |
||||||
|
echo "Done" |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
# Aliases, sorted alphabetically. |
||||||
|
alias dr="drush" |
||||||
|
alias drca="drush cc all" # Deprecated for Drush 8 |
||||||
|
alias drcb="drush cc block" # Deprecated for Drush 8 |
||||||
|
alias drcg="drush cc registry" # Deprecated for Drush 8 |
||||||
|
alias drcj="drush cc css-js" |
||||||
|
alias drcm="drush cc menu" |
||||||
|
alias drcml="drush cc module-list" |
||||||
|
alias drcr="drush core-cron" |
||||||
|
alias drct="drush cc theme-registry" |
||||||
|
alias drcv="drush cc views" |
||||||
|
alias drdmp="drush sql-dump --ordered-dump --result-file=dump.sql" |
||||||
|
alias drf="drush features" |
||||||
|
alias drfr="drush features-revert -y" |
||||||
|
alias drfu="drush features-update -y" |
||||||
|
alias drfra="drush features-revert-all" |
||||||
|
alias drif="drush image-flush --all" |
||||||
|
alias drpm="drush pm-list --type=module" |
||||||
|
alias drst="drush core-status" |
||||||
|
alias drup="drush updatedb" |
||||||
|
alias drups="drush updatedb-status" |
||||||
|
alias drv="drush version" |
||||||
|
alias drvd="drush variable-del" |
||||||
|
alias drvg="drush variable-get" |
||||||
|
alias drvs="drush variable-set" |
||||||
|
|
||||||
|
# Enable drush autocomplete support |
||||||
|
autoload bashcompinit |
||||||
|
bashcompinit |
||||||
|
source $(dirname $0)/drush.complete.sh |
||||||
Loading…
Reference in new issue