f1799de0c92357cfafd501c3f74375d197a1708c

Author
Lucas A. Rodrigues <lucas.ar.rodrigues@gmail.com>
Committer
Marc Cornellà <marc.cornella@live.com>
Date

Message

Add drush plugin (#4490)

Diff

This diff is truncated to protect this page.

  1diff --git a/plugins/drush/README.md b/plugins/drush/README.md
  2new file mode 100644
  3index 0000000000000000000000000000000000000000..df7b82bddb11e1c2a6cceedd9b83b3e3ff8914ab
  4--- /dev/null
  5+++ b/plugins/drush/README.md
  6@@ -0,0 +1,83 @@
  7+# Drush
  8+
  9+## Description
 10+This plugin offers aliases and functions to make the work with drush easier and more productive.
 11+
 12+To enable it, add the `drush` to your `plugins` array in `~/.zshrc`:
 13+
 14+```
 15+plugins=(... drush)
 16+```
 17+
 18+## Aliases
 19+| Alias | Description                                                           | Command                     |
 20+|-------|-----------------------------------------------------------------------|-----------------------------|
 21+| dr    | Display drush help                                                    | drush                       |
 22+| drca  | Clear all drupal caches.                                              | drush cc all                |
 23+| drcb  | Clear block cache.                                                    | drush cc block              |
 24+| drcg  | Clear registry cache.                                                 | drush cc registry           |
 25+| drcj  | Clear css-js cache.                                                   | drush cc css-js             |
 26+| drcm  | Clear menu cache.                                                     | drush cc menu               |
 27+| drcml | Clear module-list cache.                                              | drush cc module-list        |
 28+| drcr  | Run all cron hooks in all active modules for specified site.          | drush core-cron             |
 29+| drct  | Clear theme-registry cache.                                           | drush cc theme-registry     |
 30+| drcv  | Clear views cache. (Make sure that the views module is enabled)       | drush cc views              |
 31+| drdmp | Backup database in a new dump.sql file                                | drush drush sql-dump --ordered-dump --result-file=dump.sql|
 32+| drf   | Display features status                                               | drush features              |
 33+| drfr  | Revert a feature module on your site.                                 | drush features-revert -y    |
 34+| drfu  | Update a feature module on your site.                                 | drush features-update -y    |
 35+| drfra | Revert all enabled feature module on your site.                       | drush features-revert-all   |
 36+| drif  | Flush all derived images.                                             | drush image-flush --all     |
 37+| drpm  | Show a list of available modules.                                     | drush pm-list --type=module |
 38+| drst  | Provides a birds-eye view of the current Drupal installation, if any. | drush core-status           |
 39+| drup  | Apply any database updates required (as with running update.php).     | drush updatedb              |
 40+| drups | List any pending database updates.                                    | drush updatedb-status       |
 41+| drv   | Show drush version.                                                   | drush version               |
 42+| drvd	| Delete a variable.																										| drush variable-del					|
 43+| drvg	| Get a list of some or all site variables and values.									| drush variable-get					|
 44+| drvs	| Set a variable.																												| drush variable-set					|
 45+
 46+## Functions
 47+
 48+### dren
 49+Download and enable one or more extensions (modules or themes).
 50+Must be invoked with one or more parameters. e.g.:
 51+`dren devel` or `dren devel module_filter views`
 52+
 53+### drf
 54+Edit drushrc, site alias, and Drupal settings.php files.
 55+Can be invoked with one or without parameters. e.g.:
 56+`drf 1`
 57+
 58+### dris
 59+Disable one or more extensions (modules or themes)
 60+Must be invoked with one or more parameters. e.g.:
 61+`dris devel` or `dris devel module_filter views`
 62+
 63+### drpu
 64+Uninstall one or more modules.
 65+Must be invoked with one or more parameters. e.g.:
 66+`drpu devel` or `drpu devel module_filter views`
 67+
 68+### drnew
 69+Creates a brand new drupal website.
 70+Note: As soon as the installation is complete, drush will print a username and a random password into the terminal:
 71+```
 72+Installation complete.  User name: admin  User password: cf7t8yqNEm
 73+```
 74+
 75+## Additional features
 76+
 77+### Autocomplete
 78+The [completion script for drush](https://github.com/drush-ops/drush/blob/8.0.1/drush.complete.sh) comes enabled with this plugin.
 79+So, it is possible to type a command:
 80+```
 81+drush sql
 82+```
 83+
 84+And as soon as the tab key is pressed, the script will display the available commands:
 85+```
 86+drush sql
 87+sqlc           sql-conf       sql-create     sql-dump       sql-query      sql-sanitize                
 88+sql-cli        sql-connect    sql-drop       sqlq           sqlsan         sql-sync
 89+```
 90diff --git a/plugins/drush/drush.complete.sh b/plugins/drush/drush.complete.sh
 91new file mode 100644
 92index 0000000000000000000000000000000000000000..38b882ec358e31b4e1b84267d19aaa0d81e7bb72
 93--- /dev/null
 94+++ b/plugins/drush/drush.complete.sh
 95@@ -0,0 +1,50 @@
 96+# BASH completion script for Drush.
 97+#
 98+# Place this in your /etc/bash_completion.d/ directory or source it from your
 99+# ~/.bash_completion or ~/.bash_profile files.  Alternatively, source
100+# examples/example.bashrc instead, as it will automatically find and source
101+# this file.
102+#
103+# If you're using ZSH instead of BASH, add the following to your ~/.zshrc file
104+# and source it.
105+#
106+#   autoload bashcompinit
107+#   bashcompinit
108+#   source /path/to/your/drush.complete.sh
109+
110+# Ensure drush is available.
111+which drush > /dev/null || alias drush &> /dev/null || return
112+
113+__drush_ps1() {
114+  f="${TMPDIR:-/tmp/}/drush-env-${USER}/drush-drupal-site-$$"
115+  if [ -f $f ]
116+  then
117+    __DRUPAL_SITE=$(cat "$f")
118+  else
119+    __DRUPAL_SITE="$DRUPAL_SITE"
120+  fi
121+
122+  # Set DRUSH_PS1_SHOWCOLORHINTS to a non-empty value and define a
123+  # __drush_ps1_colorize_alias() function for color hints in your Drush PS1
124+  # prompt. See example.prompt.sh for an example implementation.
125+  if [ -n "${__DRUPAL_SITE-}" ] && [ -n "${DRUSH_PS1_SHOWCOLORHINTS-}" ]; then
126+    __drush_ps1_colorize_alias
127+  fi
128+
129+  [[ -n "$__DRUPAL_SITE" ]] && printf "${1:- (%s)}" "$__DRUPAL_SITE"
130+}
131+
132+# Completion function, uses the "drush complete" command to retrieve
133+# completions for a specific command line COMP_WORDS.
134+_drush_completion() {
135+  # Set IFS to newline (locally), since we only use newline separators, and
136+  # need to retain spaces (or not) after completions.
137+  local IFS=$'\n'
138+  # The '< /dev/null' is a work around for a bug in php libedit stdin handling.
139+  # Note that libedit in place of libreadline in some distributions. See:
140+  # https://bugs.launchpad.net/ubuntu/+source/php5/+bug/322214
141+  COMPREPLY=( $(drush --early=includes/complete.inc "${COMP_WORDS[@]}" < /dev/null 2> /dev/null) )
142+}
143+
144+# Register our completion function. We include common short aliases for Drush.
145+complete -o bashdefault -o default -o nospace -F _drush_completion d dr drush drush5 drush6 drush7 drush8 drush.php
146diff --git a/plugins/drush/drush.plugin.zsh b/plugins/drush/drush.plugin.zsh
147new file mode 100644
148index 0000000000000000000000000000000000000000..8a20d79f268e59423771c9553ef88365ff073b81
149--- /dev/null
150+++ b/plugins/drush/drush.plugin.zsh
151@@ -0,0 +1,104 @@
152+# Drush support.
153+
154+function dren() {
155+  drush en $@ -y
156+}
157+
158+function dris() {
159+  drush pm-disable $@ -y
160+}
161+
162+function drpu() {
163+  drush pm-uninstall $@ -y
164+}
165+
166+function drf() {
167+  if [[ $1 == "" ]] then
168+    drush core-config
169+  else
170+    drush core-config --choice=$1
171+  fi
172+}
173+
174+function drfi() {
175+  if [[ $1 == "fields" ]]; then
176+    drush field-info fields
177+  elif [[ $1 == "types" ]]; then
178+    drush field-info types
179+  else
180+    drush field-info
181+  fi
182+}
183+
184+function drnew() {
185+
186+  cd ~
187+  echo "Website's name: "
188+  read WEBSITE_NAME
189+
190+  HOST=http://$(hostname -i)/
191+
192+  if [[ $WEBSITE_NAME == "" ]] then
193+    MINUTES=$(date +%M:%S)
194+    WEBSITE_NAME="Drupal-$MINUTES"
195+    echo "Your website will be named: $WEBSITE_NAME"
196+  fi
197+
198+  drush dl drupal --drupal-project-rename=$WEBSITE_NAME
199+
200+  echo "Type your localhost directory: (Leave empty for /var/www/html/)"
201+  read DIRECTORY
202+
203+  if [[ $DIRECTORY == "" ]] then
204+    DIRECTORY="/var/www/html/"
205+  fi
206+
207+  echo "Moving to $DIRECTORY$WEBSITE_NAME"
208+  sudo mv $WEBSITE_NAME $DIRECTORY
209+  cd $DIRECTORY$WEBSITE_NAME
210+
211+  echo "Database's user: "
212+  read DATABASE_USR
213+  echo "Database's password: "
214+  read -s DATABASE_PWD
215+  echo "Database's name for your project: "
216+  read DATABASE
217+
218+  DB_URL="mysql://$DATABASE_USR:$DATABASE_PWD@localhost/$DATABASE"
219+  drush site-install standard --db-url=$DB_URL --site-name=$WEBSITE_NAME
220+
221+  open_command $HOST$WEBSITE_NAME
222+  echo "Done"
223+
224+}
225+
226+# Aliases, sorted alphabetically.
227+alias dr="drush"
228+alias drca="drush cc all" # Deprecated for Drush 8
229+alias drcb="drush cc block" # Deprecated for Drush 8
230+alias drcg="drush cc registry" # Deprecated for Drush 8
231+alias drcj="drush cc css-js"
232+alias drcm="drush cc menu"
233+alias drcml="drush cc module-list"
234+alias drcr="drush core-cron"
235+alias drct="drush cc theme-registry"
236+alias drcv="drush cc views"
237+alias drdmp="drush sql-dump --ordered-dump --result-file=dump.sql"
238+alias drf="drush features"
239+alias drfr="drush features-revert -y"
240+alias drfu="drush features-update -y"
241+alias drfra="drush features-revert-all"
242+alias drif="drush image-flush --all"
243+alias drpm="drush pm-list --type=module"
244+alias drst="drush core-status"
245+alias drup="drush updatedb"
246+alias drups="drush updatedb-status"
247+alias drv="drush version"
248+alias drvd="drush variable-del"
249+alias drvg="drush variable-get"
250+alias drvs="drush variable-set"