Browse code

Merge remote-tracking branch 'upstream/master'

Conflicts:
README.textile
lib/history.zsh

Nicolas Viennot authored on 01/03/2012 at 20:33:47
Showing 60 changed files
... ...
@@ -32,12 +32,14 @@ zstyle ':completion:*:cd:*' tag-order local-directories directory-stack path-dir
32 32
 cdpath=(.)
33 33
 
34 34
 # use /etc/hosts and known_hosts for hostname completion
35
+[ -r /etc/ssh/ssh_known_hosts ] && _global_ssh_hosts=(${${${${(f)"$(</etc/ssh/ssh_known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _ssh_hosts=()
35 36
 [ -r ~/.ssh/known_hosts ] && _ssh_hosts=(${${${${(f)"$(<$HOME/.ssh/known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _ssh_hosts=()
36 37
 [ -r /etc/hosts ] && : ${(A)_etc_hosts:=${(s: :)${(ps:\t:)${${(f)~~"$(</etc/hosts)"}%%\#*}##[:blank:]#[^[:blank:]]#}}} || _etc_hosts=()
37 38
 hosts=(
39
+  "$_global_ssh_hosts[@]"
38 40
   "$_ssh_hosts[@]"
39 41
   "$_etc_hosts[@]"
40
-  `hostname`
42
+  "$HOST"
41 43
   localhost
42 44
 )
43 45
 zstyle ':completion:*:hosts' hosts $hosts
... ...
@@ -3,11 +3,11 @@ function zsh_stats() {
3 3
 }
4 4
 
5 5
 function uninstall_oh_my_zsh() {
6
-  /bin/sh $ZSH/tools/uninstall.sh
6
+  /usr/bin/env ZSH=$ZSH /bin/sh $ZSH/tools/uninstall.sh
7 7
 }
8 8
 
9 9
 function upgrade_oh_my_zsh() {
10
-  /bin/sh $ZSH/tools/upgrade.sh
10
+  /usr/bin/env ZSH=$ZSH /bin/sh $ZSH/tools/upgrade.sh
11 11
 }
12 12
 
13 13
 function take() {
... ...
@@ -9,15 +9,21 @@ function disable_git_prompt_info() {
9 9
   GIT_PROMPT_DISABLED=1
10 10
 }
11 11
 
12
+
12 13
 # Checks if working tree is dirty
13 14
 parse_git_dirty() {
14
-  if [[ -n $(git status -s 2> /dev/null) ]]; then
15
+  local SUBMODULE_SYNTAX=''
16
+  if [[ $POST_1_7_2_GIT -gt 0 ]]; then
17
+        SUBMODULE_SYNTAX="--ignore-submodules=dirty"
18
+  fi
19
+  if [[ -n $(git status -s ${SUBMODULE_SYNTAX}  2> /dev/null) ]]; then
15 20
     echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
16 21
   else
17 22
     echo "$ZSH_THEME_GIT_PROMPT_CLEAN"
18 23
   fi
19 24
 }
20 25
 
26
+
21 27
 # Checks if there are commits ahead from remote
22 28
 function git_prompt_ahead() {
23 29
   if $(echo "$(git log origin/$(current_branch)..HEAD 2> /dev/null)" | grep '^commit' &> /dev/null); then
... ...
@@ -67,3 +73,29 @@ git_prompt_status() {
67 67
   fi
68 68
   echo $STATUS
69 69
 }
70
+
71
+#compare the provided version of git to the version installed and on path
72
+#prints 1 if input version <= installed version
73
+#prints -1 otherwise 
74
+function git_compare_version() {
75
+  local INPUT_GIT_VERSION=$1;
76
+  local INSTALLED_GIT_VERSION
77
+  INPUT_GIT_VERSION=(${(s/./)INPUT_GIT_VERSION});
78
+  INSTALLED_GIT_VERSION=($(git --version));
79
+  INSTALLED_GIT_VERSION=(${(s/./)INSTALLED_GIT_VERSION[3]});
80
+
81
+  for i in {1..3}; do
82
+    if [[ $INSTALLED_GIT_VERSION[$i] -lt $INPUT_GIT_VERSION[$i] ]]; then
83
+      echo -1
84
+      return 0
85
+    fi
86
+  done
87
+  echo 1
88
+}
89
+
90
+#this is unlikely to change so make it all statically assigned
91
+POST_1_7_2_GIT=$(git_compare_version "1.7.2")
92
+#clean up the namespace slightly by removing the checker function
93
+unset -f git_compare_version
94
+
95
+
... ...
@@ -3,15 +3,11 @@ HISTFILE=$HOME/.zsh_history
3 3
 HISTSIZE=100000
4 4
 SAVEHIST=100000
5 5
 
6
-setopt hist_ignore_dups # ignore duplication command history list
7
-setopt share_history # share command history data
8
-
9
-setopt hist_verify
10
-setopt inc_append_history
6
+setopt append_history
11 7
 setopt extended_history
12 8
 setopt hist_expire_dups_first
9
+setopt hist_ignore_dups # ignore duplication command history list
13 10
 setopt hist_ignore_space
14
-setopt hist_reduce_blanks
15
-
16
-setopt SHARE_HISTORY
17
-setopt APPEND_HISTORY
11
+setopt hist_verify
12
+setopt inc_append_history
13
+setopt share_history # share command history data
... ...
@@ -4,7 +4,7 @@
4 4
 #Limited support for Apple Terminal (Terminal can't set window or tab separately)
5 5
 function title {
6 6
   [ "$DISABLE_AUTO_TITLE" != "true" ] || return
7
-  if [[ "$TERM" == screen* ]]; then 
7
+  if [[ "$TERM" == screen* ]]; then
8 8
     print -Pn "\ek$1:q\e\\" #set screen hardstatus, usually truncated at 20 chars
9 9
   elif [[ "$TERM" == xterm* ]] || [[ $TERM == rxvt* ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then
10 10
     print -Pn "\e]2;$2:q\a" #set window name
... ...
@@ -16,14 +16,18 @@ ZSH_THEME_TERM_TAB_TITLE_IDLE="%15<..<%~%<<" #15 char left truncated PWD
16 16
 ZSH_THEME_TERM_TITLE_IDLE="%n@%m: %~"
17 17
 
18 18
 #Appears when you have the prompt
19
-function precmd {
19
+function omz_termsupport_precmd {
20 20
   title $ZSH_THEME_TERM_TAB_TITLE_IDLE $ZSH_THEME_TERM_TITLE_IDLE
21 21
 }
22 22
 
23 23
 #Appears at the beginning of (and during) of command execution
24
-function preexec {
24
+function omz_termsupport_preexec {
25 25
   emulate -L zsh
26 26
   setopt extended_glob
27 27
   local CMD=${1[(wr)^(*=*|sudo|ssh|-*)]} #cmd name only, or if this is sudo or ssh, the next cmd
28 28
   title "$CMD" "%100>...>$2%<<"
29 29
 }
30
+
31
+autoload -U add-zsh-hook
32
+add-zsh-hook precmd  omz_termsupport_precmd
33
+add-zsh-hook preexec omz_termsupport_preexec
... ...
@@ -13,20 +13,33 @@ fpath=($ZSH/functions $ZSH/completions $fpath)
13 13
 # TIP: Add files you don't want in git to .gitignore
14 14
 for config_file ($ZSH/lib/*.zsh) source $config_file
15 15
 
16
-# Add all defined plugins to fpath
17
-plugin=${plugin:=()}
18
-for plugin ($plugins) fpath=($ZSH/plugins/$plugin $fpath)
16
+# Set ZSH_CUSTOM to the path where your custom config files
17
+# and plugins exists, or else we will use the default custom/
18
+if [[ -z "$ZSH_CUSTOM" ]]; then
19
+    ZSH_CUSTOM="$ZSH/custom"
20
+fi
21
+
22
+
23
+is_plugin() {
24
+  local base_dir=$1
25
+  local name=$2
26
+  test -f $base_dir/plugins/$name/$name.plugin.zsh \
27
+    || test -f $base_dir/plugins/$name/_$name
28
+}
29
+# Add all defined plugins to fpath. This must be done
30
+# before running compinit.
31
+for plugin ($plugins); do
32
+  if is_plugin $ZSH_CUSTOM $plugin; then
33
+    fpath=($ZSH_CUSTOM/plugins/$plugin $fpath)
34
+  elif is_plugin $ZSH $plugin; then
35
+    fpath=($ZSH/plugins/$plugin $fpath)
36
+  fi
37
+done
19 38
 
20 39
 # Load and run compinit
21 40
 autoload -U compinit
22 41
 compinit -i
23 42
 
24
-# Set ZSH_CUSTOM to the path where your custom config files
25
-# and plugins exists, or else we will use the default custom/
26
-if [ "$ZSH_CUSTOM" = ""  ]
27
-then
28
-    ZSH_CUSTOM="$ZSH/custom"
29
-fi
30 43
 
31 44
 # Load all of the plugins that were defined in ~/.zshrc
32 45
 for plugin ($plugins); do
... ...
@@ -52,7 +65,12 @@ then
52 52
 else
53 53
   if [ ! "$ZSH_THEME" = ""  ]
54 54
   then
55
-    source "$ZSH/themes/$ZSH_THEME.zsh-theme"
55
+    if [ -f "$ZSH/custom/$ZSH_THEME.zsh-theme" ]
56
+    then
57
+      source "$ZSH/custom/$ZSH_THEME.zsh-theme"
58
+    else
59
+      source "$ZSH/themes/$ZSH_THEME.zsh-theme"
60
+    fi
56 61
   fi
57 62
 fi
58 63
 
... ...
@@ -9,6 +9,7 @@ if [[ -x `which yaourt` ]]; then
9 9
   alias yaconf='yaourt -C'        # Fix all configuration files with vimdiff
10 10
   # Pacman - https://wiki.archlinux.org/index.php/Pacman_Tips
11 11
   alias yaupg='yaourt -Syu'        # Synchronize with repositories before upgrading packages that are out of date on the local system.
12
+  alias yasu='yaourt --sucre'      # Same as yaupg, but without confirmation
12 13
   alias yain='yaourt -S'           # Install specific package(s) from the repositories
13 14
   alias yains='yaourt -U'          # Install specific package not from the repositories but from a file 
14 15
   alias yare='yaourt -R'           # Remove the specified package(s), retaining its configuration(s) and required dependencies
... ...
@@ -1,3 +1,9 @@
1
-if [ -f `brew --prefix`/etc/autojump ]; then
2
-  . `brew --prefix`/etc/autojump
1
+if [ $commands[autojump] ]; then # check if autojump is installed
2
+  if [ -f /usr/share/autojump/autojump.zsh ]; then # debian and ubuntu package
3
+    . /usr/share/autojump/autojump.zsh
4
+  elif [ -f /etc/profile.d/autojump.zsh ]; then # manual installation
5
+    . /etc/profile.d/autojump.zsh
6
+  elif [ $commands[brew] -a -f `brew --prefix`/etc/autojump ]; then # mac os x with brew
7
+    . `brew --prefix`/etc/autojump
8
+  fi
3 9
 fi
4 10
new file mode 100644
... ...
@@ -0,0 +1,20 @@
0
+if [[ $(acpi 2&>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]] ; then
1
+  function battery_pct_remaining() { echo "$(acpi | cut -f2 -d ',' | tr -cd '[:digit:]')" }
2
+  function battery_time_remaining() { echo $(acpi | cut -f3 -d ',') }
3
+  function battery_pct_prompt() {
4
+    b=$(battery_pct_remaining)
5
+    if [ $b -gt 50 ] ; then
6
+      color='green'
7
+    elif [ $b -gt 20 ] ; then
8
+      color='yellow'
9
+    else
10
+      color='red'
11
+    fi
12
+    echo "%{$fg[$color]%}[$(battery_pct_remaining)%%]%{$reset_color%}"
13
+  }
14
+else
15
+  error_msg='no battery'
16
+  function battery_pct_remaining() { echo $error_msg }
17
+  function battery_time_remaining() { echo $error_msg }
18
+  function battery_pct_prompt() { echo '' }
19
+fi
... ...
@@ -1,7 +1,3 @@
1
-fpath=($ZSH/plugins/bundler $fpath)
2
-autoload -U compinit
3
-compinit -i
4
-
5 1
 alias be="bundle exec"
6 2
 alias bi="bundle install"
7 3
 alias bl="bundle list"
... ...
@@ -10,7 +6,7 @@ alias bu="bundle update"
10 10
 
11 11
 # The following is based on https://github.com/gma/bundler-exec
12 12
 
13
-bundled_commands=(cap capify cucumber foreman guard heroku nanoc rackup rails rainbows rake rspec ruby shotgun spec spork thin unicorn unicorn_rails)
13
+bundled_commands=(annotate cap capify cucumber ey foreman guard heroku middleman nanoc rackup rainbows rails rake rspec ruby shotgun spec spork thin thor unicorn unicorn_rails)
14 14
 
15 15
 ## Functions
16 16
 
... ...
@@ -20,7 +16,7 @@ _bundler-installed() {
20 20
 
21 21
 _within-bundled-project() {
22 22
   local check_dir=$PWD
23
-  while [ "$(dirname $check_dir)" != "/" ]; do
23
+  while [ $check_dir != "/" ]; do
24 24
     [ -f "$check_dir/Gemfile" ] && return
25 25
     check_dir="$(dirname $check_dir)"
26 26
   done
... ...
@@ -41,6 +37,6 @@ for cmd in $bundled_commands; do
41 41
   alias $cmd=bundled_$cmd
42 42
 
43 43
   if which _$cmd > /dev/null 2>&1; then
44
-        compdef _$cmd bundled_$cmd
44
+        compdef _$cmd bundled_$cmd=$cmd
45 45
   fi
46 46
 done
... ...
@@ -54,7 +54,7 @@ if [[ $use_sudo -eq 1 ]]; then
54 54
 
55 55
     # apt-get only
56 56
     alias ads="sudo $apt_pref dselect-upgrade"
57
-    
57
+
58 58
     # Install all .deb files in the current directory.
59 59
     # Warning: you will need to put the glob in single quotes if you use:
60 60
     # glob_subst
... ...
@@ -113,9 +113,6 @@ alias allpkgs='aptitude search -F "%p" --disable-columns ~i'
113 113
 alias mydeb='time dpkg-buildpackage -rfakeroot -us -uc'
114 114
 
115 115
 
116
-
117
-
118
-
119 116
 # Functions #################################################################
120 117
 # create a simple script that can be used to 'duplicate' a system
121 118
 apt-copy() {
... ...
@@ -132,11 +129,46 @@ apt-copy() {
132 132
     chmod +x apt-copy.sh
133 133
 }
134 134
 
135
+# Prints apt history
136
+# Usage:
137
+#   apt-history install
138
+#   apt-history upgrade
139
+#   apt-history remove
140
+#   apt-history rollback
141
+#   apt-history list
142
+# Based On: http://linuxcommando.blogspot.com/2008/08/how-to-show-apt-log-history.html
143
+apt-history () {
144
+  case "$1" in
145
+    install)
146
+      zgrep --no-filename 'install ' $(ls -rt /var/log/dpkg*)
147
+      ;;
148
+    upgrade|remove)
149
+      zgrep --no-filename $1 $(ls -rt /var/log/dpkg*)
150
+      ;;
151
+    rollback)
152
+      zgrep --no-filename upgrade $(ls -rt /var/log/dpkg*) | \
153
+        grep "$2" -A10000000 | \
154
+        grep "$3" -B10000000 | \
155
+        awk '{print $4"="$5}'
156
+      ;;
157
+    list)
158
+      zcat $(ls -rt /var/log/dpkg*)
159
+      ;;
160
+    *)
161
+      echo "Parameters:"
162
+      echo " install - Lists all packages that have been installed."
163
+      echo " upgrade - Lists all packages that have been upgraded."
164
+      echo " remove - Lists all packages that have been removed."
165
+      echo " rollback - Lists rollback information."
166
+      echo " list - Lists all contains of dpkg logs."
167
+      ;;
168
+  esac
169
+}
135 170
 
136 171
 # Kernel-package building shortcut
137 172
 kerndeb () {
138 173
     # temporarily unset MAKEFLAGS ( '-j3' will fail )
139
-    MAKEFLAGS=$( print - $MAKEFLAGS | perl -pe 's/-j\s*[\d]+//g' )		
174
+    MAKEFLAGS=$( print - $MAKEFLAGS | perl -pe 's/-j\s*[\d]+//g' )
140 175
     print '$MAKEFLAGS set to '"'$MAKEFLAGS'"
141 176
 	appendage='-custom' # this shows up in $ (uname -r )
142 177
     revision=$(date +"%Y%m%d") # this shows up in the .deb file name
... ...
@@ -220,3 +220,4 @@ _managepy() {
220 220
 
221 221
 compdef _managepy manage.py
222 222
 compdef _managepy django
223
+compdef _managepy django-manage
... ...
@@ -78,8 +78,3 @@ function extract() {
78 78
 
79 79
 alias x=extract
80 80
 
81
-# add extract completion function to path
82
-fpath=($ZSH/plugins/extract $fpath)
83
-autoload -U compinit
84
-compinit -i
85
-
... ...
@@ -9,7 +9,7 @@ alias gup='git fetch && git rebase'
9 9
 compdef _git gup=git-fetch
10 10
 alias gp='git push'
11 11
 compdef _git gp=git-push
12
-gdv() { git-diff -w "$@" | view - }
12
+gdv() { git diff -w "$@" | view - }
13 13
 compdef _git gdv=git-diff
14 14
 alias gc='git commit -v'
15 15
 compdef _git gc=git-commit
... ...
@@ -17,6 +17,7 @@ alias gca='git commit -v -a'
17 17
 compdef _git gca=git-commit
18 18
 alias gco='git checkout'
19 19
 compdef _git gco=git-checkout
20
+alias gcm='git checkout master'
20 21
 alias gb='git branch'
21 22
 compdef _git gb=git-branch
22 23
 alias gba='git branch -a'
... ...
@@ -35,6 +36,8 @@ alias ga='git add'
35 35
 compdef _git ga=git-add
36 36
 alias gm='git merge'
37 37
 compdef _git gm=git-merge
38
+alias grh='git reset HEAD'
39
+alias grhh='git reset HEAD --hard'
38 40
 
39 41
 # Git and svn mix
40 42
 alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk'
... ...
@@ -57,4 +60,4 @@ compdef ggpull=git
57 57
 alias ggpush='git push origin $(current_branch)'
58 58
 compdef ggpush=git
59 59
 alias ggpnp='git pull origin $(current_branch) && git push origin $(current_branch)'
60
-compdef ggpnp=git
60
+compdef ggpnp=git
61 61
\ No newline at end of file
... ...
@@ -1,7 +1,17 @@
1 1
 # Setup hub function for git, if it is available; http://github.com/defunkt/hub
2 2
 if [ "$commands[(I)hub]" ] && [ "$commands[(I)ruby]" ]; then
3 3
     # eval `hub alias -s zsh`
4
-    function git(){hub "$@"}
4
+    function git(){
5
+        if ! (( $+_has_working_hub  )); then
6
+            hub --version &> /dev/null
7
+            _has_working_hub=$(($? == 0))
8
+        fi
9
+        if (( $_has_working_hub )) ; then
10
+            hub "$@"
11
+        else
12
+            command git "$@"
13
+        fi
14
+    }
5 15
 fi
6 16
 
7 17
 # Functions #################################################################
8 18
new file mode 100644
... ...
@@ -0,0 +1,14 @@
0
+#---oh-my-zsh plugin : task Autocomplete for Jake tool---
1
+# Jake : https://github.com/mde/jake
2
+# Warning : Jakefile should have the right case : Jakefile or jakefile
3
+# Tested on : MacOSX 10.7 (Lion), Ubuntu 11.10
4
+# Author : Alexandre Lacheze (@al3xstrat)
5
+# Inspiration : http://weblog.rubyonrails.org/2006/3/9/fast-rake-task-completion-for-zsh 
6
+
7
+function _jake () {
8
+  if [ -f Jakefile ]||[ -f jakefile ]; then
9
+    compadd `jake -T | cut -d " " -f 2 | sed -E "s/.\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"`
10
+  fi
11
+}
12
+
13
+compdef _jake jake
0 14
\ No newline at end of file
... ...
@@ -26,7 +26,7 @@ _knife() {
26 26
   
27 27
   case $state in
28 28
   knifecmd)
29
-    compadd -Q "$@" bootstrap client configure cookbook "cookbook site" "data bag" exec index node recipe role search ssh status windows $cloudproviders
29
+    compadd -Q "$@" bootstrap client configure cookbook "cookbook site" "data bag" exec environment index node recipe role search ssh status windows $cloudproviders
30 30
   ;;
31 31
   knifesubcmd)
32 32
     case $words[2] in
... ...
@@ -42,6 +42,9 @@ _knife() {
42 42
     cookbook)
43 43
       compadd -Q "$@" test list create download delete "metadata from" show "bulk delete" metadata upload
44 44
     ;;
45
+  environment)
46
+      compadd -Q "$@" list create delete edit show "from file"
47
+      ;;
45 48
     node)
46 49
      compadd -Q "$@" "from file" create show edit delete list run_list "bulk delete"
47 50
     ;;
... ...
@@ -138,27 +141,31 @@ _knife_options3() {
138 138
 
139 139
 # The chef_x_remote functions use knife to get a list of objects of type x on the server
140 140
 _chef_roles_remote() {
141
- (knife role list | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
141
+ (knife role list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
142 142
 }
143 143
 
144 144
 _chef_clients_remote() {
145
- (knife client list | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
145
+ (knife client list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
146 146
 }
147 147
 
148 148
 _chef_nodes_remote() {
149
- (knife node list | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
149
+ (knife node list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
150 150
 }
151 151
 
152 152
 _chef_cookbooks_remote() {
153
- (knife cookbook list | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
153
+ (knife cookbook list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
154 154
 }
155 155
 
156 156
 _chef_sitecookbooks_remote() {
157
- (knife cookbook site list | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
157
+ (knife cookbook site list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
158 158
 }
159 159
 
160 160
 _chef_data_bags_remote() {
161
- (knife data bag list | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
161
+ (knife data bag list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
162
+}
163
+
164
+_chef_environments_remote() {
165
+  (knife environment list | awk '{print $1}')
162 166
 }
163 167
 
164 168
 # The chef_x_local functions use the knife config to find the paths of relevant objects x to be uploaded to the server
... ...
@@ -1,14 +1,14 @@
1 1
 
2 2
 # Mercurial
3
-alias hgc='hg commit -v'
4
-alias hgb='hg branch -v'
3
+alias hgc='hg commit'
4
+alias hgb='hg branch'
5 5
 alias hgba='hg branches'
6 6
 alias hgco='hg checkout'
7 7
 alias hgd='hg diff'
8 8
 alias hged='hg diffmerge'
9 9
 # pull and update
10
-alias hgl='hg pull -u -v'
11
-alias hgp='hg push -v'
12
-alias hgs='hg status -v'
10
+alias hgl='hg pull -u'
11
+alias hgp='hg push'
12
+alias hgs='hg status'
13 13
 # this is the 'git commit --amend' equivalent
14 14
 alias hgca='hg qimport -r tip ; hg qrefresh -e ; hg qfinish tip'
15 15
new file mode 100644
... ...
@@ -0,0 +1,5 @@
0
+if [[ -x `which nc` ]]; then
1
+  alias nyan='nc -v miku.acm.uiuc.edu 23' # nyan cat
2
+fi
3
+
4
+
... ...
@@ -3,30 +3,43 @@
3 3
 
4 4
 # pip zsh completion, based on homebrew completion
5 5
 
6
+_pip_all() {
7
+  # we cache the list of packages (originally from the macports plugin)
8
+  if (( ! $+piplist )); then
9
+    echo -n " (caching package index...)"
10
+	piplist=($(pip search * | cut -d ' ' -f 1 | tr '[A-Z]' '[a-z]'))
11
+  fi
12
+}
13
+
6 14
 _pip_installed() {
7
-  installed_pkgs=(`pip freeze`)
15
+  installed_pkgs=(`pip freeze | cut -d '=' -f 1`)
8 16
 }
9 17
 
10 18
 local -a _1st_arguments
11 19
 _1st_arguments=(
12
-  'bundle:Create pybundles (archives containing multiple packages)'
13
-  'freeze:Output all currently installed packages (exact versions) to stdout'
14
-  'help:Show available commands'
15
-  'install:Install packages'
16
-  'search:Search PyPI'
17
-  'uninstall:Uninstall packages'
18
-  'unzip:Unzip individual packages'
19
-  'zip:Zip individual packages'
20
+  'bundle:create pybundles (archives containing multiple packages)'
21
+  'freeze:output all currently installed packages (exact versions) to stdout'
22
+  'help:show available commands'
23
+  'install:install packages'
24
+  'search:search PyPI'
25
+  'uninstall:uninstall packages'
26
+  'unzip:unzip individual packages'
27
+  'zip:zip individual packages'
20 28
 )
21 29
 
22 30
 local expl
23
-local -a pkgs installed_pkgs
31
+local -a all_pkgs installed_pkgs
24 32
 
25 33
 _arguments \
26
-  '(--version)--version[Show version number of program and exit]' \
27
-  '(-v --verbose)'{-v,--verbose}'[Give more output]' \
28
-  '(-q --quiet)'{-q,--quiet}'[Give less output]' \
29
-  '(-h --help)'{-h,--help}'[Show help]' \
34
+  '(--version)--version[show version number of program and exit]' \
35
+  '(-h --help)'{-h,--help}'[show help]' \
36
+  '(-E --environment)'{-E,--environment}'[virtualenv environment to run pip in]' \
37
+  '(-s --enable-site-packages)'{-s,--enable-site-packages}'[include site-packages in virtualenv]' \
38
+  '(-v --verbose)'{-v,--verbose}'[give more output]' \
39
+  '(-q --quiet)'{-q,--quiet}'[give less output]' \
40
+  '(--log)--log[log file location]' \
41
+  '(--proxy)--proxy[proxy in form user:passwd@proxy.server:port]' \
42
+  '(--timeout)--timeout[socket timeout (default 15s)]' \
30 43
   '*:: :->subcmds' && return 0
31 44
 
32 45
 if (( CURRENT == 1 )); then
... ...
@@ -35,10 +48,25 @@ if (( CURRENT == 1 )); then
35 35
 fi
36 36
 
37 37
 case "$words[1]" in
38
-  list)
39
-      if [[ "$state" == forms ]]; then
40
-        _pip_installed
41
-        _requested installed_pkgs expl 'installed packages' compadd -a installed_pkgs
38
+  search)
39
+    _arguments \
40
+      '(--index)--index[base URL of Python Package Index]' ;;
41
+  freeze)
42
+    _arguments \
43
+      '(-l --local)'{-l,--local}'[report only virtualenv packages]' ;;
44
+  install)
45
+  	_arguments \
46
+      '(-U --upgrade)'{-U,--upgrade}'[upgrade all packages to the newest available version]' \
47
+      '(-f --find-links)'{-f,--find-links}'[URL for finding packages]' \
48
+      '(--no-deps --no-dependencies)'{--no-deps,--no-dependencies}'[iIgnore package dependencies]' \
49
+      '(--no-install)--no-install[only download packages]' \
50
+      '(--no-download)--no-download[only install downloaded packages]' \
51
+      '(--install-option)--install-option[extra arguments to be supplied to the setup.py]' \
52
+      '1: :->packages' &&  return 0
53
+     
54
+      if [[ "$state" == packages ]]; then
55
+        _pip_all
56
+        _wanted piplist expl 'packages' compadd -a piplist
42 57
       fi ;;
43 58
   uninstall)
44 59
     _pip_installed
... ...
@@ -1,10 +1,66 @@
1
-# Thanks to Christopher Sexton
2
-# https://gist.github.com/965032
3
-function kapow {
4
-	touch ~/.pow/$1/tmp/restart.txt
5
-	if [ $? -eq 0 ]; then
6
-		echo "$fg[yellow]Pow restarting $1...$reset_color"
7
-	fi
1
+# Restart a rack app running under pow
2
+# http://pow.cx/
3
+#
4
+# Adds a kapow command that will restart an app
5
+#
6
+#   $ kapow myapp
7
+#
8
+# Supports command completion.
9
+#
10
+# If you are not already using completion you might need to enable it with
11
+# 
12
+#    autoload -U compinit compinit
13
+#
14
+# Changes:
15
+#
16
+# Defaults to the current application, and will walk up the tree to find 
17
+# a config.ru file and restart the corresponding app
18
+#
19
+# Will Detect if a app does not exist in pow and print a (slightly) helpful 
20
+# error message
21
+
22
+rack_root_detect(){
23
+  setopt chaselinks
24
+  local orgdir=$(pwd)
25
+  local basedir=$(pwd)
26
+
27
+  while [[ $basedir != '/' ]]; do
28
+    test -e "$basedir/config.ru" && break
29
+    builtin cd ".." 2>/dev/null
30
+    basedir="$(pwd)"
31
+  done
32
+
33
+  builtin cd $orgdir 2>/dev/null
34
+  [[ ${basedir} == "/" ]] && return 1
35
+  echo `basename $basedir | sed -E "s/.(com|net|org)//"`
8 36
 }
9 37
 
38
+kapow(){
39
+  local vhost=$1
40
+  [ ! -n "$vhost" ] && vhost=$(rack_root_detect)
41
+  if [ ! -h ~/.pow/$vhost ]
42
+  then
43
+    echo "pow: This domain isn’t set up yet. Symlink your application to ${vhost} first."
44
+    return 1
45
+  fi
46
+
47
+  [ ! -d ~/.pow/${vhost}/tmp ] && mkdir -p ~/.pow/$vhost/tmp
48
+  touch ~/.pow/$vhost/tmp/restart.txt;
49
+  [ $? -eq 0 ] &&  echo "pow: restarting $vhost.dev"
50
+}
10 51
 compctl -W ~/.pow -/ kapow
52
+
53
+powit(){
54
+	local basedir=$(pwd)
55
+  local vhost=$1
56
+  [ ! -n "$vhost" ] && vhost=$(rack_root_detect)
57
+  if [ ! -h ~/.pow/$vhost ]
58
+	then
59
+		echo "pow: Symlinking your app with pow. ${vhost}"
60
+	  [ ! -d ~/.pow/${vhost} ] && ln -s $basedir ~/.pow/$vhost
61
+    return 1
62
+  fi
63
+}
64
+
65
+# View the standard out (puts) from any pow app
66
+alias kaput="tail -f ~/Library/Logs/Pow/apps/*"
... ...
@@ -2,6 +2,7 @@ alias ss='thin --stats "/thin/stats" start'
2 2
 alias sg='ruby script/generate'
3 3
 alias sd='ruby script/destroy'
4 4
 alias sp='ruby script/plugin'
5
+alias sr='ruby script/runner'
5 6
 alias ssp='ruby script/spec'
6 7
 alias rdbm='rake db:migrate'
7 8
 alias sc='ruby script/console'
... ...
@@ -14,6 +14,9 @@ alias rdb='_rails_command dbconsole'
14 14
 alias rdbm='rake db:migrate db:test:clone'
15 15
 alias rg='_rails_command generate'
16 16
 alias rp='_rails_command plugin'
17
+alias ru='_rails_command runner'
17 18
 alias rs='_rails_command server'
18 19
 alias rsd='_rails_command server --debugger'
19 20
 alias devlog='tail -f log/development.log'
21
+alias rdm='rake db:migrate'
22
+alias rdr='rake db:rollback'
20 23
new file mode 100644
... ...
@@ -0,0 +1,6 @@
0
+alias rake="noglob rake" # allows square brackts for rake task invocation
1
+alias brake='noglob bundle exec rake' # execute the bundled rake gem
2
+alias srake='noglob sudo rake' # noglob must come before sudo
3
+alias sbrake='noglob sudo bundle exec rake' # altogether now ... 
4
+
5
+
0 6
new file mode 100644
... ...
@@ -0,0 +1,44 @@
0
+FOUND_RBENV=0
1
+for rbenvdir in "$HOME/.rbenv" "/usr/local/rbenv" "/opt/rbenv" ; do
2
+  if [ -d $rbenvdir/bin -a $FOUND_RBENV -eq 0 ] ; then
3
+    FOUND_RBENV=1
4
+    export RBENV_ROOT=$rbenvdir
5
+    export PATH=${rbenvdir}/bin:$PATH
6
+    eval "$(rbenv init -)"
7
+
8
+    alias rubies="rbenv versions"
9
+    alias gemsets="rbenv gemset list"
10
+
11
+    function current_ruby() {
12
+      echo "$(rbenv version-name)"
13
+    }
14
+
15
+    function current_gemset() {
16
+      echo "$(rbenv gemset active 2&>/dev/null | sed -e ":a" -e '$ s/\n/+/gp;N;b a' | head -n1)"
17
+    }
18
+
19
+    function gems {
20
+      local rbenv_path=$(rbenv prefix)
21
+      gem list $@ | sed \
22
+        -Ee "s/\([0-9\.]+( .+)?\)/$fg[blue]&$reset_color/g" \
23
+        -Ee "s|$(echo $rbenv_path)|$fg[magenta]\$rbenv_path$reset_color|g" \
24
+        -Ee "s/$current_ruby@global/$fg[yellow]&$reset_color/g" \
25
+        -Ee "s/$current_ruby$current_gemset$/$fg[green]&$reset_color/g"
26
+    }
27
+
28
+    function rbenv_prompt_info() {
29
+      if [[ -n $(current_gemset) ]] ; then
30
+        echo "$(current_ruby)@$(current_gemset)"
31
+      else
32
+        echo "$(current_ruby)"
33
+      fi
34
+    }
35
+  fi
36
+done
37
+unset rbenvdir
38
+
39
+if [ $FOUND_RBENV -eq 0 ] ; then
40
+  alias rubies='ruby -v'
41
+  function gemsets() { echo 'not supported' }
42
+  function rbenv_prompt_info() { echo "system: $(ruby -v | cut -f-2 -d ' ')" }
43
+fi
... ...
@@ -3,4 +3,4 @@
3 3
 alias sgem='sudo gem'
4 4
 
5 5
 # Find ruby file
6
-alias rfind='find . -name *.rb | xargs grep -n'
6
+alias rfind='find . -name "*.rb" | xargs grep -n'
... ...
@@ -37,7 +37,7 @@ function gems {
37 37
 	local current_gemset=`rvm-prompt g`
38 38
 
39 39
 	gem list $@ | sed \
40
-		-Ee "s/\([0-9\.]+( .+)?\)/$fg[blue]&$reset_color/g" \
40
+		-Ee "s/\([0-9, \.]+( .+)?\)/$fg[blue]&$reset_color/g" \
41 41
 		-Ee "s|$(echo $rvm_path)|$fg[magenta]\$rvm_path$reset_color|g" \
42 42
 		-Ee "s/$current_ruby@global/$fg[yellow]&$reset_color/g" \
43 43
 		-Ee "s/$current_ruby$current_gemset$/$fg[green]&$reset_color/g"
44 44
new file mode 100644
... ...
@@ -0,0 +1,64 @@
0
+# Contributed and SLIGHTLY modded by Matt Parnell/ilikenwf <parwok -at- gmail>
1
+# Created by the blogger at the URL below...I don't know where to find his/her name
2
+# Original found at http://www.shellperson.net/sprunge-pastebin-script/
3
+ 
4
+usage() {
5
+description | fmt -s >&2
6
+}
7
+ 
8
+description() {
9
+cat << HERE
10
+ 
11
+DESCRIPTION
12
+  Upload data and fetch URL from the pastebin http://sprunge.us
13
+ 
14
+USAGE
15
+  $0 filename.txt
16
+  $0 text string
17
+  $0 < filename.txt
18
+  piped_data | $0
19
+ 
20
+NOTES
21
+--------------------------------------------------------------------------
22
+* INPUT METHODS *
23
+$0 can accept piped data, STDIN redirection [<filename.txt], text strings following the command as arguments, or filenames as arguments.  Only one of these methods can be used at a time, so please see the note on precedence.  Also, note that using a pipe or STDIN redirection will treat tabs as spaces, or disregard them entirely (if they appear at the beginning of a line).  So I suggest using a filename as an argument if tabs are important either to the function or readability of the code.
24
+ 
25
+* PRECEDENCE *
26
+STDIN redirection has precedence, then piped input, then a filename as an argument, and finally text strings as an arguments.
27
+ 
28
+  EXAMPLE:
29
+  echo piped | "$0" arguments.txt < stdin_redirection.txt
30
+ 
31
+In this example, the contents of file_as_stdin_redirection.txt would be uploaded. Both the piped_text and the file_as_argument.txt are ignored. If there is piped input and arguments, the arguments will be ignored, and the piped input uploaded.
32
+ 
33
+* FILENAMES *
34
+If a filename is misspelled or doesn't have the necessary path description, it will NOT generate an error, but will instead treat it as a text string and upload it.
35
+--------------------------------------------------------------------------
36
+ 
37
+HERE
38
+exit
39
+}
40
+
41
+sprunge() {
42
+	if [ -t 0 ]; then
43
+	  echo Running interactively, checking for arguments... >&2
44
+	  if [ "$*" ]; then
45
+		echo Arguments present... >&2
46
+		if [ -f "$*" ]; then
47
+		  echo Uploading the contents of "$*"... >&2
48
+		  cat "$*"
49
+		else
50
+		  echo Uploading the text: \""$*"\"... >&2
51
+		  echo "$*"
52
+		fi | curl -F 'sprunge=<-' http://sprunge.us
53
+	  else
54
+		echo No arguments found, printing USAGE and exiting. >&2
55
+		usage
56
+	  fi
57
+	else
58
+	  echo Using input from a pipe or STDIN redirection... >&2
59
+	  while read -r line ; do
60
+		echo $line
61
+	  done | curl -F 'sprunge=<-' http://sprunge.us
62
+	fi
63
+}
0 64
new file mode 100644
... ...
@@ -0,0 +1,13 @@
0
+# Symfony2 basic command completion
1
+
2
+_symfony2_get_command_list () {
3
+	app/console --no-ansi | sed "1,/Available commands/d" | awk '/^  [a-z]+/ { print $1 }'
4
+}
5
+
6
+_symfony2 () {
7
+  if [ -f app/console ]; then
8
+    compadd `_symfony2_get_command_list`
9
+  fi
10
+}
11
+
12
+compdef _symfony2 app/console
0 13
\ No newline at end of file
... ...
@@ -1,37 +1,37 @@
1 1
 #compdef task
2
-#
3 2
 # zsh completion for taskwarrior
4 3
 #
4
+# taskwarrior - a command line task list manager.
5
+#
5 6
 # Copyright 2010 - 2011 Johannes Schlatow
6 7
 # Copyright 2009 P.C. Shyamshankar
7
-# All rights reserved.
8
-#
9
-# This script is part of the taskwarrior project.
10 8
 #
11
-# This program is free software; you can redistribute it and/or modify it under
12
-# the terms of the GNU General Public License as published by the Free Software
13
-# Foundation; either version 2 of the License, or (at your option) any later
14
-# version.
9
+# Permission is hereby granted, free of charge, to any person obtaining a copy
10
+# of this software and associated documentation files (the "Software"), to deal
11
+# in the Software without restriction, including without limitation the rights
12
+# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13
+# copies of the Software, and to permit persons to whom the Software is
14
+# furnished to do so, subject to the following conditions:
15 15
 #
16
-# This program is distributed in the hope that it will be useful, but WITHOUT
17
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
18
-# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
19
-# details.
16
+# The above copyright notice and this permission notice shall be included
17
+# in all copies or substantial portions of the Software.
20 18
 #
21
-# You should have received a copy of the GNU General Public License along with
22
-# this program; if not, write to the
19
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
20
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
22
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25
+# SOFTWARE.
23 26
 #
24
-#     Free Software Foundation, Inc.,
25
-#     51 Franklin Street, Fifth Floor,
26
-#     Boston, MA
27
-#     02110-1301
28
-#     USA
27
+# http://www.opensource.org/licenses/mit-license.php
29 28
 #
30 29
 typeset -g _task_cmds _task_projects _task_tags _task_config _task_modifiers
31 30
 _task_projects=($(task _projects))
32 31
 _task_tags=($(task _tags))
33 32
 _task_ids=($(task _ids))
34 33
 _task_config=($(task _config))
34
+_task_columns=($(task _columns))
35 35
 _task_modifiers=(
36 36
 	'before' \
37 37
 	'after' \
... ...
@@ -46,39 +46,19 @@ _task_modifiers=(
46 46
 	'word' \
47 47
 	'noword'
48 48
 )
49
+_task_conjunctions=(
50
+   'and' \
51
+   'or' \
52
+	'xor' \
53
+	'\)'
54
+	'\('
55
+)
49 56
 _task_cmds=($(task _commands))
50 57
 _task_zshcmds=( ${(f)"$(task _zshcommands)"} )
51 58
 
52
-
53
-_task_idCmds=(
54
-	'append' \
55
-	'prepend' \
56
-	'annotate' \
57
-	'denotate' \
58
-	'edit' \
59
-	'duplicate' \
60
-	'info' \
61
-	'start' \
62
-	'stop' \
63
-	'done'
64
-)
65
-
66
-_task_idCmdsDesc=(
67
-	'append:Appends more description to an existing task.' \
68
-	'prepend:Prepends more description to an existing task.' \
69
-	'annotate:Adds an annotation to an existing task.' \
70
-	'denotate:Deletes an annotation of an existing task.' \
71
-	'edit:Launches an editor to let you modify a task directly.' \
72
-	'duplicate:Duplicates the specified task, and allows modifications.' \
73
-	'info:Shows all data, metadata for specified task.' \
74
-	'start:Marks specified task as started.' \
75
-	'stop:Removes the start time from a task.' \
76
-	'done:Marks the specified task as completed.'
77
-)
78
-
79 59
 _task() {
80 60
     _arguments -s -S \
81
-        "*::task command:_task_commands"
61
+        "*::task default:_task_default"
82 62
     return 0
83 63
 }
84 64
 
... ...
@@ -148,6 +128,7 @@ _regex_words values 'task frequencies' \
148 148
 	'weekly:Every week' \
149 149
 	'biweekly:Every two weeks' \
150 150
 	'fortnight:Every two weeks' \
151
++ 'monthly:Every month' \
151 152
 	'quarterly:Every three months' \
152 153
 	'semiannual:Every six months' \
153 154
 	'annual:Every year' \
... ...
@@ -196,22 +177,13 @@ _regex_arguments _task_attributes "${args[@]}"
196 196
 
197 197
 ## task commands
198 198
 
199
-# default completion
200
-(( $+functions[_task_default] )) ||
201
-_task_default() {
199
+# filter completion
200
+(( $+functions[_task_filter] )) ||
201
+_task_filter() {
202 202
 	_task_attributes "$@"
203
-}
204 203
 
205
-# commands expecting an ID
206
-(( $+functions[_task_id] )) ||
207
-_task_id() {
208
-	if (( CURRENT < 3 )); then
209
-		# update IDs
210
-		_task_zshids=( ${(f)"$(task _zshids)"} )
211
-		_describe -t values 'task IDs' _task_zshids
212
-	else
213
-		_task_attributes "$@"
214
-	fi
204
+	# TODO complete conjunctions only if the previous word is a filter expression, i.e. attribute, ID, any non-command
205
+	_describe -t default 'task conjunctions' _task_conjunctions
215 206
 }
216 207
 
217 208
 # merge completion
... ...
@@ -235,46 +207,42 @@ _task_pull() {
235 235
 	_files
236 236
 }
237 237
 
238
+# execute completion
239
+(( $+functions[_task_execute] )) ||
240
+_task_execute() {
241
+	_files
242
+}
238 243
 
239
-# modify (task [0-9]* ...) completion
240
-(( $+functions[_task_modify] )) ||
241
-_task_modify() {
242
-	_describe -t commands 'task command' _task_idCmdsDesc
243
-	_task_attributes "$@"
244
+# id-only completion
245
+(( $+functions[_task_id] )) ||
246
+_task_id() {
247
+	_describe -t values 'task IDs' _task_zshids
244 248
 }
245 249
 
246 250
 ## first level completion => task sub-command completion
247
-(( $+functions[_task_commands] )) ||
248
-_task_commands() {
251
+(( $+functions[_task_default] )) ||
252
+_task_default() {
249 253
     local cmd ret=1
250
-	if (( CURRENT == 1 )); then
251
-		# update IDs
252
-		_task_zshids=( ${(f)"$(task _zshids)"} )
253
-
254
-		_describe -t commands 'task command' _task_zshcmds
255
-		_describe -t values 'task IDs' _task_zshids
256
-		# TODO match more than one ID
257
-	elif [[ $words[1] =~ ^[0-9]*$ ]] then
258
-		 _call_function ret _task_modify
259
-		 return ret
260
-	else
261
-#        local curcontext="${curcontext}"
262
-#        cmd="${_task_cmds[(r)$words[1]:*]%%:*}"
263
-		  cmd="${_task_cmds[(r)$words[1]]}"
264
-		  idCmd="${(M)_task_idCmds[@]:#$words[1]}"
265
-        if (( $#cmd )); then
266
-#            curcontext="${curcontext%:*:*}:task-${cmd}"
267 254
 
268
-				if (( $#idCmd )); then
269
-					_call_function ret _task_id
270
-				else
271
-					_call_function ret _task_${cmd} ||
272
-						_call_function ret _task_default ||
273
-							_message "No command remaining."
274
-				fi
275
-        else
276
-            _message "Unknown subcommand ${cmd}"
277
-        fi
278
-        return ret
279
-    fi
255
+	integer i=1
256
+	while (( i < $#words ))
257
+	do
258
+		cmd="${_task_cmds[(r)$words[$i]]}"
259
+		if (( $#cmd )); then
260
+			_call_function ret _task_${cmd} ||
261
+				_call_function ret _task_filter ||
262
+					_message "No command remaining."
263
+			return ret
264
+		fi
265
+		(( i++ ))
266
+	done
267
+
268
+	# update IDs
269
+	_task_zshids=( ${(f)"$(task _zshids)"} )
270
+
271
+	_describe -t commands 'task command' _task_zshcmds
272
+	_describe -t values 'task IDs' _task_zshids
273
+	_call_function ret _task_filter
274
+
275
+	return ret
280 276
 }
281 277
new file mode 100644
... ...
@@ -0,0 +1,11 @@
0
+# Set Apple Terminal.app resume directory
1
+# based on this answer: http://superuser.com/a/315029
2
+
3
+function chpwd {
4
+  local SEARCH=' '
5
+  local REPLACE='%20'
6
+  local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"
7
+  printf '\e]7;%s\a' "$PWD_URL"
8
+}
9
+
10
+chpwd
0 11
\ No newline at end of file
1 12
new file mode 100644
... ...
@@ -0,0 +1,29 @@
0
+This plugin provides a wrapper around the "wakeonlan" tool available from most
1
+distributions' package repositories, or from the following website:
2
+
3
+http://gsd.di.uminho.pt/jpo/software/wakeonlan/
4
+
5
+In order to use this wrapper, create the ~/.wakeonlan directory, and place in
6
+that directory one file for each device you would like to be able to wake. Give
7
+the file a name that describes the device, such as its hostname. Each file
8
+should contain a line with the mac address of the target device and the network
9
+broadcast address.
10
+
11
+For instance, there might be a file ~/.wakeonlan/leto with the following
12
+contents:
13
+
14
+00:11:22:33:44:55:66 192.168.0.255
15
+
16
+To wake that device, use the following command:
17
+
18
+# wake leto
19
+
20
+The available device names will be autocompleted, so:
21
+
22
+# wake <tab>
23
+
24
+...will suggest "leto", along with any other configuration files that were
25
+placed in the ~/.wakeonlan directory.
26
+
27
+For more information regarding the configuration file format, check the
28
+wakeonlan man page.
0 29
new file mode 100644
... ...
@@ -0,0 +1,4 @@
0
+#compdef wake
1
+#autoload
2
+
3
+_arguments "1:device to wake:_files -W '$HOME/.wakeonlan'" && return 0
0 4
new file mode 100644
... ...
@@ -0,0 +1,14 @@
0
+function wake() {
1
+  local config_file="$HOME/.wakeonlan/$1"
2
+  if [[ ! -f "$config_file" ]]; then
3
+    echo "ERROR: There is no configuration file at \"$config_file\"."
4
+    return 1
5
+  fi
6
+
7
+  if (( ! $+commands[wakeonlan] )); then
8
+    echo "ERROR: Can't find \"wakeonlan\".  Are you sure it's installed?"
9
+    return 1
10
+  fi
11
+
12
+  wakeonlan -f "$config_file"
13
+}
... ...
@@ -7,6 +7,10 @@ ZSH=$HOME/.oh-my-zsh
7 7
 # time that oh-my-zsh is loaded.
8 8
 ZSH_THEME="robbyrussell"
9 9
 
10
+# Example aliases
11
+# alias zshconfig="mate ~/.zshrc"
12
+# alias ohmyzsh="mate ~/.oh-my-zsh"
13
+
10 14
 # Set to this to use case-sensitive completion
11 15
 # CASE_SENSITIVE="true"
12 16
 
... ...
@@ -23,6 +27,7 @@ ZSH_THEME="robbyrussell"
23 23
 # COMPLETION_WAITING_DOTS="true"
24 24
 
25 25
 # Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
26
+# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
26 27
 # Example format: plugins=(rails git textmate ruby lighthouse)
27 28
 plugins=(git)
28 29
 
... ...
@@ -1,7 +1,14 @@
1 1
 
2 2
 local user='%{$fg[magenta]%}%n@%{$fg[magenta]%}%m%{$reset_color%}'
3 3
 local pwd='%{$fg[blue]%}%~%{$reset_color%}'
4
-local rvm='%{$fg[green]%}‹$(rvm-prompt i v g)›%{$reset_color%}'
4
+local rvm=''
5
+if which rvm-prompt &> /dev/null; then
6
+  rvm='%{$fg[green]%}‹$(rvm-prompt i v g)›%{$reset_color%}'
7
+else
8
+  if which rbenv &> /dev/null; then
9
+    rvm='%{$fg[green]%}‹$(rbenv version | sed -e "s/ (set.*$//")›%{$reset_color%}'
10
+  fi
11
+fi
5 12
 local return_code='%(?..%{$fg[red]%}%? ↵%{$reset_color%})'
6 13
 local git_branch='$(git_prompt_status)%{$reset_color%}$(git_prompt_info)%{$reset_color%}'
7 14
 
... ...
@@ -19,4 +26,3 @@ ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[cyan]%} ✭"
19 19
 
20 20
 PROMPT="${user} ${pwd}$ "
21 21
 RPROMPT="${return_code} ${git_branch} ${rvm}"
22
-
... ...
@@ -2,7 +2,7 @@ function toon {
2 2
   echo -n ""
3 3
 }
4 4
 
5
-get_git_dirty() { 
5
+get_git_dirty() {
6 6
   git diff --quiet || echo '*'
7 7
 }
8 8
 
... ...
@@ -18,9 +18,12 @@ zstyle ':vcs_info:*' formats       \
18 18
 zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{3}%r'
19 19
 zstyle ':vcs_info:*' enable git cvs svn
20 20
 
21
-precmd () {
21
+theme_precmd () {
22 22
     vcs_info
23 23
 }
24 24
 
25 25
 setopt prompt_subst
26 26
 PROMPT='%{$fg[magenta]%}$(toon)%{$reset_color%} %~/ %{$reset_color%}${vcs_info_msg_0_}%{$reset_color%}'
27
+
28
+autoload -U add-zsh-hook
29
+add-zsh-hook precmd theme_precmd
27 30
\ No newline at end of file
... ...
@@ -3,7 +3,14 @@ local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
3 3
 
4 4
 local user_host='%{$terminfo[bold]$fg[green]%}%n@%m%{$reset_color%}'
5 5
 local current_dir='%{$terminfo[bold]$fg[blue]%} %~%{$reset_color%}'
6
-local rvm_ruby='%{$fg[red]%}‹$(rvm-prompt i v g)›%{$reset_color%}'
6
+local rvm_ruby=''
7
+if which rvm-prompt &> /dev/null; then
8
+  rvm_ruby='%{$fg[red]%}‹$(rvm-prompt i v g)›%{$reset_color%}'
9
+else
10
+  if which rbenv &> /dev/null; then
11
+    rvm_ruby='%{$fg[red]%}‹$(rbenv version | sed -e "s/ (set.*$//")›%{$reset_color%}'
12
+  fi
13
+fi
7 14
 local git_branch='$(git_prompt_info)%{$reset_color%}'
8 15
 
9 16
 PROMPT="╭─${user_host} ${current_dir} ${rvm_ruby} ${git_branch}
... ...
@@ -29,7 +29,13 @@ ZSH_THEME_GIT_PROMPT_DIRTY=" $CRUNCH_GIT_DIRTY_COLOR✗"
29 29
 
30 30
 # Our elements:
31 31
 CRUNCH_TIME_="$CRUNCH_BRACKET_COLOR{$CRUNCH_TIME_COLOR%T$CRUNCH_BRACKET_COLOR}%{$reset_color%}"
32
-CRUNCH_RVM_="$CRUNCH_BRACKET_COLOR"["$CRUNCH_RVM_COLOR\${\$(~/.rvm/bin/rvm-prompt i v g)#ruby-}$CRUNCH_BRACKET_COLOR"]"%{$reset_color%}"
32
+if which rvm-prompt &> /dev/null; then
33
+  CRUNCH_RVM_="$CRUNCH_BRACKET_COLOR"["$CRUNCH_RVM_COLOR\${\$(~/.rvm/bin/rvm-prompt i v g)#ruby-}$CRUNCH_BRACKET_COLOR"]"%{$reset_color%}"
34
+else
35
+  if which rbenv &> /dev/null; then
36
+    CRUNCH_RVM_="$CRUNCH_BRACKET_COLOR"["$CRUNCH_RVM_COLOR\${\$(rbenv version | sed -e 's/ (set.*$//' -e 's/^ruby-//')}$CRUNCH_BRACKET_COLOR"]"%{$reset_color%}"
37
+  fi
38
+fi
33 39
 CRUNCH_DIR_="$CRUNCH_DIR_COLOR%~\$(git_prompt_info) "
34 40
 CRUNCH_PROMPT="$CRUNCH_BRACKET_COLOR➭ "
35 41
 
... ...
@@ -3,7 +3,13 @@
3 3
 # Grab the current date (%D) and time (%T) wrapped in {}: {%D %T}
4 4
 DALLAS_CURRENT_TIME_="%{$fg[white]%}{%{$fg[yellow]%}%D %T%{$fg[white]%}}%{$reset_color%}"
5 5
 # Grab the current version of ruby in use (via RVM): [ruby-1.8.7]
6
-DALLAS_CURRENT_RUBY_="%{$fg[white]%}[%{$fg[magenta]%}\$(~/.rvm/bin/rvm-prompt i v)%{$fg[white]%}]%{$reset_color%}"
6
+if which rvm-prompt &> /dev/null; then
7
+  DALLAS_CURRENT_RUBY_="%{$fg[white]%}[%{$fg[magenta]%}\$(~/.rvm/bin/rvm-prompt i v)%{$fg[white]%}]%{$reset_color%}"
8
+else
9
+  if which rbenv &> /dev/null; then
10
+    DALLAS_CURRENT_RUBY_="%{$fg[white]%}[%{$fg[magenta]%}\$(rbenv version | sed -e 's/ (set.*$//')%{$fg[white]%}]%{$reset_color%}"
11
+  fi
12
+fi
7 13
 # Grab the current machine name: muscato
8 14
 DALLAS_CURRENT_MACH_="%{$fg[green]%}%m%{$fg[white]%}:%{$reset_color%}"
9 15
 # Grab the current filepath, use shortcuts: ~/Desktop
... ...
@@ -1,6 +1,10 @@
1 1
 #RVM settings
2 2
 if [[ -s ~/.rvm/scripts/rvm ]] ; then 
3 3
   RPS1="%{$fg[yellow]%}rvm:%{$reset_color%}%{$fg[red]%}\$(~/.rvm/bin/rvm-prompt)%{$reset_color%} $EPS1"
4
+else
5
+  if which rbenv &> /dev/null; then
6
+    RPS1="%{$fg[yellow]%}rbenv:%{$reset_color%}%{$fg[red]%}\$(rbenv version | sed -e 's/ (set.*$//')%{$reset_color%} $EPS1"
7
+  fi
4 8
 fi
5 9
 
6 10
 ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[green]%}["
... ...
@@ -25,7 +25,14 @@ function box_name {
25 25
 }
26 26
 
27 27
 
28
-local rvm_ruby='‹$(rvm-prompt i v g)›%{$reset_color%}'
28
+local rvm_ruby=''
29
+if which rvm-prompt &> /dev/null; then
30
+  rvm_ruby='‹$(rvm-prompt i v g)›%{$reset_color%}'
31
+else
32
+  if which rbenv &> /dev/null; then
33
+    rvm_ruby='‹$(rbenv version | sed -e "s/ (set.*$//")›%{$reset_color%}'
34
+  fi
35
+fi
29 36
 local current_dir='${PWD/#$HOME/~}'
30 37
 local git_info='$(git_prompt_info)'
31 38
 
... ...
@@ -14,6 +14,12 @@ git_custom_status() {
14 14
 #RVM and git settings
15 15
 if [[ -s ~/.rvm/scripts/rvm ]] ; then 
16 16
   RPS1='$(git_custom_status)%{$fg[red]%}[`~/.rvm/bin/rvm-prompt`]%{$reset_color%} $EPS1'
17
+else
18
+  if which rbenv &> /dev/null; then
19
+    RPS1='$(git_custom_status)%{$fg[red]%}[`rbenv version | sed -e "s/ (set.*$//"`]%{$reset_color%} $EPS1'
20
+  else
21
+    RPS1='$(git_custom_status) $EPS1'
22
+  fi
17 23
 fi
18 24
 
19 25
 PROMPT='%{$fg[cyan]%}[%~% ]%(?.%{$fg[green]%}.%{$fg[red]%})%B$%b '
... ...
@@ -1,19 +1,19 @@
1
-function precmd {
1
+function theme_precmd {
2 2
     local TERMWIDTH
3 3
     (( TERMWIDTH = ${COLUMNS} - 1 ))
4 4
 
5 5
 
6 6
     ###
7 7
     # Truncate the path if it's too long.
8
-    
8
+
9 9
     PR_FILLBAR=""
10 10
     PR_PWDLEN=""
11
-    
11
+
12 12
     local promptsize=${#${(%):---(%n@%m:%l)---()--}}
13
-    local rubyprompt=`rvm_prompt_info`
13
+    local rubyprompt=`rvm_prompt_info || rbenv_prompt_info`
14 14
     local rubypromptsize=${#${rubyprompt}}
15 15
     local pwdsize=${#${(%):-%~}}
16
-    
16
+
17 17
     if [[ "$promptsize + $rubypromptsize + $pwdsize" -gt $TERMWIDTH ]]; then
18 18
       ((PR_PWDLEN=$TERMWIDTH - $promptsize))
19 19
     else
... ...
@@ -24,7 +24,7 @@ function precmd {
24 24
 
25 25
 
26 26
 setopt extended_glob
27
-preexec () {
27
+theme_preexec () {
28 28
     if [[ "$TERM" == "screen" ]]; then
29 29
 	local CMD=${1[(wr)^(*=*|sudo|-*)]}
30 30
 	echo -n "\ek$CMD\e\\"
... ...
@@ -69,7 +69,7 @@ setprompt () {
69 69
 
70 70
     ###
71 71
     # See if we can use extended characters to look nicer.
72
-    
72
+
73 73
     typeset -A altchar
74 74
     set -A altchar ${(s..)terminfo[acsc]}
75 75
     PR_SET_CHARSET="%{$terminfo[enacs]%}"
... ...
@@ -81,10 +81,10 @@ setprompt () {
81 81
     PR_LRCORNER=${altchar[j]:--}
82 82
     PR_URCORNER=${altchar[k]:--}
83 83
 
84
-    
84
+
85 85
     ###
86 86
     # Decide if we need to set titlebar text.
87
-    
87
+
88 88
     case $TERM in
89 89
 	xterm*)
90 90
 	    PR_TITLEBAR=$'%{\e]0;%(!.-=*[ROOT]*=- | .)%n@%m:%~ | ${COLUMNS}x${LINES} | %y\a%}'
... ...
@@ -96,8 +96,8 @@ setprompt () {
96 96
 	    PR_TITLEBAR=''
97 97
 	    ;;
98 98
     esac
99
-    
100
-    
99
+
100
+
101 101
     ###
102 102
     # Decide whether to set a screen title
103 103
     if [[ "$TERM" == "screen" ]]; then
... ...
@@ -105,15 +105,15 @@ setprompt () {
105 105
     else
106 106
 	PR_STITLE=''
107 107
     fi
108
-    
109
-    
108
+
109
+
110 110
     ###
111 111
     # Finally, the prompt.
112 112
 
113 113
     PROMPT='$PR_SET_CHARSET$PR_STITLE${(e)PR_TITLEBAR}\
114 114
 $PR_CYAN$PR_SHIFT_IN$PR_ULCORNER$PR_HBAR$PR_SHIFT_OUT$PR_GREY(\
115 115
 $PR_GREEN%$PR_PWDLEN<...<%~%<<\
116
-$PR_GREY)`rvm_prompt_info`$PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_HBAR${(e)PR_FILLBAR}$PR_HBAR$PR_SHIFT_OUT$PR_GREY(\
116
+$PR_GREY)`rvm_prompt_info || rbenv_prompt_info`$PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_HBAR${(e)PR_FILLBAR}$PR_HBAR$PR_SHIFT_OUT$PR_GREY(\
117 117
 $PR_CYAN%(!.%SROOT%s.%n)$PR_GREY@$PR_GREEN%m:%l\
118 118
 $PR_GREY)$PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_URCORNER$PR_SHIFT_OUT\
119 119
 
... ...
@@ -135,3 +135,7 @@ $PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT$PR_NO_COLOUR '
135 135
 }
136 136
 
137 137
 setprompt
138
+
139
+autoload -U add-zsh-hook
140
+add-zsh-hook precmd  theme_precmd
141
+add-zsh-hook preexec theme_preexec
138 142
\ No newline at end of file
... ...
@@ -10,7 +10,7 @@ function josh_prompt {
10 10
   prompt=" "
11 11
 
12 12
   branch=$(current_branch)
13
-  ruby_version=$(rvm_prompt_info)
13
+  ruby_version=$(rvm_prompt_info || rbenv_prompt_info)
14 14
   path_size=${#PWD}
15 15
   branch_size=${#branch}
16 16
   ruby_size=${#ruby_version}
... ...
@@ -31,7 +31,7 @@ function josh_prompt {
31 31
     prompt=" $prompt"
32 32
   done
33 33
   
34
-  prompt="%{%F{green}%}$PWD$prompt%{%F{red}%}$(rvm_prompt_info)%{$reset_color%} $(git_prompt_info)"
34
+  prompt="%{%F{green}%}$PWD$prompt%{%F{red}%}$(rvm_prompt_info || rbenv_prompt_info)%{$reset_color%} $(git_prompt_info)"
35 35
   
36 36
   echo $prompt
37 37
 }
... ...
@@ -7,7 +7,7 @@ zstyle ':vcs_info:*' unstagedstr '%F{yellow}●'
7 7
 zstyle ':vcs_info:*' check-for-changes true
8 8
 zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{11}%r'
9 9
 zstyle ':vcs_info:*' enable git svn
10
-precmd () {
10
+theme_precmd () {
11 11
     if [[ -z $(git ls-files --other --exclude-standard 2> /dev/null) ]] {
12 12
         zstyle ':vcs_info:*' formats ' [%b%c%u%B%F{green}]'
13 13
     } else {
... ...
@@ -19,3 +19,6 @@ precmd () {
19 19
 
20 20
 setopt prompt_subst
21 21
 PROMPT='%B%F{magenta}%c%B%F{green}${vcs_info_msg_0_}%B%F{magenta} %{$reset_color%}%% '
22
+
23
+autoload -U add-zsh-hook
24
+add-zsh-hook precmd  theme_precmd
... ...
@@ -1,7 +1,14 @@
1 1
 # ZSH Theme - Preview: http://gyazo.com/8becc8a7ed5ab54a0262a470555c3eed.png
2 2
 local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
3 3
 
4
-PROMPT='%{$fg[green]%}%~%{$reset_color%} %{$fg[red]%}‹$(~/.rvm/bin/rvm-prompt i v)› %{$reset_color%} $(git_prompt_info)%{$reset_color%}%B$%b '
4
+if which rvm-prompt &> /dev/null; then
5
+  PROMPT='%{$fg[green]%}%~%{$reset_color%} %{$fg[red]%}‹$(~/.rvm/bin/rvm-prompt i v)› %{$reset_color%} $(git_prompt_info)%{$reset_color%}%B$%b '
6
+else
7
+  if which rbenv &> /dev/null; then
8
+    PROMPT='%{$fg[green]%}%~%{$reset_color%} %{$fg[red]%}‹$(rbenv version | sed -e "s/ (set.*$//")› %{$reset_color%} $(git_prompt_info)%{$reset_color%}%B$%b '
9
+  fi
10
+fi
11
+
5 12
 RPS1="${return_code}"
6 13
 
7 14
 ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[yellow]%}‹"
... ...
@@ -1,7 +1,13 @@
1 1
 # ZSH Theme - Preview: http://gyazo.com/8becc8a7ed5ab54a0262a470555c3eed.png
2 2
 local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
3 3
 
4
-PROMPT='%{$fg[green]%}%~%{$reset_color%} %{$fg[red]%}‹$(~/.rvm/bin/rvm-prompt i v)› %{$reset_color%} $(git_prompt_info)%{$reset_color%}%B$%b '
4
+if which rvm-prompt &> /dev/null; then
5
+  PROMPT='%{$fg[green]%}%~%{$reset_color%} %{$fg[red]%}‹$(~/.rvm/bin/rvm-prompt i v)› %{$reset_color%} $(git_prompt_info)%{$reset_color%}%B$%b '
6
+else
7
+  if which rbenv &> /dev/null; then
8
+    PROMPT='%{$fg[green]%}%~%{$reset_color%} %{$fg[red]%}‹$(rbenv version | sed -e "s/ (set.*$//")› %{$reset_color%} $(git_prompt_info)%{$reset_color%}%B$%b '
9
+  fi
10
+fi
5 11
 RPS1="${return_code}"
6 12
 
7 13
 ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[yellow]%}‹"
8 14
new file mode 100644
... ...
@@ -0,0 +1,24 @@
0
+# mh theme
1
+# preview: http://cl.ly/1y2x0W0E3t2C0F29043z
2
+
3
+# features:
4
+# path is autoshortened to ~30 characters
5
+# displays git status (if applicable in current folder)
6
+# turns username green if superuser, otherwise it is white
7
+
8
+# if superuser make the username green
9
+if [ $UID -eq 0 ]; then NCOLOR="green"; else NCOLOR="white"; fi
10
+
11
+# prompt
12
+PROMPT='[%{$fg[$NCOLOR]%}%B%n%b%{$reset_color%}:%{$fg[red]%}%30<...<%~%<<%{$reset_color%}]%(!.#.$) '
13
+RPROMPT='$(git_prompt_info)'
14
+
15
+# git theming
16
+ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[gray]%}(%{$fg_no_bold[yellow]%}%B"
17
+ZSH_THEME_GIT_PROMPT_SUFFIX="%b%{$fg_bold[gray]%})%{$reset_color%} "
18
+ZSH_THEME_GIT_PROMPT_CLEAN=""
19
+ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg_bold[red]%}✱"
20
+
21
+# LS colors, made with http://geoff.greer.fm/lscolors/
22
+export LSCOLORS="Gxfxcxdxbxegedabagacad"
23
+export LS_COLORS='no=00:fi=00:di=01;34:ln=00;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=41;33;01:ex=00;32:*.cmd=00;32:*.exe=01;32:*.com=01;32:*.bat=01;32:*.btm=01;32:*.dll=01;32:*.tar=00;31:*.tbz=00;31:*.tgz=00;31:*.rpm=00;31:*.deb=00;31:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.lzma=00;31:*.zip=00;31:*.zoo=00;31:*.z=00;31:*.Z=00;31:*.gz=00;31:*.bz2=00;31:*.tb2=00;31:*.tz2=00;31:*.tbz2=00;31:*.avi=01;35:*.bmp=01;35:*.fli=01;35:*.gif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mng=01;35:*.mov=01;35:*.mpg=01;35:*.pcx=01;35:*.pbm=01;35:*.pgm=01;35:*.png=01;35:*.ppm=01;35:*.tga=01;35:*.tif=01;35:*.xbm=01;35:*.xpm=01;35:*.dl=01;35:*.gl=01;35:*.wmv=01;35:*.aiff=00;32:*.au=00;32:*.mid=00;32:*.mp3=00;32:*.ogg=00;32:*.voc=00;32:*.wav=00;32:'
0 24
new file mode 100644
... ...
@@ -0,0 +1,58 @@
0
+function my_git_prompt() {
1
+  tester=$(git rev-parse --git-dir 2> /dev/null) || return
2
+  
3
+  INDEX=$(git status --porcelain 2> /dev/null)
4
+  STATUS=""
5
+
6
+  # is branch ahead?
7
+  if $(echo "$(git log origin/$(current_branch)..HEAD 2> /dev/null)" | grep '^commit' &> /dev/null); then
8
+    STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_AHEAD"
9
+  fi
10
+
11
+  # is anything staged?
12
+  if $(echo "$INDEX" | grep -E -e '^(D[ M]|[MARC][ MD]) ' &> /dev/null); then
13
+    STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_STAGED"
14
+  fi
15
+
16
+  # is anything unstaged?
17
+  if $(echo "$INDEX" | grep -E -e '^[ MARC][MD] ' &> /dev/null); then
18
+    STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_UNSTAGED"
19
+  fi
20
+
21
+  # is anything untracked?
22
+  if $(echo "$INDEX" | grep '^?? ' &> /dev/null); then
23
+    STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_UNTRACKED"
24
+  fi
25
+
26
+  # is anything unmerged?
27
+  if $(echo "$INDEX" | grep -E -e '^(A[AU]|D[DU]|U[ADU]) ' &> /dev/null); then
28
+    STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_UNMERGED"
29
+  fi
30
+
31
+  if [[ -n $STATUS ]]; then
32
+    STATUS=" $STATUS"
33
+  fi
34
+
35
+  echo "$ZSH_THEME_GIT_PROMPT_PREFIX$(my_current_branch)$STATUS$ZSH_THEME_GIT_PROMPT_SUFFIX"
36
+}
37
+
38
+function my_current_branch() {
39
+  echo $(current_branch || echo "(no branch)")
40
+}
41
+
42
+function ssh_connection() {
43
+  if [[ -n $SSH_CONNECTION ]]; then
44
+    echo "%{$fg_bold[red]%}(ssh) "
45
+  fi
46
+}
47
+
48
+PROMPT=$'\n$(ssh_connection)%{$fg_bold[green]%}%n@%m%{$reset_color%}$(my_git_prompt) : %~\n%# '
49
+
50
+ZSH_THEME_PROMPT_RETURNCODE_PREFIX="%{$fg_bold[red]%}"
51
+ZSH_THEME_GIT_PROMPT_PREFIX=" $fg[white]‹ %{$fg_bold[yellow]%}"
52
+ZSH_THEME_GIT_PROMPT_AHEAD="%{$fg_bold[magenta]%}↑"
53
+ZSH_THEME_GIT_PROMPT_STAGED="%{$fg_bold[green]%}●"
54
+ZSH_THEME_GIT_PROMPT_UNSTAGED="%{$fg_bold[red]%}●"
55
+ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg_bold[white]%}●"
56
+ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg_bold[red]%}✕"
57
+ZSH_THEME_GIT_PROMPT_SUFFIX=" $fg_bold[white]›%{$reset_color%}"
... ...
@@ -1,7 +1,7 @@
1 1
 local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"
2 2
 local user_host='%{$terminfo[bold]$fg[green]%}%n@%m%{$reset_color%}'
3 3
 local current_dir='%{$terminfo[bold]$fg[blue]%}%~%{$reset_color%}'
4
-local rvm_ruby='%{$fg[red]%}$(rvm_prompt_info)%{$reset_color%}'
4
+local rvm_ruby='%{$fg[red]%}$(rvm_prompt_info || rbenv_prompt_info)%{$reset_color%}'
5 5
 local git_branch='%{$fg[blue]%}$(git_prompt_info)%{$reset_color%}'
6 6
 
7 7
 PROMPT="${user_host}:${current_dir} ${rvm_ruby}
... ...
@@ -4,6 +4,10 @@
4 4
 # Get the current ruby version in use with RVM:
5 5
 if [ -e ~/.rvm/bin/rvm-prompt ]; then
6 6
     RUBY_PROMPT_="%{$fg_bold[blue]%}rvm:(%{$fg[green]%}\$(~/.rvm/bin/rvm-prompt s i v g)%{$fg_bold[blue]%})%{$reset_color%} "
7
+else
8
+  if which rbenv &> /dev/null; then
9
+    RUBY_PROMPT_="%{$fg_bold[blue]%}rvm:(%{$fg[green]%}\$(rbenv version | sed -e 's/ (set.*$//')%{$fg_bold[blue]%})%{$reset_color%} "
10
+  fi
7 11
 fi
8 12
 
9 13
 # Get the host name (first 4 chars)
10 14
new file mode 100644
... ...
@@ -0,0 +1,9 @@
0
+# Yay! High voltage and arrows!
1
+
2
+ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[green]%}"
3
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} "
4
+ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[yellow]%}⚡%{$reset_color%}"
5
+ZSH_THEME_GIT_PROMPT_CLEAN=""
6
+
7
+PROMPT='%{$fg[magenta]%}%n%{$reset_color%}%{$fg[cyan]%}@%{$reset_color%}%{$fg[yellow]%}%m%{$reset_color%}%{$fg[red]%}:%{$reset_color%}%{$fg[cyan]%}%0~%{$reset_color%}%{$fg[red]%}|%{$reset_color%}$(git_prompt_info)%{$fg[cyan]%}⇒%{$reset_color%}  '
8
+
0 9
new file mode 100644
... ...
@@ -0,0 +1,6 @@
0
+PROMPT='%{$fg[white]%}%c$(git_prompt_info)$ % %{$reset_color%}'
1
+
2
+ZSH_THEME_GIT_PROMPT_PREFIX="("
3
+ZSH_THEME_GIT_PROMPT_SUFFIX=""
4
+ZSH_THEME_GIT_PROMPT_DIRTY="*)"
5
+ZSH_THEME_GIT_PROMPT_CLEAN=")"
... ...
@@ -1,5 +1,11 @@
1 1
 # Grab the current version of ruby in use (via RVM): [ruby-1.8.7]
2
-JARIN_CURRENT_RUBY_="%{$fg[white]%}[%{$fg[red]%}\$(~/.rvm/bin/rvm-prompt i v)%{$fg[white]%}]%{$reset_color%}"
2
+if which rvm-prompt &> /dev/null; then
3
+  JARIN_CURRENT_RUBY_="%{$fg[white]%}[%{$fg[red]%}\$(~/.rvm/bin/rvm-prompt i v)%{$fg[white]%}]%{$reset_color%}"
4
+else
5
+  if which rbenv &> /dev/null; then
6
+    JARIN_CURRENT_RUBY_="%{$fg[white]%}[%{$fg[red]%}\$(rbenv version | sed -e 's/ (set.*$//')%{$fg[white]%}]%{$reset_color%}"
7
+  fi
8
+fi
3 9
 
4 10
 # Grab the current filepath, use shortcuts: ~/Desktop
5 11
 # Append the current git branch, if in a git repository
6 12
new file mode 100644
... ...
@@ -0,0 +1,30 @@
0
+function prompt_char {
1
+    git branch >/dev/null 2>/dev/null && echo '±' && return
2
+    hg root >/dev/null 2>/dev/null && echo 'Hg' && return
3
+    echo '○'
4
+}
5
+
6
+function virtualenv_info {
7
+    [ $VIRTUAL_ENV ] && echo '('`basename $VIRTUAL_ENV`') '
8
+}
9
+
10
+function collapse_pwd {
11
+    echo $(pwd | sed -e "s,^$HOME,~,")
12
+}
13
+
14
+if which rvm-prompt &> /dev/null; then
15
+  PROMPT='%{$fg[magenta]%}%n%{$reset_color%} at %{$fg[yellow]%}%m%{$reset_color%} in %{$fg_bold[green]%}${PWD/#$HOME/~}%{$reset_color%}$(git_prompt_info) using %{$reset_color%}%{$fg[red]%}$(~/.rvm/bin/rvm-prompt)%{$reset_color%} 
16
+$(virtualenv_info)$(prompt_char) '
17
+else
18
+  if which rbenv &> /dev/null; then
19
+    PROMPT='%{$fg[magenta]%}%n%{$reset_color%} at %{$fg[yellow]%}%m%{$reset_color%} in %{$fg_bold[green]%}${PWD/#$HOME/~}%{$reset_color%}$(git_prompt_info) using %{$reset_color%}%{$fg[red]%}$(rbenv version | sed -e "s/ (set.*$//")%{$reset_color%} 
20
+$(virtualenv_info)$(prompt_char) '
21
+  fi
22
+fi
23
+
24
+
25
+ZSH_THEME_GIT_PROMPT_PREFIX=" on %{$fg[magenta]%}"
26
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
27
+ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[green]%}!"
28
+ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[green]%}?"
29
+ZSH_THEME_GIT_PROMPT_CLEAN=""
... ...
@@ -2,4 +2,4 @@ ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}["
2 2
 ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%} "
3 3
 ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg_bold[red]%} x%{$fg_bold[blue]%}"
4 4
 
5
-PROMPT='%{$(git_prompt_info)%}%{$fg_bold[green]%}{%{$(rvm current)%}}%{$reset_color%} %{$fg[cyan]%}%c%{$reset_color%} '
5
+PROMPT='%{$(git_prompt_info)%}%{$fg_bold[green]%}{%{$(rvm current 2>/dev/null || rbenv version-name 2>/dev/null)%}}%{$reset_color%} %{$fg[cyan]%}%c%{$reset_color%} '
6 6
new file mode 100644
... ...
@@ -0,0 +1,15 @@
0
+PROMPT='%{$fg_bold[green]%}%p %{$fg[cyan]%}%c%{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'
1
+
2
+if which rvm-prompt &> /dev/null; then
3
+  RPROMPT='%{$reset_color%} %{$fg[red]%}$(~/.rvm/bin/rvm-prompt i v g) %{$reset_color%}'
4
+else
5
+  if which rbenv &> /dev/null; then
6
+    RPROMPT='%{$reset_color%} %{$fg[red]%}$(rbenv version | sed -e "s/ (set.*$//") %{$reset_color%}'
7
+  fi
8
+fi
9
+
10
+
11
+ZSH_THEME_GIT_PROMPT_PREFIX=" (%{$fg[red]%}"
12
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
13
+ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}✗%{$reset_color%}"
14
+ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%})"
... ...
@@ -8,6 +8,12 @@ function _update_zsh_update() {
8 8
   echo "LAST_EPOCH=$(_current_epoch)" > ~/.zsh-update
9 9
 }
10 10
 
11
+function _upgrade_zsh() {
12
+  /usr/bin/env ZSH=$ZSH /bin/sh $ZSH/tools/upgrade.sh
13
+  # update the zsh file
14
+  _update_zsh_update
15
+}
16
+
11 17
 if [ -f ~/.zsh-update ]
12 18
 then
13 19
   . ~/.zsh-update
... ...
@@ -19,17 +25,21 @@ then
19 19
   epoch_diff=$(($(_current_epoch) - $LAST_EPOCH))
20 20
   if [ $epoch_diff -gt 6 ]
21 21
   then
22
-    echo "[Oh My Zsh] Would you like to check for updates?"
23
-    echo "Type Y to update oh-my-zsh: \c"
24
-    read line
25
-    if [ "$line" = Y ] || [ "$line" = y ]
22
+    if [ "$DISABLE_UPDATE_PROMPT" = "true" ]
26 23
     then
27
-      /usr/bin/env ZSH=$ZSH /bin/sh $ZSH/tools/upgrade.sh
28
-      # update the zsh file
29
-      _update_zsh_update
24
+      _upgrade_zsh
25
+    else
26
+      echo "[Oh My Zsh] Would you like to check for updates?"
27
+      echo "Type Y to update oh-my-zsh: \c"
28
+      read line
29
+      if [ "$line" = Y ] || [ "$line" = y ]
30
+      then
31
+        _upgrade_zsh
32
+      fi
30 33
     fi
31 34
   fi
32 35
 else
33 36
   # create the zsh file
34 37
   _update_zsh_update
35 38
 fi
39
+
... ...
@@ -1,12 +1,19 @@
1 1
 current_path=`pwd`
2
-echo -e "\033[0;34mUpgrading Oh My Zsh\033[0m"
3
-( cd $ZSH && git pull origin master )
4
-echo -e "\033[0;32m"'         __                                     __   '"\033[0m"
5
-echo -e "\033[0;32m"'  ____  / /_     ____ ___  __  __   ____  _____/ /_  '"\033[0m"
6
-echo -e "\033[0;32m"' / __ \/ __ \   / __ `__ \/ / / /  /_  / / ___/ __ \ '"\033[0m"
7
-echo -e "\033[0;32m"'/ /_/ / / / /  / / / / / / /_/ /    / /_(__  ) / / / '"\033[0m"
8
-echo -e "\033[0;32m"'\____/_/ /_/  /_/ /_/ /_/\__, /    /___/____/_/ /_/  '"\033[0m"
9
-echo -e "\033[0;32m"'                        /____/                       '"\033[0m"
10
-echo -e "\033[0;34mHooray! Oh My Zsh has been updated and/or is at the current version.\033[0m"
11
-echo -e "\033[0;34mTo keep up on the latest, be sure to follow Oh My Zsh on twitter: \033[1mhttp://twitter.com/ohmyzsh\033[0m"
12
-cd "$current_path"
2
+printf '\033[0;34m%s\033[0m\n' "Upgrading Oh My Zsh"
3
+cd $ZSH
4
+
5
+if git pull origin master
6
+then
7
+  printf '\033[0;32m%s\033[0m\n' '         __                                     __   '
8
+  printf '\033[0;32m%s\033[0m\n' '  ____  / /_     ____ ___  __  __   ____  _____/ /_  '
9
+  printf '\033[0;32m%s\033[0m\n' ' / __ \/ __ \   / __ `__ \/ / / /  /_  / / ___/ __ \ '
10
+  printf '\033[0;32m%s\033[0m\n' '/ /_/ / / / /  / / / / / / /_/ /    / /_(__  ) / / / '
11
+  printf '\033[0;32m%s\033[0m\n' '\____/_/ /_/  /_/ /_/ /_/\__, /    /___/____/_/ /_/  '
12
+  printf '\033[0;32m%s\033[0m\n' '                        /____/                       '
13
+  printf '\033[0;34m%s\033[0m\n' 'Hooray! Oh My Zsh has been updated and/or is at the current version.'
14
+  printf '\033[0;34m%s\033[1m%s\033[0m\n' 'To keep up on the latest, be sure to follow Oh My Zsh on twitter: ' 'http://twitter.com/ohmyzsh'
15
+else
16
+  printf '\033[0;31m%s\033[0m\n' 'There was an error updating. Try again later?'
17
+fi
18
+
19
+cd "$current_path"
13 20
\ No newline at end of file