Browse Source

Merge remote-tracking branch 'upstream/master'

Atem18 11 years ago
parent
commit
06bd72f842

+ 4 - 0
lib/theme-and-appearance.zsh

@@ -11,6 +11,10 @@ then
     # On NetBSD, test if "gls" (GNU ls) is installed (this one supports colors); 
     # otherwise, leave ls as is, because NetBSD's ls doesn't support -G
     gls --color -d . &>/dev/null 2>&1 && alias ls='gls --color=tty'
+  elif [[ "$(uname -s)" == "OpenBSD" ]]; then
+    # On OpenBSD, test if "colorls" is installed (this one supports colors);
+    # otherwise, leave ls as is, because OpenBSD's ls doesn't support -G
+    colorls -G -d . &>/dev/null 2>&1 && alias ls='colorls -G'
   else
     ls --color -d . &>/dev/null 2>&1 && alias ls='ls --color=tty' || alias ls='ls -G'
   fi

+ 5 - 10
oh-my-zsh.sh

@@ -1,6 +1,5 @@
 # Check for updates on initial load...
-if [ "$DISABLE_AUTO_UPDATE" != "true" ]
-then
+if [ "$DISABLE_AUTO_UPDATE" != "true" ]; then
   /usr/bin/env ZSH=$ZSH DISABLE_UPDATE_PROMPT=$DISABLE_UPDATE_PROMPT zsh $ZSH/tools/check_for_upgrade.sh
 fi
 
@@ -69,8 +68,7 @@ done
 unset config_file
 
 # Load the theme
