summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim O'Brien <timo@t413.com>2015-09-14 15:39:18 -0700
committerTim O'Brien <timo@t413.com>2015-09-14 15:39:18 -0700
commite8639c700ebbf8aa416c0d14c8e3a292f1062dd7 (patch)
tree7705714541cc8781a1be7e1d2343d34e5e8aa9b1
parent797e1f9a64c0d2775723bb28c76745b327f86d56 (diff)
parent9c08641d7c2aae0c82fa5ad91f94c67b70115ba5 (diff)
downloadzsh-e8639c700ebbf8aa416c0d14c8e3a292f1062dd7.tar.gz
zsh-e8639c700ebbf8aa416c0d14c8e3a292f1062dd7.tar.bz2
zsh-e8639c700ebbf8aa416c0d14c8e3a292f1062dd7.zip
Update to current robbyrussell/oh-my-zsh master
-rw-r--r--README.markdown10
-rw-r--r--plugins/autojump/autojump.plugin.zsh4
-rw-r--r--plugins/docker/_docker2
-rw-r--r--plugins/ember-cli/README.md31
-rw-r--r--plugins/ember-cli/ember-cli.plugin.zsh7
-rw-r--r--plugins/emoji/emoji-char-definitions.zsh9
-rw-r--r--plugins/emoji/emoji.plugin.zsh7
-rw-r--r--plugins/emoji/update_emoji.pl2
-rw-r--r--plugins/frontend-search/README.md112
-rw-r--r--plugins/frontend-search/_frontend-search.sh4
-rw-r--r--plugins/frontend-search/frontend-search.plugin.zsh215
-rw-r--r--plugins/git-flow/git-flow.plugin.zsh2
-rw-r--r--plugins/git-prompt/git-prompt.plugin.zsh89
-rw-r--r--plugins/git-prompt/gitstatus.py146
-rw-r--r--plugins/git/git.plugin.zsh4
-rw-r--r--plugins/heroku/_heroku1
-rw-r--r--plugins/jira/_jira21
-rw-r--r--plugins/jira/jira.plugin.zsh150
-rw-r--r--plugins/man/man.zsh27
-rw-r--r--plugins/osx/osx.plugin.zsh2
-rw-r--r--plugins/rand-quote/rand-quote.plugin.zsh2
-rw-r--r--plugins/rbenv/rbenv.plugin.zsh9
-rw-r--r--plugins/rvm/rvm.plugin.zsh10
-rw-r--r--plugins/spring/README.md25
-rw-r--r--plugins/spring/_spring29
-rw-r--r--plugins/symfony2/symfony2.plugin.zsh2
-rw-r--r--plugins/systemadmin/systemadmin.plugin.zsh8
-rw-r--r--plugins/thefuck/README.md9
-rw-r--r--plugins/thefuck/thefuck.plugin.zsh17
-rw-r--r--plugins/ubuntu/ubuntu.plugin.zsh7
-rw-r--r--plugins/vundle/vundle.plugin.zsh10
-rwxr-xr-xtools/install.sh17
-rw-r--r--tools/upgrade.sh2
33 files changed, 570 insertions, 422 deletions
diff --git a/README.markdown b/README.markdown
index d4d3fdbaf..a29df81ab 100644
--- a/README.markdown
+++ b/README.markdown
@@ -65,7 +65,7 @@ Once you find a theme that you want to use, you will need to edit the `~/.zshrc`
ZSH_THEME="robbyrussell"
```
-To use a different theme, simple change the value to match the name of your desired theme. For example:
+To use a different theme, simply change the value to match the name of your desired theme. For example:
```shell
ZSH_THEME="agnoster" # (this is one of the fancy ones)
@@ -77,6 +77,14 @@ Open up a new terminal window and your prompt should look something like...
In case you did not find a suitable theme for your needs, please have a look at the wiki for [more of them](https://github.com/robbyrussell/oh-my-zsh/wiki/External-themes).
+If you're feeling feisty, you can let the computer select one randomly for you each time you open a new terminal window.
+
+
+```shell
+ZSH_THEME="random" # (...please let it be pie... please be some pie..)
+```
+
+
## Advanced Topics
If you're the type that likes to get their hands dirty, these sections might resonate.
diff --git a/plugins/autojump/autojump.plugin.zsh b/plugins/autojump/autojump.plugin.zsh
index 4cf036401..c05c699e1 100644
--- a/plugins/autojump/autojump.plugin.zsh
+++ b/plugins/autojump/autojump.plugin.zsh
@@ -15,7 +15,7 @@ if [ $commands[autojump] ]; then # check if autojump is installed
. /usr/local/share/autojump/autojump.zsh
elif [ -f /opt/local/etc/profile.d/autojump.zsh ]; then # mac os x with ports
. /opt/local/etc/profile.d/autojump.zsh
- elif [ $commands[brew] -a -f `brew --prefix`/etc/autojump.zsh ]; then # mac os x with brew
- . `brew --prefix`/etc/autojump.zsh
+ elif [ $commands[brew] -a -f `brew --prefix`/etc/autojump.sh ]; then # mac os x with brew
+ . `brew --prefix`/etc/autojump.sh
fi
fi
diff --git a/plugins/docker/_docker b/plugins/docker/_docker
index 25f55beca..a82a31ad3 100644
--- a/plugins/docker/_docker
+++ b/plugins/docker/_docker
@@ -27,7 +27,7 @@ __docker_all_containers() {
# output a selectable list of all docker images
__docker_images() {
declare -a img_cmd
- img_cmd=($(docker images | awk 'NR>1{print $1}'))
+ img_cmd=($(docker images | awk 'NR>1{print $1}'| sed 's/:/\\:/g'))
_describe 'images' img_cmd
}
diff --git a/plugins/ember-cli/README.md b/plugins/ember-cli/README.md
index d1dedf884..482c347d2 100644
--- a/plugins/ember-cli/README.md
+++ b/plugins/ember-cli/README.md
@@ -1,22 +1,19 @@
-# Ember-cli
+# Ember CLI
-**Maintainer:** [BilalBudhani](http://www.github.com/BilalBudhani)
+**Maintainers:** [BilalBudhani](http://www.github.com/BilalBudhani), [eubenesa](http://www.github.com/eubenesa)
-Ember-cli (http://www.ember-cli.com/)
+Ember CLI (http://www.ember-cli.com/)
### List of Aliases
-alias es='ember serve'
-alias ea='ember addon'
-alias eb='ember build'
-alias ed='ember destroy'
-alias eg='ember generate'
-alias eh='ember help'
-alias ein='ember init'
-alias eia='ember install:addon'
-alias eib='ember install:bower'
-alias ein='ember install:npm'
-alias ei='ember install'
-alias et='ember test'
-alias eu='ember update'
-alias ev='ember version'
+ alias es='ember serve'
+ alias ea='ember addon'
+ alias eb='ember build'
+ alias ed='ember destroy'
+ alias eg='ember generate'
+ alias eh='ember help'
+ alias ein='ember init'
+ alias ei='ember install'
+ alias et='ember test'
+ alias eu='ember update'
+ alias ev='ember version'
diff --git a/plugins/ember-cli/ember-cli.plugin.zsh b/plugins/ember-cli/ember-cli.plugin.zsh
index 044a2c043..a0f346829 100644
--- a/plugins/ember-cli/ember-cli.plugin.zsh
+++ b/plugins/ember-cli/ember-cli.plugin.zsh
@@ -1,5 +1,5 @@
-# Ember ClI
-# visit http://www.ember-cli.com/ to view user guid
+# Ember CLI
+# Visit http://www.ember-cli.com/ to view user guide
alias es='ember serve'
alias ea='ember addon'
@@ -8,9 +8,6 @@ alias ed='ember destroy'
alias eg='ember generate'
alias eh='ember help'
alias ein='ember init'
-alias eia='ember install:addon'
-alias eib='ember install:bower'
-alias ein='ember install:npm'
alias ei='ember install'
alias et='ember test'
alias eu='ember update'
diff --git a/plugins/emoji/emoji-char-definitions.zsh b/plugins/emoji/emoji-char-definitions.zsh
index 7d110603c..04693da05 100644
--- a/plugins/emoji/emoji-char-definitions.zsh
+++ b/plugins/emoji/emoji-char-definitions.zsh
@@ -7,8 +7,12 @@
# $emoji - which maps character names to Unicode characters
# $emoji_flags - maps country names to Unicode flag characters using region indicators
+# Main emoji
typeset -gAH emoji
+# National flags
typeset -gAH emoji_flags
+# Combining modifiers
+typeset -gAH emoji_mod
emoji[copyright_sign]=$'\U00A9'
emoji[registered_sign]=$'\U00AE'
@@ -448,10 +452,15 @@ emoji[badminton_racquet_and_shuttlecock]=$'\U1F3F8'
emoji[bow_and_arrow]=$'\U1F3F9'
emoji[amphora]=$'\U1F3FA'
emoji[emoji_modifier_fitzpatrick_type_1_2]=$'\U1F3FB'
+emoji_mod[emoji_modifier_fitzpatrick_type_1_2]=$'\U1F3FB'
emoji[emoji_modifier_fitzpatrick_type_3]=$'\U1F3FC'
+emoji_mod[emoji_modifier_fitzpatrick_type_3]=$'\U1F3FC'
emoji[emoji_modifier_fitzpatrick_type_4]=$'\U1F3FD'
+emoji_mod[emoji_modifier_fitzpatrick_type_4]=$'\U1F3FD'
emoji[emoji_modifier_fitzpatrick_type_5]=$'\U1F3FE'
+emoji_mod[emoji_modifier_fitzpatrick_type_5]=$'\U1F3FE'
emoji[emoji_modifier_fitzpatrick_type_6]=$'\U1F3FF'
+emoji_mod[emoji_modifier_fitzpatrick_type_6]=$'\U1F3FF'
emoji[rat]=$'\U1F400'
emoji[mouse]=$'\U1F401'
emoji[ox]=$'\U1F402'
diff --git a/plugins/emoji/emoji.plugin.zsh b/plugins/emoji/emoji.plugin.zsh
index a98d0b714..7876f1c89 100644
--- a/plugins/emoji/emoji.plugin.zsh
+++ b/plugins/emoji/emoji.plugin.zsh
@@ -76,8 +76,6 @@ emoji_skintone[6]=$'\U1F3FF'
# These are stored in a single associative array, $emoji_groups, to avoid cluttering up the global
# namespace, and to allow adding additional group definitions at run time.
# The keys are the group names, and the values are whitespace-separated lists of emoji character names.
-#
-# These extra local arrays are used to allow more convenient formatting of the source code.
emoji_groups[fruits]="
tomato
@@ -255,9 +253,10 @@ function random_emoji() {
if [[ -z "$group" || "$group" == "all" ]]; then
names=(${(k)emoji})
else
- names=(${=emoji_groups[$group_name]})
+ names=(${=emoji_groups[$group]})
fi
- local list_size=$#names
+ local list_size=${#names}
+ [[ $list_size -eq 0 ]] && return 1
local random_index=$(( ( RANDOM % $list_size ) + 1 ))
local name=${names[$random_index]}
echo ${emoji[$name]}
diff --git a/plugins/emoji/update_emoji.pl b/plugins/emoji/update_emoji.pl
index d90c6e316..04f3ce8e7 100644
--- a/plugins/emoji/update_emoji.pl
+++ b/plugins/emoji/update_emoji.pl
@@ -88,7 +88,7 @@ typeset -gAH emoji_mod
}
# Modifiers are included in both the main set and their separate map,
# because they have a standalone representation as a color swatch.
- if ( $modifier_status == "modifier" ) {
+ if ( $modifier_status eq "modifier" ) {
$outfh->print("emoji_mod[$omz_name]=\$'$zsh_code'\n");
}
} else {
diff --git a/plugins/frontend-search/README.md b/plugins/frontend-search/README.md
index 801d450f3..d0bc5589f 100644
--- a/plugins/frontend-search/README.md
+++ b/plugins/frontend-search/README.md
@@ -1,74 +1,60 @@
-## Rationale ##
+## Introduction ##
-> Searches for your Frontend contents more easier
+> Searches for your frontend web development made easier
-## Instalation ##
+## Installation ##
+Open your `~/.zshrc` file and enable the `frontend-search` plugin:
-Open your `.zshrc` file and load `frontend-search` plugin
+```zsh
+
+plugins=( ... frontend-search)
-```bash
-...
-plugins=( <your-plugins-list>... frontend-search)
-...
```
-## Commands ##
-
-All command searches are accept only in format
-
-* `frontend <search-content> <search-term>`
-
-The search content are
-
-* `jquery <api.jquery.com>`
-* `mdn <developer.mozilla.org>`
-* `compass <compass-style.org>`
-* `html5please <html5please.com>`
-* `caniuse <caniuse.com>`
-* `aurajs <aurajs.com>`
-* `dartlang <api.dartlang.org/apidocs/channels/stable/dartdoc-viewer>`
-* `lodash <search>`
-* `qunit <api.qunitjs.com>`
-* `fontello <fontello.com>`
-* `bootsnipp <bootsnipp.com>`
-* `cssflow <cssflow.com>`
-* `codepen <codepen.io>`
-* `unheap <www.unheap.com>`
-* `bem <google.com/search?as_q=<search-term>&as_sitesearch=bem.info>`
-* `smacss <google.com/search?as_q=<search-term>&as_sitesearch=smacss.com>`
-* `angularjs <google.com/search?as_q=<search-term>&as_sitesearch=angularjs.org>`
-* `reactjs <google.com/search?as_q=<search-term>&as_sitesearch=facebook.github.io/react>`
-* `emberjs <emberjs.com>`
-* `stackoverflow <stackoverflow.com>`
-
-
-## Aliases ##
-
-There are a few aliases presented as well:
-
-* `jquery` A shorthand for `frontend jquery`
-* `mdn` A shorthand for `frontend mdn`
-* `compass` A shorthand for `frontend compass`
-* `html5please` A shorthand for `frontend html5please`
-* `caniuse` A shorthand for `frontend caniuse`
-* `aurajs` A shorthand for `frontend aurajs`
-* `dartlang` A shorthand for `frontend dartlang`
-* `lodash` A shorthand for `frontend lodash`
-* `qunit` A shorthand for `frontend qunit`
-* `fontello` A shorthand for `frontend fontello`
-* `bootsnipp` A shorthand for `frontend bootsnipp`
-* `cssflow` A shorthand for `frontend cssflow`
-* `codepen` A shorthand for `frontend codepen`
-* `unheap` A shorthand for `frontend unheap`
-* `bem` A shorthand for `frontend bem`
-* `smacss` A shorthand for `frontend smacss`
-* `angularjs` A shorthand for `frontend angularjs`
-* `reactjs` A shorthand for `frontend reactjs`
-* `emberjs` A shorthand for `frontend emberjs`
-* `stackoverflow` A shorthand for `frontend stackoverflow`
+## Usage ##
+
+You can use the frontend-search plugin in these two forms:
+
+* `frontend <context> <term> [more terms if you want]`
+* `<context> <term> [more terms if you want]`
+
+For example, these two are equivalent:
+
+```zsh
+$ frontend angularjs dependency injection
+$ angularjs dependency injection
+```
+
+Available search contexts are:
+
+| context | URL |
+|---------------|--------------------------------------------------------------------------|
+| angularjs | `https://google.com/search?as_sitesearch=angularjs.org&as_q=` |
+| aurajs | `http://aurajs.com/api/#stq=` |
+| bem | `https://google.com/search?as_sitesearch=bem.info&as_q=` |
+| bootsnipp | `http://bootsnipp.com/search?q=` |
+| caniuse | `http://caniuse.com/#search=` |
+| codepen | `http://codepen.io/search?q=` |
+| compass | `http://compass-style.org/search?q=` |
+| cssflow | `http://www.cssflow.com/search?q=` |
+| dartlang | `https://api.dartlang.org/apidocs/channels/stable/dartdoc-viewer/dart:` |
+| emberjs | `http://emberjs.com/api/#stp=1&stq=` |
+| fontello | `http://fontello.com/#search=` |
+| html5please | `http://html5please.com/#` |
+| jquery | `https://api.jquery.com/?s=` |
+| lodash | `https://devdocs.io/lodash/index#` |
+| mdn | `https://developer.mozilla.org/search?q=` |
+| npmjs | `https://www.npmjs.com/search?q=` |
+| qunit | `https://api.qunitjs.com/?s=` |
+| reactjs | `https://google.com/search?as_sitesearch=facebook.github.io/react&as_q=` |
+| smacss | `https://google.com/search?as_sitesearch=smacss.com&as_q=` |
+| stackoverflow | `http://stackoverflow.com/search?q=` |
+| unheap | `http://www.unheap.com/?s=` |
+
+If you want to have another context, open an Issue and tell us!
## Author
@@ -77,5 +63,3 @@ There are a few aliases presented as well:
+ <https://plus.google.com/+WilsonMendes>
+ <https://twitter.com/willmendesneto>
+ <http://github.com/willmendesneto>
-
-New features comming soon.
diff --git a/plugins/frontend-search/_frontend-search.sh b/plugins/frontend-search/_frontend-search.sh
index 252f21570..b12f829a1 100644
--- a/plugins/frontend-search/_frontend-search.sh
+++ b/plugins/frontend-search/_frontend-search.sh
@@ -37,6 +37,7 @@ function _frontend() {
'reactjs: Search in React website'
'emberjs: Search in Ember website'
'stackoverflow: Search in StackOverflow website'
+ 'npmjs: Search in NPMJS website'
)
_arguments -C \
@@ -110,6 +111,9 @@ function _frontend() {
stackoverflow)
_describe -t points "Warp points" frontend_points && ret=0
;;
+ npmjs)
+ _describe -t points "Warp points" frontend_points && ret=0
+ ;;
esac
;;
esac
diff --git a/plugins/frontend-search/frontend-search.plugin.zsh b/plugins/frontend-search/frontend-search.plugin.zsh
index f7485621b..2fd5416b3 100644
--- a/plugins/frontend-search/frontend-search.plugin.zsh
+++ b/plugins/frontend-search/frontend-search.plugin.zsh
@@ -1,150 +1,91 @@
-# frontend from terminal
+alias angularjs='frontend angularjs'
+alias aurajs='frontend aurajs'
+alias bem='frontend bem'
+alias bootsnipp='frontend bootsnipp'
+alias caniuse='frontend caniuse'
+alias codepen='frontend codepen'
+alias compass='frontend compass'
+alias cssflow='frontend cssflow'
+alias dartlang='frontend dartlang'
+alias emberjs='frontend emberjs'
+alias fontello='frontend fontello'
+alias html5please='frontend html5please'
+alias jquery='frontend jquery'
+alias lodash='frontend lodash'
+alias mdn='frontend mdn'
+alias npmjs='frontend npmjs'
+alias qunit='frontend qunit'
+alias reactjs='frontend reactjs'
+alias smacss='frontend smacss'
+alias stackoverflow='frontend stackoverflow'
+alias unheap='frontend unheap'
function frontend() {
-
- # no keyword provided, simply show how call methods
- if [[ $# -le 1 ]]; then
- echo "Please provide a search-content and a search-term for app.\nEx:\nfrontend <search-content> <search-term>\n"
- return 1
+ emulate -L zsh
+
+ # define search context URLS
+ typeset -A urls
+ urls=(
+ angularjs 'https://google.com/search?as_sitesearch=angularjs.org&as_q='
+ aurajs 'http://aurajs.com/api/#stq='
+ bem 'https://google.com/search?as_sitesearch=bem.info&as_q='
+ bootsnipp 'http://bootsnipp.com/search?q='
+ caniuse 'http://caniuse.com/#search='
+ codepen 'http://codepen.io/search?q='
+ compass 'http://compass-style.org/search?q='
+ cssflow 'http://www.cssflow.com/search?q='
+ dartlang 'https://api.dartlang.org/apidocs/channels/stable/dartdoc-viewer/dart:'
+ emberjs 'http://emberjs.com/api/#stp=1&stq='
+ fontello 'http://fontello.com/#search='
+ html5please 'http://html5please.com/#'
+ jquery 'https://api.jquery.com/?s='
+ lodash 'https://devdocs.io/lodash/index#'
+ mdn 'https://developer.mozilla.org/search?q='
+ npmjs 'https://www.npmjs.com/search?q='
+ qunit 'https://api.qunitjs.com/?s='
+ reactjs 'https://google.com/search?as_sitesearch=facebook.github.io/react&as_q='
+ smacss 'https://google.com/search?as_sitesearch=smacss.com&as_q='
+ stackoverflow 'http://stackoverflow.com/search?q='
+ unheap 'http://www.unheap.com/?s='
+ )
+
+ # show help for command list
+ if [[ $# -lt 2 ]]
+ then
+ print -P "Usage: frontend %Ucontext%u %Uterm%u [...%Umore%u] (or just: %Ucontext%u %Uterm%u [...%Umore%u])"
+ print -P ""
+ print -P "%Uterm%u and what follows is what will be searched for in the %Ucontext%u website,"
+ print -P "and %Ucontext%u is one of the following:"
+ print -P ""
+ print -P " angularjs, aurajs, bem, bootsnipp, caniuse, codepen, compass, cssflow,"
+ print -P " dartlang, emberjs, fontello, html5please, jquery, lodash, mdn, npmjs,"
+ print -P " qunit, reactjs, smacss, stackoverflow, unheap"
+ print -P ""
+ print -P "For example: frontend npmjs mocha (or just: npmjs mocha)."
+ print -P ""
+ return 1
fi
- # check whether the search engine is supported
- if [[ ! $1 =~ '(jquery|mdn|compass|html5please|caniuse|aurajs|dartlang|qunit|fontello|bootsnipp|cssflow|codepen|unheap|bem|smacss|angularjs|reactjs|emberjs|stackoverflow)' ]];
+ # check whether the search context is supported
+ if [[ -z "$urls[$1]" ]]
then
- echo "Search valid search content $1 not supported."
- echo "Valid contents: (formats 'frontend <search-content>' or '<search-content>')"
- echo "* jquery"
- echo "* mdn"
- echo "* compass"
- echo "* html5please"
- echo "* caniuse"
- echo "* aurajs"
- echo "* dartlang"
- echo "* lodash"
- echo "* qunit"
- echo "* fontello"
- echo "* bootsnipp"
- echo "* cssflow"
- echo "* codepen"
- echo "* unheap"
- echo "* bem"
- echo "* smacss"
- echo "* angularjs"
- echo "* reactjs"
- echo "* emberjs"
- echo "* stackoverflow"
+ echo "Search context \"$1\" currently not supported."
+ echo ""
+ echo "Valid contexts are:"
+ echo ""
+ echo " angularjs, aurajs, bem, bootsnipp, caniuse, codepen, compass, cssflow, "
+ echo " dartlang, emberjs, fontello, html5please, jquery, lodash, mdn, npmjs, "
+ echo " qunit, reactjs, smacss, stackoverflow, unheap"
echo ""
-
return 1
fi
- local url="http://"
- local query=""
+ # build search url:
+ # join arguments passed with '+', then append to search context URL
+ # TODO substitute for proper urlencode method
+ url="${urls[$1]}${(j:+:)@[2,-1]}"
- case "$1" in
- "jquery")
- url="${url}api.jquery.com"
- url="${url}/?s=$2" ;;
- "mdn")
- url="${url}developer.mozilla.org"
- url="${url}/search?q=$2" ;;
- "compass")
- url="${url}compass-style.org"
- url="${url}/search?q=$2" ;;
- "html5please")
- url="${url}html5please.com"
- url="${url}/#$2" ;;
- "caniuse")
- url="${url}caniuse.com"
- url="${url}/#search=$2" ;;
- "aurajs")
- url="${url}aurajs.com"
- url="${url}/api/#stq=$2" ;;
- "dartlang")
- url="${url}api.dartlang.org/apidocs/channels/stable/dartdoc-viewer"
- url="${url}/dart-$2" ;;
- "qunit")
- url="${url}api.qunitjs.com"
- url="${url}/?s=$2" ;;
- "fontello")
- url="${url}fontello.com"
- url="${url}/#search=$2" ;;
- "bootsnipp")
- url="${url}bootsnipp.com"
- url="${url}/search?q=$2" ;;
- "cssflow")
- url="${url}cssflow.com"
- url="${url}/search?q=$2" ;;
- "codepen")
- url="${url}codepen.io"
- url="${url}/search?q=$2" ;;
- "unheap")
- url="${url}www.unheap.com"
- url="${url}/?s=$2" ;;
- "bem")
- url="${url}google.com"
- url="${url}/search?as_q=$2&as_sitesearch=bem.info" ;;
- "smacss")
- url="${url}google.com"
- url="${url}/search?as_q=$2&as_sitesearch=smacss.com" ;;
- "angularjs")
- url="${url}google.com"
- url="${url}/search?as_q=$2&as_sitesearch=angularjs.org" ;;
- "reactjs")
- url="${url}google.com"
- url="${url}/search?as_q=$2&as_sitesearch=facebook.github.io/react" ;;
- "emberjs")
- url="${url}emberjs.com"
- url="${url}/api/#stq=$2&stp=1" ;;
- "stackoverflow")
- url="${url}stackoverflow.com"
- url="${url}/search?q=$2" ;;
- *) echo "INVALID PARAM!"
- return ;;
- esac
-
- echo "$url"
+ echo "Opening $url ..."
open_command "$url"
-
}
-
-# javascript
-alias jquery='frontend jquery'
-alias mdn='frontend mdn'
-
-# pre processors frameworks
-alias compassdoc='frontend compass'
-
-# important links
-alias html5please='frontend html5please'
-alias caniuse='frontend caniuse'
-
-# components and libraries
-alias aurajs='frontend aurajs'
-alias dartlang='frontend dartlang'
-alias lodash='frontend lodash'
-
-#tests
-alias qunit='frontend qunit'
-
-#fonts
-alias fontello='frontend fontello'
-
-# snippets
-alias bootsnipp='frontend bootsnipp'
-alias cssflow='frontend cssflow'
-alias codepen='frontend codepen'
-alias unheap='frontend unheap'
-
-# css architecture
-alias bem='frontend bem'
-alias smacss='frontend smacss'
-
-# frameworks
-alias angularjs='frontend angularjs'
-alias reactjs='frontend reactjs'
-alias emberjs='frontend emberjs'
-
-# search websites
-alias stackoverflow='frontend stackoverflow'
diff --git a/plugins/git-flow/git-flow.plugin.zsh b/plugins/git-flow/git-flow.plugin.zsh
index 4357c0895..444440bcb 100644
--- a/plugins/git-flow/git-flow.plugin.zsh
+++ b/plugins/git-flow/git-flow.plugin.zsh
@@ -21,7 +21,7 @@
#
#Alias
-alias gf='git flow'
+alias gfl='git flow'
alias gcd='git checkout develop'
alias gch='git checkout hotfix'
alias gcr='git checkout release'
diff --git a/plugins/git-prompt/git-prompt.plugin.zsh b/plugins/git-prompt/git-prompt.plugin.zsh
index d868a5fe1..5175bf70f 100644
--- a/plugins/git-prompt/git-prompt.plugin.zsh
+++ b/plugins/git-prompt/git-prompt.plugin.zsh
@@ -1,57 +1,92 @@
# ZSH Git Prompt Plugin from:
# http://github.com/olivierverdier/zsh-git-prompt
-#
-export __GIT_PROMPT_DIR=$ZSH/plugins/git-prompt
-# Allow for functions in the prompt.
-setopt PROMPT_SUBST
+__GIT_PROMPT_DIR="${0:A:h}"
-## Enable auto-execution of functions.
-typeset -ga preexec_functions
-typeset -ga precmd_functions
-typeset -ga chpwd_functions
-
-# Append git functions needed for prompt.
-preexec_functions+='preexec_update_git_vars'
-precmd_functions+='precmd_update_git_vars'
-chpwd_functions+='chpwd_update_git_vars'
+## Hook function definitions
+function chpwd_update_git_vars() {
+ update_current_git_vars
+}
-## Function definitions
function preexec_update_git_vars() {
case "$2" in
- git*)
+ git*|hub*|gh*|stg*)
__EXECUTED_GIT_COMMAND=1
;;
esac
}
function precmd_update_git_vars() {
- if [ -n "$__EXECUTED_GIT_COMMAND" ]; then
+ if [ -n "$__EXECUTED_GIT_COMMAND" ] || [ ! -n "$ZSH_THEME_GIT_PROMPT_CACHE" ]; then
update_current_git_vars
unset __EXECUTED_GIT_COMMAND
fi
}
-function chpwd_update_git_vars() {
- update_current_git_vars
-}
+chpwd_functions+=(chpwd_update_git_vars)
+precmd_functions+=(precmd_update_git_vars)
+preexec_functions+=(preexec_update_git_vars)
+
+## Function definitions
function update_current_git_vars() {
unset __CURRENT_GIT_STATUS
local gitstatus="$__GIT_PROMPT_DIR/gitstatus.py"
- _GIT_STATUS=`python ${gitstatus}`
- __CURRENT_GIT_STATUS=("${(f)_GIT_STATUS}")
+ _GIT_STATUS=$(python ${gitstatus} 2>/dev/null)
+ __CURRENT_GIT_STATUS=("${(@s: :)_GIT_STATUS}")
+ GIT_BRANCH=$__CURRENT_GIT_STATUS[1]
+ GIT_AHEAD=$__CURRENT_GIT_STATUS[2]
+ GIT_BEHIND=$__CURRENT_GIT_STATUS[3]
+ GIT_STAGED=$__CURRENT_GIT_STATUS[4]
+ GIT_CONFLICTS=$__CURRENT_GIT_STATUS[5]
+ GIT_CHANGED=$__CURRENT_GIT_STATUS[6]
+ GIT_UNTRACKED=$__CURRENT_GIT_STATUS[7]
}
-function prompt_git_info() {
+git_super_status() {
+ precmd_update_git_vars
if [ -n "$__CURRENT_GIT_STATUS" ]; then
- echo "(%{${fg[red]}%}$__CURRENT_GIT_STATUS[1]%{${fg[default]}%}$__CURRENT_GIT_STATUS[2]%{${fg[magenta]}%}$__CURRENT_GIT_STATUS[3]%{${fg[default]}%})"
+ STATUS="$ZSH_THEME_GIT_PROMPT_PREFIX$ZSH_THEME_GIT_PROMPT_BRANCH$GIT_BRANCH%{${reset_color}%}"
+ if [ "$GIT_BEHIND" -ne "0" ]; then
+ STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_BEHIND$GIT_BEHIND%{${reset_color}%}"
+ fi
+ if [ "$GIT_AHEAD" -ne "0" ]; then
+ STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_AHEAD$GIT_AHEAD%{${reset_color}%}"
+ fi
+ STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_SEPARATOR"
+ if [ "$GIT_STAGED" -ne "0" ]; then
+ STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_STAGED$GIT_STAGED%{${reset_color}%}"
+ fi
+ if [ "$GIT_CONFLICTS" -ne "0" ]; then
+ STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_CONFLICTS$GIT_CONFLICTS%{${reset_color}%}"
+ fi
+ if [ "$GIT_CHANGED" -ne "0" ]; then
+ STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_CHANGED$GIT_CHANGED%{${reset_color}%}"
+ fi
+ if [ "$GIT_UNTRACKED" -ne "0" ]; then
+ STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_UNTRACKED%{${reset_color}%}"
+ fi
+ if [ "$GIT_CHANGED" -eq "0" ] && [ "$GIT_CONFLICTS" -eq "0" ] && [ "$GIT_STAGED" -eq "0" ] && [ "$GIT_UNTRACKED" -eq "0" ]; then
+ STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_CLEAN"
+ fi
+ STATUS="$STATUS%{${reset_color}%}$ZSH_THEME_GIT_PROMPT_SUFFIX"
+ echo "$STATUS"
fi
}
+# Default values for the appearance of the prompt.
+ZSH_THEME_GIT_PROMPT_PREFIX="("
+ZSH_THEME_GIT_PROMPT_SUFFIX=")"
+ZSH_THEME_GIT_PROMPT_SEPARATOR="|"
+ZSH_THEME_GIT_PROMPT_BRANCH="%{$fg_bold[magenta]%}"
+ZSH_THEME_GIT_PROMPT_STAGED="%{$fg[red]%}%{●%G%}"
+ZSH_THEME_GIT_PROMPT_CONFLICTS="%{$fg[red]%}%{✖%G%}"
+ZSH_THEME_GIT_PROMPT_CHANGED="%{$fg[blue]%}%{✚%G%}"
+ZSH_THEME_GIT_PROMPT_BEHIND="%{↓%G%}"
+ZSH_THEME_GIT_PROMPT_AHEAD="%{↑%G%}"
+ZSH_THEME_GIT_PROMPT_UNTRACKED="%{…%G%}"
+ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg_bold[green]%}%{✔%G%}"
+
# Set the prompt.
-#PROMPT='%B%m%~%b$(prompt_git_info) %# '
-# for a right prompt:
-#RPROMPT='%b$(prompt_git_info)'
-RPROMPT='$(prompt_git_info)'
+RPROMPT='$(git_super_status)'
diff --git a/plugins/git-prompt/gitstatus.py b/plugins/git-prompt/gitstatus.py
index 256841432..a8eb8284b 100644
--- a/plugins/git-prompt/gitstatus.py
+++ b/plugins/git-prompt/gitstatus.py
@@ -1,82 +1,84 @@
#!/usr/bin/env python
-# -*- coding: UTF-8 -*-
-from subprocess import Popen, PIPE
-import re
+from __future__ import print_function
-# change those symbols to whatever you prefer
-symbols = {
- 'ahead of': '↑',
- 'behind': '↓',
- 'staged': '♦',
- 'changed': '‣',
- 'untracked': '…',
- 'clean': '⚡',
- 'unmerged': '≠',
- 'sha1': ':'
-}
+import sys
+import re
+import shlex
+from subprocess import Popen, PIPE, check_output
-output, error = Popen(
- ['git', 'status'], stdout=PIPE, stderr=PIPE, universal_newlines=True).communicate()
-if error:
- import sys
- sys.exit(0)
-lines = output.splitlines()
+def get_tagname_or_hash():
+ """return tagname if exists else hash"""
+ cmd = 'git log -1 --format="%h%d"'
+ output = check_output(shlex.split(cmd)).decode('utf-8').strip()
+ hash_, tagname = None, None
+ # get hash
+ m = re.search('\(.*\)$', output)
+ if m:
+ hash_ = output[:m.start()-1]
+ # get tagname
+ m = re.search('tag: .*[,\)]', output)
+ if m:
+ tagname = 'tags/' + output[m.start()+len('tag: '): m.end()-1]
-behead_re = re.compile(
- r"^# Your branch is (ahead of|behind) '(.*)' by (\d+) commit")
-diverge_re = re.compile(r"^# and have (\d+) and (\d+) different")
+ if tagname:
+ return tagname
+ elif hash_:
+ return hash_
+ return None
-status = ''
-staged = re.compile(r'^# Changes to be committed:$', re.MULTILINE)
-changed = re.compile(r'^# Changed but not updated:$', re.MULTILINE)
-untracked = re.compile(r'^# Untracked files:$', re.MULTILINE)
-unmerged = re.compile(r'^# Unmerged paths:$', re.MULTILINE)
+# `git status --porcelain --branch` can collect all information
+# branch, remote_branch, untracked, staged, changed, conflicts, ahead, behind
+po = Popen(['git', 'status', '--porcelain', '--branch'], stdout=PIPE, stderr=PIPE)
+stdout, sterr = po.communicate()
+if po.returncode != 0:
+ sys.exit(0) # Not a git repository
-def execute(*command):
- out, err = Popen(stdout=PIPE, stderr=PIPE, *command).communicate()
- if not err:
- nb = len(out.splitlines())
+# collect git status information
+untracked, staged, changed, conflicts = [], [], [], []
+ahead, behind = 0, 0
+status = [(line[0], line[1], line[2:]) for line in stdout.decode('utf-8').splitlines()]
+for st in status:
+ if st[0] == '#' and st[1] == '#':
+ if re.search('Initial commit on', st[2]):
+ branch = st[2].split(' ')[-1]
+ elif re.search('no branch', st[2]): # detached status
+ branch = get_tagname_or_hash()
+ elif len(st[2].strip().split('...')) == 1:
+ branch = st[2].strip()
+ else:
+ # current and remote branch info
+ branch, rest = st[2].strip().split('...')
+ if len(rest.split(' ')) == 1:
+ # remote_branch = rest.split(' ')[0]
+ pass
+ else:
+ # ahead or behind
+ divergence = ' '.join(rest.split(' ')[1:])
+ divergence = divergence.lstrip('[').rstrip(']')
+ for div in divergence.split(', '):
+ if 'ahead' in div:
+ ahead = int(div[len('ahead '):].strip())
+ elif 'behind' in div:
+ behind = int(div[len('behind '):].strip())
+ elif st[0] == '?' and st[1] == '?':
+ untracked.append(st)
else:
- nb = '?'
- return nb
-
-if staged.search(output):
- nb = execute(
- ['git', 'diff', '--staged', '--name-only', '--diff-filter=ACDMRT'])
- status += '%s%s' % (symbols['staged'], nb)
-if unmerged.search(output):
- nb = execute(['git', 'diff', '--staged', '--name-only', '--diff-filter=U'])
- status += '%s%s' % (symbols['unmerged'], nb)
-if changed.search(output):
- nb = execute(['git', 'diff', '--name-only', '--diff-filter=ACDMRT'])
- status += '%s%s' % (symbols['changed'], nb)
-if untracked.search(output):
- status += symbols['untracked']
-if status == '':
- status = symbols['clean']
-
-remote = ''
-
-bline = lines[0]
-if bline.find('Not currently on any branch') != -1:
- branch = symbols['sha1'] + Popen([
- 'git',
- 'rev-parse',
- '--short',
- 'HEAD'], stdout=PIPE).communicate()[0][:-1]
-else:
- branch = bline.split(' ')[-1]
- bstatusline = lines[1]
- match = behead_re.match(bstatusline)
- if match:
- remote = symbols[match.groups()[0]]
- remote += match.groups()[2]
- elif lines[2:]:
- div_match = diverge_re.match(lines[2])
- if div_match:
- remote = "{behind}{1}{ahead of}{0}".format(
- *div_match.groups(), **symbols)
+ if st[1] == 'M':
+ changed.append(st)
+ if st[0] == 'U':
+ conflicts.append(st)
+ elif st[0] != ' ':
+ staged.append(st)
-print('\n'.join([branch, remote, status]))
+out = ' '.join([
+ branch,
+ str(ahead),
+ str(behind),
+ str(len(staged)),
+ str(len(conflicts)),
+ str(len(changed)),
+ str(len(untracked)),
+])
+print(out, end='')
diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh
index cc6eb1031..bbee13ab8 100644
--- a/plugins/git/git.plugin.zsh
+++ b/plugins/git/git.plugin.zsh
@@ -68,10 +68,12 @@ alias gc!='git commit -v --amend'
alias gca='git commit -v -a'
alias gca!='git commit -v -a --amend'
alias gcan!='git commit -v -a -s --no-edit --amend'
+alias gcam='git commit -a -m'
alias gcb='git checkout -b'
alias gcf='git config --list'
alias gcl='git clone --recursive'
-alias gclean='git reset --hard && git clean -dfx'
+alias gclean='git clean -fd'
+alias gpristine='git reset --hard && git clean -dfx'
alias gcm='git checkout master'
alias gcmsg='git commit -m'
alias gco='git checkout'
diff --git a/plugins/heroku/_heroku b/plugins/heroku/_heroku
index bb2f7403f..fd72e530e 100644
--- a/plugins/heroku/_heroku
+++ b/plugins/heroku/_heroku
@@ -143,5 +143,6 @@ _arguments \
$_command_args \
'(--app)--app[the app name]' \
'(--remote)--remote[the remote name]' \
+ '(--help)--help[help about the current command]' \
&& return 0
diff --git a/plugins/jira/_jira b/plugins/jira/_jira
new file mode 100644
index 000000000..b0ea658e2
--- /dev/null
+++ b/plugins/jira/_jira
@@ -0,0 +1,21 @@
+#compdef jira
+#autoload
+
+local -a _1st_arguments
+_1st_arguments=(
+ 'new:create a new issue'
+ 'dashboard:open the dashboard'
+ 'reported:search for issues reported by a user'
+ 'assigned:search for issues assigned to a user'
+)
+
+_arguments -C \
+ ':command:->command' \
+ '*::options:->options'
+
+case $state in
+ (command)
+ _describe -t commands "jira subcommand" _1st_arguments
+ return
+ ;;
+esac
diff --git a/plugins/jira/jira.plugin.zsh b/plugins/jira/jira.plugin.zsh
index 9a8932702..89559767f 100644
--- a/plugins/jira/jira.plugin.zsh
+++ b/plugins/jira/jira.plugin.zsh
@@ -1,90 +1,118 @@
-# To use: add a .jira-url file in the base of your project
-# You can also set JIRA_URL in your .zshrc or put .jira-url in your home directory
-# .jira-url in the current directory takes precedence
+# CLI support for JIRA interaction
#
-# If you use Rapid Board, set:
-#JIRA_RAPID_BOARD="true"
-# in you .zshrc
+# Setup:
+# Add a .jira-url file in the base of your project
+# You can also set $JIRA_URL in your .zshrc or put .jira-url in your home directory
+# A .jira-url in the current directory takes precedence.
+# The same goes with .jira-prefix and $JIRA_PREFIX.
#
-# Setup: cd to/my/project
-# echo "https://name.jira.com" >> .jira-url
-# Usage: jira # opens a new issue
-# jira ABC-123 # Opens an existing issue
-open_jira_issue () {
- if [ -f .jira-url ]; then
+# For example:
+# cd to/my/project
+# echo "https://name.jira.com" >> .jira-url
+#
+# Variables:
+# $JIRA_RAPID_BOARD - set to "true" if you use Rapid Board
+# $JIRA_DEFAULT_ACTION - action to do when `jira` is called witn no args
+# defaults to "new"
+# $JIRA_NAME - Your JIRA username. Used as default for assigned/reported
+# $JIRA_PREFIX - Prefix added to issue ID arguments
+#
+#
+# Usage:
+# jira # Performs the default action
+# jira new # opens a new issue
+# jira reported [username]
+# jira assigned [username]
+# jira dashboard
+# jira ABC-123 # Opens an existing issue
+# jira ABC-123 m # Opens an existing issue for adding a comment
+
+: ${JIRA_DEFAULT_ACTION:=new}
+
+function jira() {
+ local action=${1:=$JIRA_DEFAULT_ACTION}
+
+ local jira_url jira_prefix
+ if [[ -f .jira-url ]]; then
jira_url=$(cat .jira-url)
- elif [ -f ~/.jira-url ]; then
+ elif [[ -f ~/.jira-url ]]; then
jira_url=$(cat ~/.jira-url)
- elif [[ "x$JIRA_URL" != "x" ]]; then
- jira_url=$JIRA_URL
+ elif [[ -n "${JIRA_URL}" ]]; then
+ jira_url=${JIRA_URL}
else
- echo "JIRA url is not specified anywhere."
+ _jira_url_help
return 1
fi
- if [ -f .jira-prefix ]; then
+ if [[ -f .jira-prefix ]]; then
jira_prefix=$(cat .jira-prefix)
- elif [ -f ~/.jira-prefix ]; then
+ elif [[ -f ~/.jira-prefix ]]; then
jira_prefix=$(cat ~/.jira-prefix)
+ elif [[ -n "${JIRA_PREFIX}" ]]; then
+ jira_prefix=${JIRA_PREFIX}
else
jira_prefix=""
fi
- if [ -z "$1" ]; then
+
+ if [[ $action == "new" ]]; then
echo "Opening new issue"
open_command "${jira_url}/secure/CreateIssue!default.jspa"
- elif [[ "$1" = "assigned" || "$1" = "reported" ]]; then
- jira_query $@
- else
- local addcomment=''
+ elif [[ "$action" == "assigned" || "$action" == "reported" ]]; then
+ _jira_query $@
+ elif [[ "$action" == "dashboard" ]]; then
+ echo "Opening dashboard"
+ open_command "${jira_url}/secure/Dashboard.jspa"
+ else
+ # Anything that doesn't match a special action is considered an issue name
+ local issue_arg=$action
+ local issue="${jira_prefix}${issue_arg}"
+ local url_fragment=''
if [[ "$2" == "m" ]]; then
- addcomment="#add-comment"
- echo "Add comment to issue #$1"
+ url_fragment="#add-comment"
+ echo "Add comment to issue #$issue"
else
- echo "Opening issue #$1"
+ echo "Opening issue #$issue"
fi
-
- if [[ "x$JIRA_RAPID_BOARD" = "xtrue" ]]; then
- open_command "$jira_url/issues/$jira_prefix$1$addcomment"
+ if [[ "$JIRA_RAPID_BOARD" == "true" ]]; then
+ open_command "${jira_url}/issues/${issue}${url_fragment}"
else
- open_command "$jira_url/browse/$jira_prefix$1$addcomment"
+ open_command "${jira_url}/browse/${issue}${url_fragment}"
fi
fi
}
-jira_name () {
- if [[ -z "$1" ]]; then
- if [[ "x${JIRA_NAME}" != "x" ]]; then
- jira_name=${JIRA_NAME}
- else
- echo "JIRA_NAME not specified"
- return 1
- fi
+function _jira_url_help() {
+ cat << EOF
+JIRA url is not specified anywhere.
+Valid options, in order of precedence:
+ .jira-url file
+ \$HOME/.jira-url file
+ JIRA_URL environment variable
+EOF
+}
+
+function _jira_query() {
+ local verb="$1"
+ local jira_name lookup preposition query
+ if [[ "${verb}" == "reported" ]]; then
+ lookup=reporter
+ preposition=by
+ elif [[ "${verb}" == "assigned" ]]; then
+ lookup=assignee
+ preposition=to
else
- jira_name=$@
+ echo "not a valid lookup: $verb" >&2
+ return 1
+ fi
+ jira_name=${2:=$JIRA_NAME}
+ if [[ -z $jira_name ]]; then
+ echo "JIRA_NAME not specified" >&2
+ return 1
fi
-}
-jira_query () {
- verb="$1"
- if [[ "${verb}" = "reported" ]]; then
- lookup=reporter
- preposition=by
- elif [[ "${verb}" = "assigned" ]]; then
- lookup=assignee
- preposition=to
- else
- echo "not a valid lookup $verb"
- return 1
- fi
- shift 1
- jira_name $@
- if [[ $? = 1 ]]; then
- return 1
- fi
- echo "Browsing issues ${verb} ${preposition} ${jira_name}"
- open_command "${jira_url}/secure/IssueNavigator.jspa?reset=true&jqlQuery=${lookup}+%3D+%22${jira_name}%22+AND+resolution+%3D+unresolved+ORDER+BY+priority+DESC%2C+created+ASC"
+ echo "Browsing issues ${verb} ${preposition} ${jira_name}"
+ query="${lookup}+%3D+%22${jira_name}%22+AND+resolution+%3D+unresolved+ORDER+BY+priority+DESC%2C+created+ASC"
+ open_command "${jira_url}/secure/IssueNavigator.jspa?reset=true&jqlQuery=${query}"
}
-alias jira='open_jira_issue'
-
diff --git a/plugins/man/man.zsh b/plugins/man/man.zsh
new file mode 100644
index 000000000..3490b0b61
--- /dev/null
+++ b/plugins/man/man.zsh
@@ -0,0 +1,27 @@
+# ------------------------------------------------------------------------------
+# Author
+# ------
+#
+# * Jerry Ling<jerryling315@gmail.com>
+#
+# ------------------------------------------------------------------------------
+# Usgae
+# -----
+#
+# man will be inserted before the command
+#
+# ------------------------------------------------------------------------------
+
+man-command-line() {
+ [[ -z $BUFFER ]] && zle up-history
+ [[ $BUFFER != man\ * ]] && LBUFFER="man $LBUFFER"
+}
+zle -N man-command-line
+# Defined shortcut keys: [Esc]man
+bindkey "\e"man man-command-line
+
+
+# ------------------------------------------------------------------------------
+# Also, you might want to use man-preview included in 'osx' plugin
+# just substitute "man" in the function with "man-preview" after you included OS X in
+# the .zshrc \ No newline at end of file
diff --git a/plugins/osx/osx.plugin.zsh b/plugins/osx/osx.plugin.zsh
index a6e3a83e6..390960fdc 100644
--- a/plugins/osx/osx.plugin.zsh
+++ b/plugins/osx/osx.plugin.zsh
@@ -6,7 +6,7 @@
# ------------------------------------------------------------------------------
function tab() {
- local command="cd \\\"$PWD\\\"; clear; "
+ local command="cd \\\"$PWD\\\"; clear"
(( $# > 0 )) && command="${command}; $*"
the_app=$(
diff --git a/plugins/rand-quote/rand-quote.plugin.zsh b/plugins/rand-quote/rand-quote.plugin.zsh
index c3bf6234e..8f345d9aa 100644
--- a/plugins/rand-quote/rand-quote.plugin.zsh
+++ b/plugins/rand-quote/rand-quote.plugin.zsh
@@ -18,8 +18,6 @@ if [[ -x `which curl` ]]; then
W=$(echo "$Q" | sed -e 's/.*\/quotes\///g' -e 's/<.*//g' -e 's/.*">//g')
if [ "$W" -a "$TXT" ]; then
echo "${WHO_COLOR}${W}${COLON_COLOR}: ${TEXT_COLOR}“${TXT}”${END_COLOR}"
- else
- quote
fi
}
#quote
diff --git a/plugins/rbenv/rbenv.plugin.zsh b/plugins/rbenv/rbenv.plugin.zsh
index 213e1beb0..ef5106f2d 100644
--- a/plugins/rbenv/rbenv.plugin.zsh
+++ b/plugins/rbenv/rbenv.plugin.zsh
@@ -2,14 +2,11 @@ _homebrew-installed() {
type brew &> /dev/null
}
-_rbenv-from-homebrew-installed() {
- brew --prefix rbenv &> /dev/null
-}
-
FOUND_RBENV=0
rbenvdirs=("$HOME/.rbenv" "/usr/local/rbenv" "/opt/rbenv" "/usr/local/opt/rbenv")
-if _homebrew-installed && _rbenv-from-homebrew-installed ; then
- rbenvdirs=($(brew --prefix rbenv) "${rbenvdirs[@]}")
+if _homebrew-installed && rbenv_homebrew_path=$(brew --prefix rbenv 2>/dev/null); then
+ rbenvdirs=($rbenv_homebrew_path "${rbenvdirs[@]}")
+ unset rbenv_homebrew_path
fi
for rbenvdir in "${rbenvdirs[@]}" ; do
diff --git a/plugins/rvm/rvm.plugin.zsh b/plugins/rvm/rvm.plugin.zsh
index 234ac1642..53e809aaf 100644
--- a/plugins/rvm/rvm.plugin.zsh
+++ b/plugins/rvm/rvm.plugin.zsh
@@ -61,11 +61,11 @@ function gems {
local current_ruby=`rvm-prompt i v p`
local current_gemset=`rvm-prompt g`
- gem list $@ | sed \
- -Ee "s/\([0-9, \.]+( .+)?\)/$fg[blue]&$reset_color/g" \
- -Ee "s|$(echo $rvm_path)|$fg[magenta]\$rvm_path$reset_color|g" \
- -Ee "s/$current_ruby@global/$fg[yellow]&$reset_color/g" \
- -Ee "s/$current_ruby$current_gemset$/$fg[green]&$reset_color/g"
+ gem list $@ | sed -E \
+ -e "s/\([0-9, \.]+( .+)?\)/$fg[blue]&$reset_color/g" \
+ -e "s|$(echo $rvm_path)|$fg[magenta]\$rvm_path$reset_color|g" \
+ -e "s/$current_ruby@global/$fg[yellow]&$reset_color/g" \
+ -e "s/$current_ruby$current_gemset$/$fg[green]&$reset_color/g"
}
function _rvm_completion {
diff --git a/plugins/spring/README.md b/plugins/spring/README.md
new file mode 100644
index 000000000..62bfd8013
--- /dev/null
+++ b/plugins/spring/README.md
@@ -0,0 +1,25 @@
+# Spring Boot oh-my-zsh plugin
+oh-my-zsh Spring Boot plugin
+
+## Spring Boot autocomplete plugin
+
+- Adds autocomplete options for all spring boot commands.
+
+## Manual Install
+
+ $ cd ~/.oh-my-zsh/plugins
+ $ git clone git@github.com:linux-china/oh-my-zsh-spring-boot-plugin.git spring
+
+Adjust your .zshrc file and add spring to plugins=(...)
+
+## Tips
+
+* Install Spring Cloud plugin: spring install org.springframework.cloud:spring-cloud-cli:1.0.2.RELEASE
+
+## Reference
+
+* Spring Boot: http://projects.spring.io/spring-boot/
+* Spring Boot CLI: http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#cli
+
+Maintainer : linux_china ([@linux_china](https://twitter.com/linux_china))
+
diff --git a/plugins/spring/_spring b/plugins/spring/_spring
new file mode 100644
index 000000000..93f19517d
--- /dev/null
+++ b/plugins/spring/_spring
@@ -0,0 +1,29 @@
+#compdef spring 'spring'
+#autoload
+
+_spring() {
+
+ local cword
+ let cword=CURRENT-1
+
+ local hints
+ hints=()
+
+ local reply
+ while read -r line; do
+ reply=`echo "$line" | awk '{printf $1 ":"; for (i=2; i<NF; i++) printf $i " "; print $NF}'`
+ hints+=("$reply")
+ done < <(spring hint ${cword} ${words[*]})
+
+ if ((cword == 1)) {
+ _describe -t commands 'commands' hints
+ return 0
+ }
+
+ _describe -t options 'options' hints
+ _files
+
+ return 0
+}
+
+_spring "$@" \ No newline at end of file
diff --git a/plugins/symfony2/symfony2.plugin.zsh b/plugins/symfony2/symfony2.plugin.zsh
index e94280ed0..98a2321db 100644
--- a/plugins/symfony2/symfony2.plugin.zsh
+++ b/plugins/symfony2/symfony2.plugin.zsh
@@ -5,7 +5,7 @@ _symfony_console () {
}
_symfony2_get_command_list () {
- `_symfony_console` --no-ansi | sed "1,/Available commands/d" | awk '/^ ?[a-z]+/ { print $1 }'
+ `_symfony_console` --no-ansi | sed "1,/Available commands/d" | awk '/^ ?[^ ]+ / { print $1 }'
}
_symfony2 () {
diff --git a/plugins/systemadmin/systemadmin.plugin.zsh b/plugins/systemadmin/systemadmin.plugin.zsh
index 4ae70dfa7..8c2633355 100644
--- a/plugins/systemadmin/systemadmin.plugin.zsh
+++ b/plugins/systemadmin/systemadmin.plugin.zsh
@@ -140,12 +140,16 @@ d0() {
# gather external ip address
geteip() {
- curl http://ifconfig.me
+ curl -s -S https://icanhazip.com
}
# determine local IP address
getip() {
- ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'
+ if (( ${+commands[ip]} )); then
+ ip addr | grep "inet " | grep -v '127.0.0.1' | awk '{print $2}'
+ else
+ ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'
+ fi
}
# Clear zombie processes
diff --git a/plugins/thefuck/README.md b/plugins/thefuck/README.md
new file mode 100644
index 000000000..a9b7550d7
--- /dev/null
+++ b/plugins/thefuck/README.md
@@ -0,0 +1,9 @@
+# The Fuck
+
+[The Fuck](https://github.com/nvbn/thefuck) plugin — magnificent app which corrects your previous console command.
+
+## Usage
+Press `ESC` twice to correct previous console command.
+
+## Notes
+`Esc`-`Esc` key binding conflicts with [sudo](https://github.com/robbyrussell/oh-my-zsh/tree/master/plugins/sudo) plugin.
diff --git a/plugins/thefuck/thefuck.plugin.zsh b/plugins/thefuck/thefuck.plugin.zsh
new file mode 100644
index 000000000..765e2b9a5
--- /dev/null
+++ b/plugins/thefuck/thefuck.plugin.zsh
@@ -0,0 +1,17 @@
+if [[ -z $commands[thefuck] ]]; then
+ echo 'thefuck is not installed, you should "pip install thefuck" first'
+ return -1
+fi
+
+# Register alias
+eval "$(thefuck --alias)"
+
+fuck-command-line() {
+ local FUCK="$(THEFUCK_REQUIRE_CONFIRMATION=0 thefuck $(fc -ln -1 | tail -n 1) 2> /dev/null)"
+ [[ -z $FUCK ]] && echo -n -e "\a" && return
+ BUFFER=$FUCK
+ zle end-of-line
+}
+zle -N fuck-command-line
+# Defined shortcut keys: [Esc] [Esc]
+bindkey "\e\e" fuck-command-line
diff --git a/plugins/ubuntu/ubuntu.plugin.zsh b/plugins/ubuntu/ubuntu.plugin.zsh
index 0211d3374..f08853643 100644
--- a/plugins/ubuntu/ubuntu.plugin.zsh
+++ b/plugins/ubuntu/ubuntu.plugin.zsh
@@ -3,6 +3,7 @@
# https://github.com/dbb
# https://github.com/Mappleconfusers
# Nicolas Jonas nextgenthemes.com
+# https://github.com/loctauxphilippe
#
# Debian, Ubuntu and friends related zsh aliases and functions for zsh
@@ -28,6 +29,7 @@ compdef _ppap ppap='sudo ppa-purge'
alias ag='sudo apt-get' # age - but without sudo
alias aga='sudo apt-get autoclean' # aac
+alias agar='sudo apt-get autoremove'
alias agb='sudo apt-get build-dep' # abd
alias agc='sudo apt-get clean' # adc
alias agd='sudo apt-get dselect-upgrade' # ads
@@ -38,9 +40,11 @@ alias agu='sudo apt-get update' # ad
alias agud='sudo apt-get update && sudo apt-get dist-upgrade' #adu
alias agug='sudo apt-get upgrade' # ag
alias aguu='sudo apt-get update && sudo apt-get upgrade' #adg
+alias agar='sudo apt-get autoremove'
compdef _ag ag='sudo apt-get'
compdef _aga aga='sudo apt-get autoclean'
+compdef _agar agar='sudo apt-get autoremove'
compdef _agb agb='sudo apt-get build-dep'
compdef _agc agc='sudo apt-get clean'
compdef _agd agd='sudo apt-get dselect-upgrade'
@@ -51,6 +55,7 @@ compdef _agu agu='sudo apt-get update'
compdef _agud agud='sudo apt-get update && sudo apt-get dist-upgrade'
compdef _agug agug='sudo apt-get upgrade'
compdef _aguu aguu='sudo apt-get update && sudo apt-get upgrade'
+compdef _agar agar='sudo apt-get autoremove'
# Remove ALL kernel images and headers EXCEPT the one in use
alias kclean='sudo aptitude remove -P ?and(~i~nlinux-(ima|hea) \
@@ -65,7 +70,7 @@ alias mydeb='time dpkg-buildpackage -rfakeroot -us -uc'
# apt-add-repository with automatic install/upgrade of the desired package
# Usage: aar ppa:xxxxxx/xxxxxx [packagename]
-# If packagename is not given as 2nd arument the function will ask for it and guess the defaupt by taking
+# If packagename is not given as 2nd argument the function will ask for it and guess the default by taking
# the part after the / from the ppa name wich is sometimes the right name for the package you want to install
aar() {
if [ -n "$2" ]; then
diff --git a/plugins/vundle/vundle.plugin.zsh b/plugins/vundle/vundle.plugin.zsh
index fa1911477..0f071597a 100644
--- a/plugins/vundle/vundle.plugin.zsh
+++ b/plugins/vundle/vundle.plugin.zsh
@@ -1,13 +1,13 @@
function vundle-init () {
- if [ ! -d ~/.vim/bundle/vundle/ ]
+ if [ ! -d ~/.vim/bundle/Vundle.vim/ ]
then
- mkdir -p ~/.vim/bundle/vundle/
+ mkdir -p ~/.vim/bundle/Vundle.vim/
fi
- if [ ! -d ~/.vim/bundle/vundle/.git ] && [ ! -f ~/.vim/bundle/vundle/.git ]
+ if [ ! -d ~/.vim/bundle/Vundle.vim/.git ] && [ ! -f ~/.vim/bundle/Vundle.vim/.git ]
then
- git clone http://github.com/gmarik/vundle.git ~/.vim/bundle/vundle
- echo "\n\tRead about vim configuration for vundle at https://github.com/gmarik/vundle\n"
+ git clone git://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
+ echo "\n\tRead about vim configuration for vundle at https://github.com/VundleVim/Vundle.vim\n"
fi
}
diff --git a/tools/install.sh b/tools/install.sh
index c83a6f23d..1586cdee5 100755
--- a/tools/install.sh
+++ b/tools/install.sh
@@ -1,5 +1,12 @@
set -e
+CHECK_ZSH_INSTALLED=$(grep /zsh$ /etc/shells | wc -l)
+if [ ! $CHECK_ZSH_INSTALLED -ge 1 ]; then
+ echo "\033[0;33m Zsh is not installed!\033[0m Please install zsh first!"
+ exit
+fi
+unset CHECK_ZSH_INSTALLED
+
if [ ! -n "$ZSH" ]; then
ZSH=~/.oh-my-zsh
fi
@@ -23,14 +30,16 @@ fi
echo "\033[0;34mUsing the Oh My Zsh template file and adding it to ~/.zshrc\033[0m"
cp $ZSH/templates/zshrc.zsh-template ~/.zshrc
-sed -i -e "/^export ZSH=/ c\\
+sed "/^export ZSH=/ c\\
export ZSH=$ZSH
-" ~/.zshrc
+" ~/.zshrc > ~/.zshrc-omztemp
+mv -f ~/.zshrc-omztemp ~/.zshrc
echo "\033[0;34mCopying your current PATH and adding it to the end of ~/.zshrc for you.\033[0m"
-sed -i -e "/export PATH=/ c\\
+sed "/export PATH=/ c\\
export PATH=\"$PATH\"
-" ~/.zshrc
+" ~/.zshrc > ~/.zshrc-omztemp
+mv -f ~/.zshrc-omztemp ~/.zshrc
TEST_CURRENT_SHELL=$(expr "$SHELL" : '.*/\(.*\)')
if [ "$TEST_CURRENT_SHELL" != "zsh" ]; then
diff --git a/tools/upgrade.sh b/tools/upgrade.sh
index 5f0a81f1d..e06e4f331 100644
--- a/tools/upgrade.sh
+++ b/tools/upgrade.sh
@@ -9,7 +9,7 @@ then
printf '\033[0;32m%s\033[0m\n' '\____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/ '
printf '\033[0;32m%s\033[0m\n' ' /____/ '
printf '\033[0;34m%s\033[0m\n' 'Hooray! Oh My Zsh has been updated and/or is at the current version.'
- printf '\033[0;34m%s\033[1m%s\033[0m\n' 'To keep up on the latest news and updates, follow us on twitter: ' 'http://twitter.com/ohmyzsh'
+ printf '\033[0;34m%s\033[1m%s\033[0m\n' 'To keep up on the latest news and updates, follow us on twitter: ' 'https://twitter.com/ohmyzsh'
printf '\033[0;34m%s\033[1m%s\033[0m\n' 'Get your Oh My Zsh swag at: ' 'http://shop.planetargon.com/'
else
printf '\033[0;31m%s\033[0m\n' 'There was an error updating. Try again later?'