-if [ "$ZSH_THEME" = "random" ]
-then
+if [ "$ZSH_THEME" = "random" ]; then
   themes=($ZSH/themes/*zsh-theme)
   N=${#themes[@]}
   ((N=(RANDOM%N)+1))
@@ -78,13 +76,10 @@ then
   source "$RANDOM_THEME"
   echo "[oh-my-zsh] Random theme '$RANDOM_THEME' loaded..."
 else
-  if [ ! "$ZSH_THEME" = ""  ]
-  then
-    if [ -f "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme" ]
-    then
+  if [ ! "$ZSH_THEME" = ""  ]; then
+    if [ -f "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme" ]; then
       source "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme"
-    elif [ -f "$ZSH_CUSTOM/themes/$ZSH_THEME.zsh-theme" ]
-    then
+    elif [ -f "$ZSH_CUSTOM/themes/$ZSH_THEME.zsh-theme" ]; then
       source "$ZSH_CUSTOM/themes/$ZSH_THEME.zsh-theme"
     else
       source "$ZSH/themes/$ZSH_THEME.zsh-theme"

+ 2 - 0
plugins/autojump/autojump.plugin.zsh

@@ -5,6 +5,8 @@ if [ $commands[autojump] ]; then # check if autojump is installed
     . /etc/profile.d/autojump.zsh
   elif [ -f /etc/profile.d/autojump.sh ]; then # gentoo installation
     . /etc/profile.d/autojump.sh
+  elif [ -f /usr/local/share/autojump/autojump.zsh ]; then # freebsd installation
+    . /usr/local/share/autojump/autojump.zsh
   elif [ -f $HOME/.autojump/etc/profile.d/autojump.zsh ]; then # manual user-local installation
     . $HOME/.autojump/etc/profile.d/autojump.zsh
   elif [ -f /opt/local/etc/profile.d/autojump.zsh ]; then # mac os x with ports

+ 99 - 0
plugins/chruby/chruby.plugin.zsh

@@ -0,0 +1,99 @@
+#
+# INSTRUCTIONS
+#
+#  With either a manual or brew installed chruby things should just work.
+#
+#  If you'd prefer to specify an explicit path to load chruby from
+#  you can set variables like so:
+#
+#    zstyle :omz:plugins:chruby path /local/path/to/chruby.sh
+#    zstyle :omz:plugins:chruby auto /local/path/to/auto.sh
+# 
+# TODO
+#  - autodetermine correct source path on non OS X systems
+#  - completion if ruby-install exists
+
+# rvm and rbenv plugins also provide this alias
+alias rubies='chruby'
+
+local _chruby_path
+local _chruby_auto
+
+_homebrew-installed() {
+    whence brew &> /dev/null
+}
+
+_chruby-from-homebrew-installed() {
+    brew --prefix chruby &> /dev/null
+}
+
+_ruby-build_installed() {
+    whence ruby-build &> /dev/null
+}
+
+_ruby-install-installed() {
+    whence ruby-install &> /dev/null
+}
+
+# Simple definition completer for ruby-build
+if _ruby-build_installed; then
+    _ruby-build() { compadd $(ruby-build --definitions) }
+    compdef _ruby-build ruby-build
+fi
+
+_source_from_omz_settings() {
+    zstyle -s :omz:plugins:chruby path _chruby_path
+    zstyle -s :omz:plugins:chruby auto _chruby_auto
+
+    if _chruby_path && [[ -r _chruby_path ]]; then
+        source ${_chruby_path}
+    fi
+
+    if _chruby_auto && [[ -r _chruby_auto ]]; then
+        source ${_chruby_auto}
+    fi
+}
+
+_chruby_dirs() {
+    chrubydirs=($HOME/.rubies/ $PREFIX/opt/rubies)
+    for dir in chrubydirs; do
+        if [[ -d $dir ]]; then
+            RUBIES+=$dir
+        fi
+    done
+}
+
+if _homebrew-installed && _chruby-from-homebrew-installed ; then
+    source $(brew --prefix chruby)/share/chruby/chruby.sh
+    source $(brew --prefix chruby)/share/chruby/auto.sh
+    _chruby_dirs
+elif [[ -r "/usr/local/share/chruby/chruby.sh" ]] ; then
+    source /usr/local/share/chruby/chruby.sh
+    source /usr/local/share/chruby/auto.sh
+    _chruby_dirs
+else
+    _source_from_omz_settings
+    _chruby_dirs
+fi
+
+function ensure_chruby() {
+    $(whence chruby)
+}
+
+function current_ruby() {
+    local _ruby
+    _ruby="$(chruby |grep \* |tr -d '* ')"
+    if [[ $(chruby |grep -c \*) -eq 1 ]]; then
+        echo ${_ruby}
+    else
+        echo "system"
+    fi
+}
+
+function chruby_prompt_info() {
+    echo "$(current_ruby)"
+}
+
+# complete on installed rubies
+_chruby() { compadd $(chruby | tr -d '* ') }
+compdef _chruby chruby

+ 4 - 2
plugins/heroku/_heroku

@@ -23,8 +23,10 @@ _1st_arguments=(
   "auth\:login":"log in with your heroku credentials"
   "auth\:logout":"clear local authentication credentials"
   "config":"display the config vars for an app"
-  "config\:add":"add one or more config vars"
-  "config\:remove":"remove a config var"
+  "config\:pull":"pull heroku config vars down to the local environment"
+  "config\:push":"push local config vars to heroku"
+  "config\:set":"set one or more config vars"
+  "config\:unset":"unset one or more config vars"
   "db\:push":"push local data up to your app"
   "db\:pull":"pull heroku data down into your local database"
   "domains":"list custom domains for an app"

+ 1 - 0
plugins/mercurial/mercurial.plugin.zsh

@@ -13,6 +13,7 @@ alias hglr='hg pull --rebase'
 alias hgo='hg outgoing'
 alias hgp='hg push'
 alias hgs='hg status'
+alias hgsl='log --limit 20 --template "{node|short} | {date|isodatesec} | {author|user}: {desc|strip|firstline}\n" '
 # this is the 'git commit --amend' equivalent
 alias hgca='hg qimport -r tip ; hg qrefresh -e ; hg qfinish tip'
 

+ 7 - 5
plugins/mvn/mvn.plugin.zsh

@@ -24,16 +24,18 @@ export RESET_FORMATTING=`tput sgr0`
 # Wrapper function for Maven's mvn command.
 mvn-color()
 {
-  # Filter mvn output using sed
-  mvn $@ | sed -e "s/\(\[INFO\]\ \-.*\)/${TEXT_BLUE}${BOLD}\1/g" \
-               -e "s/\(\[INFO\]\ \[.*\)/${RESET_FORMATTING}${BOLD}\1${RESET_FORMATTING}/g" \
+  (
+  # Filter mvn output using sed. Before filtering set the locale to C, so invalid characters won't break some sed implementations
+  unset LANG
+  LC_CTYPE=C mvn $@ | sed -e "s/\(\[INFO\]\)\(.*\)/${TEXT_BLUE}${BOLD}\1${RESET_FORMATTING}\2/g" \
                -e "s/\(\[INFO\]\ BUILD SUCCESSFUL\)/${BOLD}${TEXT_GREEN}\1${RESET_FORMATTING}/g" \
-               -e "s/\(\[WARNING\].*\)/${BOLD}${TEXT_YELLOW}\1${RESET_FORMATTING}/g" \
-               -e "s/\(\[ERROR\].*\)/${BOLD}${TEXT_RED}\1${RESET_FORMATTING}/g" \
+               -e "s/\(\[WARNING\]\)\(.*\)/${BOLD}${TEXT_YELLOW}\1${RESET_FORMATTING}\2/g" \
+               -e "s/\(\[ERROR\]\)\(.*\)/${BOLD}${TEXT_RED}\1${RESET_FORMATTING}\2/g" \
                -e "s/Tests run: \([^,]*\), Failures: \([^,]*\), Errors: \([^,]*\), Skipped: \([^,]*\)/${BOLD}${TEXT_GREEN}Tests run: \1${RESET_FORMATTING}, Failures: ${BOLD}${TEXT_RED}\2${RESET_FORMATTING}, Errors: ${BOLD}${TEXT_RED}\3${RESET_FORMATTING}, Skipped: ${BOLD}${TEXT_YELLOW}\4${RESET_FORMATTING}/g"
  
   # Make sure formatting is reset
   echo -ne ${RESET_FORMATTING}
+  )
 }
  
 # Override the mvn command with the colorized one.

+ 1 - 1
plugins/pass/_pass

@@ -101,7 +101,7 @@ _pass_cmd_show () {
 _pass_complete_entries_helper () {
 	local IFS=$'\n'
 	local prefix="${PASSWORD_STORE_DIR:-$HOME/.password-store}"
-	_values -C 'passwords' $(find "$prefix" \( -name .git -o -name .gpg-id \) -prune -o $@ -print | sed -e "s#${prefix}.##" -e 's#\.gpg##' | sort)
+	_values -C 'passwords' $(find -L "$prefix" \( -name .git -o -name .gpg-id \) -prune -o $@ -print | sed -e "s#${prefix}.##" -e 's#\.gpg##' | sort)
 }
 
 _pass_complete_entries_with_subdirs () {

+ 2 - 2
plugins/pip/_pip

@@ -6,8 +6,8 @@
 _pip_all() {
   # we cache the list of packages (originally from the macports plugin)
   if (( ! $+piplist )); then
-      echo -n " (caching package index...)"
-      piplist=($(pip search * | cut -d ' ' -f 1 | tr '[A-Z]' '[a-z]'))
+      zsh-pip-cache-packages
+      piplist=($(cat $ZSH_PIP_CACHE_FILE))
   fi
 }
 

+ 78 - 0
plugins/pip/pip.plugin.zsh

@@ -0,0 +1,78 @@
+# Usage:
+# Just add pip to your installed plugins.
+
+# If you would like to change the cheeseshops used for autocomplete set
+# ZSH_PIP_INDEXES in your zshrc. If one of your indexes are bogus you won't get
+# any kind of error message, pip will just not autocomplete from them. Double
+# check!
+#
+# If you would like to clear your cache, go ahead and do a
+# "zsh-pip-clear-cache".
+
+ZSH_PIP_CACHE_FILE=~/.pip/zsh-cache
+ZSH_PIP_INDEXES=(https://pypi.python.org/simple/)
+
+zsh-pip-clear-cache() {
+  rm $ZSH_PIP_CACHE_FILE
+  unset piplist
+}
+
+zsh-pip-clean-packages() {
+    sed -n '/<a href/ s/.*>\([^<]\{1,\}\).*/\1/p'
+}
+
+zsh-pip-cache-packages() {
+  if [[ ! -d ${ZSH_PIP_CACHE_FILE:h} ]]; then
+      mkdir -p ${ZSH_PIP_CACHE_FILE:h}
+  fi
+
+  if [[ ! -f $ZSH_PIP_CACHE_FILE ]]; then
+      echo -n "(...caching package index...)"
+      tmp_cache=/tmp/zsh_tmp_cache
+      for index in $ZSH_PIP_INDEXES ; do
+          # well... I've already got two problems
+          curl $index 2>/dev/null | \
+              zsh-pip-clean-packages \
+               >> $tmp_cache
+      done
+      sort $tmp_cache | uniq | tr '\n' ' ' > $ZSH_PIP_CACHE_FILE
+      rm $tmp_cache
+  fi
+}
+
+# A test function that validates the regex against known forms of the simple
+# index. If you modify the regex to make it work for you, you should add a test
+# case in here and make sure that your changes don't break things for someone
+# else.
+zsh-pip-test-clean-packages() {
+    local expected
+    local actual
+    expected="0x10c-asm
+1009558_nester"
+
+    actual=$(echo -n "<html><head><title>Simple Index</title><meta name=\"api-version\" value=\"2\" /></head><body>
+<a href='0x10c-asm'>0x10c-asm</a><br/>
+<a href='1009558_nester'>1009558_nester</a><br/>
+</body></html>" | zsh-pip-clean-packages)
+
+    if [[ $actual != $expected ]] ; then
+        echo -e "python's simple index is broken:\n$actual\n  !=\n$expected"
+    else
+        echo "python's simple index is fine"
+    fi
+
+    actual=$(echo -n '<html>
+  <head>
+    <title>Simple Package Index</title>
+  </head>
+  <body>
+    <a href="0x10c-asm">0x10c-asm</a><br/>
+    <a href="1009558_nester">1009558_nester</a><br/>
+</body></html>' | zsh-pip-clean-packages)
+
+    if [[ $actual != $expected ]] ; then
+        echo -e "the djangopypi2 index is broken:\n$actual\n  !=\n$expected"
+    else
+        echo "the djangopypi2 index is fine"
+    fi
+}

+ 12 - 4
plugins/pod/_pod

@@ -3,18 +3,19 @@
 
 # -----------------------------------------------------------------------------
 #          FILE:  _pod
-#   DESCRIPTION:  Cocoapods autocomplete plugin for Oh-My-Zsh
+#   DESCRIPTION:  Cocoapods (0.27.1) autocomplete plugin for Oh-My-Zsh
 #                 http://cocoapods.org
 #        AUTHOR:  Alexandre Joly (alexandre.joly@mekanics.ch)
 #        GITHUB:  https://github.com/mekanics
 #       TWITTER:  @jolyAlexandre
-#       VERSION:  0.0.1
+#       VERSION:  0.0.3
 #       LICENSE:  MIT
 # -----------------------------------------------------------------------------
 
 local -a _1st_arguments
 _1st_arguments=(
-    'help:Show help for the given command.'
+    'help:Show help for the given command'
+    'init:Generate a Podfile for the current directory'
     'install:Install project dependencies'
     'ipc:Inter-process communication'
     'list:List pods'
@@ -32,6 +33,7 @@ local -a _repo_arguments
 _repo_arguments=(
     'add:Add a spec repo'
     'lint:Validates all specs in a repo'
+    'remove:Remove a spec repo.'
     'update:Update a spec repo'
 )
 
@@ -158,7 +160,7 @@ __first_command_list ()
 }
 
 __repo_list() {
-    _wanted application expl 'repo' compadd $(command ls -1 ~/.cocoapods 2>/dev/null | sed -e 's/ /\\ /g')
+    _wanted application expl 'repo' compadd $(command ls -1 ~/.cocoapods/repos 2>/dev/null | sed -e 's/ /\\ /g')
 }
 
 __pod-repo() {
@@ -193,6 +195,12 @@ __pod-repo() {
                 (add)
                     _arguments \
                         $_inherited_options
+
+                (remove)
+                    _arguments \
+                        $_inherited_options \
+                        ':feature:__repo_list'
+                ;;
             esac
         ;;
     esac

+ 31 - 0
plugins/pyenv/pyenv.plugin.zsh

@@ -0,0 +1,31 @@
+_homebrew-installed() {
+    type brew &> /dev/null
+}
+
+_pyenv-from-homebrew-installed() {
+    brew --prefix pyenv &> /dev/null
+}
+
+FOUND_PYENV=0
+pyenvdirs=("$HOME/.pyenv" "/usr/local/pyenv" "/opt/pyenv")
+if _homebrew-installed && _pyenv-from-homebrew-installed ; then
+    pyenvdirs=($(brew --prefix pyenv) "${pyenvdirs[@]}")
+fi
+
+for pyenvdir in "${pyenvdirs[@]}" ; do
+    if [ -d $pyenvdir/bin -a $FOUND_PYENV -eq 0 ] ; then
+        FOUND_PYENV=1
+        export PYENV_ROOT=$pyenvdir
+        export PATH=${pyenvdir}/bin:$PATH
+        eval "$(pyenv init --no-rehash - zsh)"
+
+        function pyenv_prompt_info() {
+            echo "$(pyenv version-name)"
+        }
+    fi
+done
+unset pyenvdir
+
+if [ $FOUND_PYENV -eq 0 ] ; then
+    function pyenv_prompt_info() { echo "system: $(python -V 2>&1 | cut -f 2 -d ' ')" }
+fi

+ 12 - 5
plugins/rails3/_rails3

@@ -1,10 +1,6 @@
 #compdef rails
 #autoload
 
-# rails 3 zsh completion, based on homebrew completion
-# Extracted from https://github.com/robbyrussell/oh-my-zsh/blob/30620d463850c17f86e7a56fbf6a8b5e793a4e07/plugins/rails3/_rails3
-# Published by Christopher Chow
-
 local -a _1st_arguments
 _1st_arguments=(
     'generate:Generate new code (short-cut alias: "g")'
@@ -14,14 +10,20 @@ _1st_arguments=(
     'new:Create a new Rails application. "rails new my_app" creates a new application called MyApp in "./my_app"'
     'application:Generate the Rails application code'
     'destroy:Undo code generated with "generate"'
+
     'benchmarker:See how fast a piece of code runs'
     'profiler:Get profile information from a piece of code'
     'plugin:Install a plugin'
+
+    'plugin new:Generates skeleton for developing a Rails plugin'
+    'runner:Run a piece of code in the application environment (short-cut alias: "r")'
 )
 
 _rails_generate_arguments() {
     generate_arguments=(
+        assets
         controller
+        decorator
         generator
         helper
         integration_test
@@ -36,9 +38,11 @@ _rails_generate_arguments() {
         scaffold_controller
         session_migration
         stylesheets
+        task
     )
 }
 
+
 _arguments \
     '(--version)--version[show version]' \
     '(--help)--help[show help]' \
@@ -50,7 +54,10 @@ if (( CURRENT == 1 )); then
 fi
 
 case "$words[1]" in
-  generate)
+  g|generate)
+    _rails_generate_arguments
+    _wanted generate_arguments expl 'all generate' compadd -a generate_arguments ;;
+  d|destroy)
     _rails_generate_arguments
     _wanted generate_arguments expl 'all generate' compadd -a generate_arguments ;;
 esac

+ 59 - 9
plugins/rails/rails.plugin.zsh

@@ -1,20 +1,70 @@
+function _rails_command () {
+  if [ -e "script/server" ]; then
+    ruby script/$@
+  elif [ -e "script/rails" ]; then
+    ruby script/rails $@
+  elif [ -e "bin/rails" ]; then
+    bin/rails $@
+  else
+    rails $@
+  fi
+}
+
+function _rake_command () {
+  if [ -e "bin/rake" ]; then
+    bin/rake $@
+  else
+    rake $@
+  fi
+}
+
+alias rails='_rails_command'
+compdef _rails_command=rails
+
+alias rake='_rake_command'
+compdef _rake_command=rake
+
+alias devlog='tail -f log/development.log'
+alias prodlog='tail -f log/production.log'
+alias testlog='tail -f log/test.log'
+
+alias -g RED='RAILS_ENV=development'
+alias -g REP='RAILS_ENV=production'
+alias -g RET='RAILS_ENV=test'
+
+# Rails aliases
+alias rc='rails console'
+alias rd='rails destroy'
+alias rdb='rails dbconsole'
+alias rg='rails generate'
+alias rgm='rails generate migration'
+alias rp='rails plugin'
+alias ru='rails runner'
+alias rs='rails server'
+alias rsd='rails server --debugger'
+
+# Rake aliases
+alias rdm='rake db:migrate'
+alias rdr='rake db:rollback'
+alias rdc='rake db:create'
+alias rds='rake db:seed'
+alias rdd='rake db:drop'
+alias rdtc='rake db:test:clone'
+alias rdtp='rake db:test:prepare'
+
+alias rlc='rake log:clear'
+alias rn='rake notes'
+alias rr='rake routes'
+
+# legacy stuff
 alias ss='thin --stats "/thin/stats" start'
 alias sg='ruby script/generate'
 alias sd='ruby script/destroy'
 alias sp='ruby script/plugin'
 alias sr='ruby script/runner'
 alias ssp='ruby script/spec'
-alias rdbm='rake db:migrate'
-alias rdbtp='rake db:test:prepare'
-alias migrate='rake db:migrate && rake db:test:prepare'
 alias sc='ruby script/console'
 alias sd='ruby script/server --debugger'
-alias devlog='tail -f log/development.log'
-alias testlog='tail -f log/test.log'
-alias prodlog='tail -f log/production.log'
-alias -g RET='RAILS_ENV=test'
-alias -g REP='RAILS_ENV=production'
-alias -g RED='RAILS_ENV=development'
 
 function remote_console() {
   /usr/bin/env ssh $1 "( cd $2 && ruby script/console production )"

+ 4 - 32
plugins/rails3/rails3.plugin.zsh

@@ -1,32 +1,4 @@
-# Rails 3 aliases, backwards-compatible with Rails 2.
-
-function _rails_command () {
-  if [ -e "script/server" ]; then
-    ruby script/$@
-  else
-    if [ -e "bin/rails" ]; then
-      bin/rails $@
-    else
-      rails $@
-    fi
-  fi
-}
-
-alias rc='_rails_command console'
-alias rd='_rails_command destroy'
-alias rdb='_rails_command dbconsole'
-alias rdbm='rake db:migrate db:test:clone'
-alias rg='_rails_command generate'
-alias rgm='_rails_command generate migration'
-alias rp='_rails_command plugin'
-alias ru='_rails_command runner'
-alias rs='_rails_command server'
-alias rsd='_rails_command server --debugger'
-alias devlog='tail -f log/development.log'
-alias testlog='tail -f log/test.log'
-alias prodlog='tail -f log/production.log'
-alias rdm='rake db:migrate'
-alias rdr='rake db:rollback'
-alias -g RET='RAILS_ENV=test'
-alias -g REP='RAILS_ENV=production'
-alias -g RED='RAILS_ENV=development'
+echo "It looks like you have been using the 'rails3' plugin,"
+echo "which has been deprecated in favor of a newly consolidated 'rails' plugin."
+echo "You will want to modify your ~/.zshrc configuration to begin using it."
+echo "Learn more at https://github.com/robbyrussell/oh-my-zsh/pull/2240"

+ 4 - 32
plugins/rails4/rails4.plugin.zsh

@@ -1,32 +1,4 @@
-# Rails 4 aliases
-
-function _rails_command () {
-  if [ -e "script/server" ]; then
-    ruby script/$@
-  elif [ -e "script/rails" ]; then
-    ruby script/rails $@
-  else
-    ruby bin/rails $@  
-  fi
-}
-
-alias rc='_rails_command console'
-alias rd='_rails_command destroy'
-alias rdb='_rails_command dbconsole'
-alias rdbm='rake db:migrate db:test:clone'
-alias rg='_rails_command generate'
-alias rgm='_rails_command generate migration'
-alias rp='_rails_command plugin'
-alias ru='_rails_command runner'
-alias rs='_rails_command server'
-alias rsd='_rails_command server --debugger'
-alias devlog='tail -f log/development.log'
-alias testlog='tail -f log/test.log'
-alias prodlog='tail -f log/production.log'
-alias rdm='rake db:migrate'
-alias rdc='rake db:create'
-alias rdr='rake db:rollback'
-alias rds='rake db:seed'
-alias rlc='rake log:clear'
-alias rn='rake notes'
-alias rr='rake routes'
+echo "It looks like you have been using the 'rails4' plugin,"
+echo "which has been deprecated in favor of a newly consolidated 'rails' plugin."
+echo "You will want to modify your ~/.zshrc configuration to begin using it."
+echo "Learn more at https://github.com/robbyrussell/oh-my-zsh/pull/2240"

+ 20 - 18
plugins/sublime/sublime.plugin.zsh

@@ -2,30 +2,32 @@
 
 local _sublime_darwin_paths > /dev/null 2>&1
 _sublime_darwin_paths=(
-	"/usr/local/bin/subl"
-	"$HOME/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl"
-	"$HOME/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl"
-	"/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl"
-	"/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl"
+    "/usr/local/bin/subl"
+    "$HOME/Applications/Sublime Text 3.app/Contents/SharedSupport/bin/subl"
+    "$HOME/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl"
+    "$HOME/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl"
+    "/Applications/Sublime Text 3.app/Contents/SharedSupport/bin/subl"
+    "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl"
+    "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl"
 )
 
 if [[ $('uname') == 'Linux' ]]; then
-	if [ -f '/usr/bin/sublime_text' ]; then
-		st_run() { nohup /usr/bin/sublime_text $@ > /dev/null & }
-	else
-		st_run() { nohup /usr/bin/sublime-text $@ > /dev/null & }
-	fi
-	alias st=st_run
+    if [ -f '/usr/bin/sublime_text' ]; then
+        st_run() { nohup /usr/bin/sublime_text $@ > /dev/null & }
+    else
+        st_run() { nohup /usr/bin/sublime-text $@ > /dev/null & }
+    fi
+    alias st=st_run
 
 elif  [[ $('uname') == 'Darwin' ]]; then
 
-	for _sublime_path in $_sublime_darwin_paths; do
-		if [[ -a $_sublime_path ]]; then
-			alias subl="'$_sublime_path'"
-			alias st=subl
-			break
-		fi
-	done
+    for _sublime_path in $_sublime_darwin_paths; do
+        if [[ -a $_sublime_path ]]; then
+            alias subl="'$_sublime_path'"
+            alias st=subl
+            break
+        fi
+    done
 fi
 
 alias stt='st .'

+ 1 - 1
plugins/terminalapp/terminalapp.plugin.zsh

@@ -32,7 +32,7 @@ if [[ "$TERM_PROGRAM" == "Apple_Terminal" ]] && [[ -z "$INSIDE_EMACS" ]]; then
     # Register the function so it is called whenever the working
     # directory changes.
     autoload add-zsh-hook
-    add-zsh-hook chpwd update_terminal_cwd
+    add-zsh-hook precmd update_terminal_cwd
 
     # Tell the terminal about the initial directory.
     update_terminal_cwd

+ 9 - 0
plugins/wd2/wd2/wd.plugin.zsh

@@ -0,0 +1,9 @@
+#!/bin/zsh
+
+# WARP
+# ====
+# oh-my-zsh plugin
+#
+# @github.com/mfaerevaag/wd
+
+alias wd='. ~/.oh-my-zsh/plugins/wd/wd.sh'

+ 201 - 0
plugins/wd2/wd2/wd.sh

@@ -0,0 +1,201 @@
+#!/bin/zsh
+
+# WARP
+# ====
+# Jump to custom directories in terminal
+# because `cd` takes too long...
+#
+# @github.com/mfaerevaag/wd
+
+
+## variables
+CONFIG=$HOME/.warprc
+
+## colors
+BLUE="\033[96m"
+GREEN="\033[92m"
+YELLOW="\033[93m"
+RED="\033[91m"
+NOC="\033[m"
+
+
+## load warp points
+typeset -A points
+while read line
+do
+    arr=(${(s,:,)line})
+    key=${arr[1]}
+    val=${arr[2]}
+
+    points[$key]=$val
+done < $CONFIG
+
+
+## functions
+# prepended wd_ to not conflict with your environment (no sub shell)
+
+wd_warp()
+{
+    if [[ $1 =~ "^\.+$" ]]
+    then
+        if [[ $#1 < 2 ]]
+        then
+            wd_print_msg $YELLOW "Warping to current directory?"
+        else
+            (( n = $#1 - 1 ))
+            wd_print_msg $BLUE "Warping..."
+            cd -$n > /dev/null
+        fi
+    elif [[ ${points[$1]} != "" ]]
+    then
+        wd_print_msg $BLUE "Warping..."
+        cd ${points[$1]}
+    else
+        wd_print_msg $RED "Unkown warp point '$1'"
+    fi
+}
+
+wd_add()
+{
+    if [[ $1 =~ "^\.+$" ]]
+    then
+        wd_print_msg $RED "Illeagal warp point (see README)."
+    elif [[ ${points[$1]} == "" ]] || $2
+    then
+        wd_remove $1 > /dev/null
+        print "$1:$PWD" >> $CONFIG
+        wd_print_msg $GREEN "Warp point added"
+    else
+        wd_print_msg $YELLOW "Warp point '$1' alredy exists. Use 'add!' to overwrite."
+    fi
+}
+
+wd_remove()
+{
+    if [[ ${points[$1]} != "" ]]
+    then
+        if wd_tmp=`sed "/^$1:/d" $CONFIG`
+        then
+            echo $wd_tmp > $CONFIG
+            wd_print_msg $GREEN "Warp point removed"
+        else
+            wd_print_msg $RED "Warp point unsuccessfully removed. Sorry!"
+        fi
+    else
+        wd_print_msg $RED "Warp point was not found"
+    fi
+}
+
+wd_show()
+{
+    wd_print_msg $BLUE "Warp points to current directory:"
+    wd_list_all | grep $PWD$
+}
+
+wd_list_all()
+{
+    wd_print_msg $BLUE "All warp points:"
+    while read line
+    do
+        if [[ $line != "" ]]
+        then
+            arr=(${(s,:,)line})
+            key=${arr[1]}
+            val=${arr[2]}
+
+            print "\t" $key "\t -> \t" $val
+        fi
+    done < $CONFIG
+}
+
+wd_print_msg()
+{
+    if [[ $1 == "" || $2 == "" ]]
+    then
+        print " $RED*$NOC Could not print message. Sorry!"
+    else
+        print " $1*$NOC $2"
+    fi
+}
+
+wd_print_usage()
+{
+		print "Usage: wd [add|-a|--add] [rm|-r|--remove] [ls|-l|--list] <point>"
+    print "\nCommands:"
+    print "\t add \t Adds the current working directory to your warp points"
+    print "\t add! \t Overwrites existing warp point"
+    print "\t remove  Removes the given warp point"
+    print "\t list \t Outputs all stored warp points"
+    print "\t help \t Show this extremely helpful text"
+}
+
+
+## run
+
+# get opts
+args=`getopt -o a:r:lhs -l add:,remove:,list,help,show -- $*`
+
+if [[ $? -ne 0 || $#* -eq 0 ]]
+then
+    wd_print_usage
+else
+    # can't exit, as this would exit the excecuting shell
+    # e.i. your terminal
+
+    #set -- $args # WTF
+
+    for i
+    do
+		    case "$i"
+		        in
+			      -a|--add|add)
+                wd_add $2 false
+				        shift
+                shift
+                break
+                ;;
+            -a!|--add!|add!)
+                wd_add $2 true
+				        shift
+                shift
+                break
+                ;;
+			      -r|--remove|rm)
+				        wd_remove $2
+                shift
+				        shift
+                break
+                ;;
+			      -l|--list|ls)
+				        wd_list_all
+				        shift
+                break
+                ;;
+			      -h|--help|help)
+				        wd_print_usage
+				        shift
+                break
+                ;;
+			      -s|--show|show)
+				        wd_show
+				        shift
+                break
+                ;;
+            *)
+                wd_warp $i
+                shift
+                break
+                ;;
+			      --)
+				        shift; break;;
+		    esac
+    done
+fi
+
+
+## garbage collection
+# if not, next time warp will pick up variables from this run
+# remember, there's no sub shell
+points=""
+args=""
+unhash -d val &> /dev/null # fixes issue #1

+ 10 - 0
plugins/zeus/README.md

@@ -41,3 +41,13 @@
 
 * `zsw` aliases `rm .zeus.sock`
 * `zweep` aliases `rm .zeus.sock`
+
+`zdbr` aliases `zeus rake db:reset db:test:prepare`
+`zdbreset` aliases `zeus rake db:reset db:test:prepare`
+
+`zdbm` aliases `zeus rake db:migrate db:test:prepare`
+`zdbmigrate` aliases `zeus rake db:migrate db:test:prepare`
+
+`zdbc` aliases `zeus rake db:create`
+
+`zdbcm` aliases `zeus rake db:create db:migrate db:test:prepare`

+ 14 - 0
plugins/zeus/zeus.plugin.zsh

@@ -53,3 +53,17 @@ alias zall='zeus test test/unit/*; zeus test test/functional/; zeus cucumber'
 # Clean up crashed zeus instances.
 alias zsw='rm .zeus.sock'
 alias zweep='rm .zeus.sock'
+
+# Reset database
+alias zdbr='zeus rake db:reset db:test:prepare'
+alias zdbreset='zeus rake db:reset db:test:prepare'
+
+# Migrate and prepare database
+alias zdbm='zeus rake db:migrate db:test:prepare'
+alias zdbmigrate='zeus rake db:migrate db:test:prepare'
+
+# Create database
+alias zdbc='zeus rake db:create'
+
+# Create, migrate and prepare database
+alias zdbcm='zeus rake db:create db:migrate db:test:prepare'

+ 32 - 32
themes/agnoster.zsh-theme

@@ -95,38 +95,38 @@ prompt_git() {
 }
 
 prompt_hg() {
-	local rev status
-	if $(hg id >/dev/null 2>&1); then
-		if $(hg prompt >/dev/null 2>&1); then
-			if [[ $(hg prompt "{status|unknown}") = "?" ]]; then
-				# if files are not added
-				prompt_segment red white
-				st='±'
-			elif [[ -n $(hg prompt "{status|modified}") ]]; then
-				# if any modification
-				prompt_segment yellow black
-				st='±'
-			else
-				# if working copy is clean
-				prompt_segment green black
-			fi
-			echo -n $(hg prompt "☿ {rev}@{branch}") $st
-		else
-			st=""
-			rev=$(hg id -n 2>/dev/null | sed 's/[^-0-9]//g')
-			branch=$(hg id -b 2>/dev/null)
-			if `hg st | grep -Eq "^\?"`; then
-				prompt_segment red black
-				st='±'
-			elif `hg st | grep -Eq "^(M|A)"`; then
-				prompt_segment yellow black
-				st='±'
-			else
-				prompt_segment green black
-			fi
-			echo -n "☿ $rev@$branch" $st
-		fi
-	fi
+  local rev status
+  if $(hg id >/dev/null 2>&1); then
+    if $(hg prompt >/dev/null 2>&1); then
+      if [[ $(hg prompt "{status|unknown}") = "?" ]]; then
+        # if files are not added
+        prompt_segment red white
+        st='±'
+      elif [[ -n $(hg prompt "{status|modified}") ]]; then
+        # if any modification
+        prompt_segment yellow black
+        st='±'
+      else
+        # if working copy is clean
+        prompt_segment green black
+      fi
+      echo -n $(hg prompt "☿ {rev}@{branch}") $st
+    else
+      st=""
+      rev=$(hg id -n 2>/dev/null | sed 's/[^-0-9]//g')
+      branch=$(hg id -b 2>/dev/null)
+      if `hg st | grep -Eq "^\?"`; then
+        prompt_segment red black
+        st='±'
+      elif `hg st | grep -Eq "^(M|A)"`; then
+        prompt_segment yellow black
+        st='±'
+      else
+        prompt_segment green black
+      fi
+      echo -n "☿ $rev@$branch" $st
+    fi
+  fi
 }
 
 # Dir: current working directory

+ 21 - 0
themes/amuse.zsh-theme

@@ -0,0 +1,21 @@
+# vim:ft=zsh ts=2 sw=2 sts=2
+
+rvm_current() {
+  rvm current 2>/dev/null
+}
+
+rbenv_version() {
+  rbenv version 2>/dev/null | awk '{print $1}'
+}
+
+PROMPT='
+%{$fg_bold[green]%}${PWD/#$HOME/~}%{$reset_color%}$(git_prompt_info) ⌚ %{$fg_bold[red]%}%*%{$reset_color%}
+$ '
+
+ZSH_THEME_GIT_PROMPT_PREFIX=" on %{$fg[magenta]%}⭠ "
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}!"
+ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[green]%}?"
+ZSH_THEME_GIT_PROMPT_CLEAN=""
+
+RPROMPT='%{$fg_bold[red]%}$(rbenv_version)%{$reset_color%}'