Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Merge branch 'master' of https://github.com/robbyrussell/oh-my-zsh

  • Loading branch information...
commit f5041025844a2509f42e0bb19cb8d5418340e10c 2 parents e24230c + 7a41498
@fred-o fred-o authored
Showing with 495 additions and 90 deletions.
  1. +8 −0 README.textile
  2. +3 −1 lib/completion.zsh
  3. +2 −2 lib/functions.zsh
  4. +1 −1  lib/git.zsh
  5. +5 −8 lib/history.zsh
  6. +7 −3 lib/termsupport.zsh
  7. +21 −9 oh-my-zsh.sh
  8. +1 −0  plugins/archlinux/archlinux.plugin.zsh
  9. +3 −1 plugins/autojump/autojump.plugin.zsh
  10. +20 −0 plugins/battery/battery.plugin.zsh
  11. +2 −2 plugins/bundler/bundler.plugin.zsh
  12. +37 −5 plugins/debian/debian.plugin.zsh
  13. +1 −0  plugins/git/git.plugin.zsh
  14. +14 −0 plugins/jake-node/jake-node.plugin.zsh
  15. +14 −7 plugins/knife/_knife
  16. +46 −18 plugins/pip/_pip
  17. +2 −0  plugins/rails3/rails3.plugin.zsh
  18. +44 −0 plugins/rbenv/rbenv.plugin.zsh
  19. +1 −1  plugins/ruby/ruby.plugin.zsh
  20. +1 −1  plugins/rvm/rvm.plugin.zsh
  21. +64 −0 plugins/sprunge/sprunge.plugin.zsh
  22. +13 −0 plugins/symfony2/symfony2.plugin.zsh
  23. +11 −0 plugins/terminalapp/terminalapp.plugin.zsh
  24. +29 −0 plugins/wakeonlan/README
  25. +4 −0 plugins/wakeonlan/_wake
  26. +14 −0 plugins/wakeonlan/wakeonlan.plugin.zsh
  27. +5 −0 templates/zshrc.zsh-template
  28. +5 −2 themes/apple.zsh-theme
  29. +2 −0  themes/gallois.zsh-theme
  30. +16 −12 themes/jonathan.zsh-theme
  31. +4 −1 themes/kolo.zsh-theme
  32. +24 −0 themes/mh.zsh-theme
  33. +9 −0 themes/pygmalion.zsh-theme
  34. +6 −0 themes/sammy.zsh-theme
  35. +23 −0 themes/suvash.zsh-theme
  36. +7 −0 themes/zhann.zsh-theme
  37. +17 −7 tools/check_for_upgrade.sh
  38. +9 −9 tools/upgrade.sh
View
8 README.textile
@@ -8,6 +8,14 @@ h2. Setup
h3. The automatic installer... (do you trust me?)
+You can install this via the command line with either `curl` or `wget`.
+
+h4. via `curl`
+
+@curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | sh@
+
+h4. via `wget`
+
@wget --no-check-certificate https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh@
h3. The manual way
View
4 lib/completion.zsh
@@ -32,12 +32,14 @@ zstyle ':completion:*:cd:*' tag-order local-directories directory-stack path-dir
cdpath=(.)
# use /etc/hosts and known_hosts for hostname completion
+[ -r /etc/ssh/ssh_known_hosts ] && _global_ssh_hosts=(${${${${(f)"$(</etc/ssh/ssh_known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _ssh_hosts=()
[ -r ~/.ssh/known_hosts ] && _ssh_hosts=(${${${${(f)"$(<$HOME/.ssh/known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _ssh_hosts=()
[ -r /etc/hosts ] && : ${(A)_etc_hosts:=${(s: :)${(ps:\t:)${${(f)~~"$(</etc/hosts)"}%%\#*}##[:blank:]#[^[:blank:]]#}}} || _etc_hosts=()
hosts=(
+ "$_global_ssh_hosts[@]"
"$_ssh_hosts[@]"
"$_etc_hosts[@]"
- `hostname`
+ "$HOST"
localhost
)
zstyle ':completion:*:hosts' hosts $hosts
View
4 lib/functions.zsh
@@ -3,11 +3,11 @@ function zsh_stats() {
}
function uninstall_oh_my_zsh() {
- /bin/sh $ZSH/tools/uninstall.sh
+ /usr/bin/env ZSH=$ZSH /bin/sh $ZSH/tools/uninstall.sh
}
function upgrade_oh_my_zsh() {
- /bin/sh $ZSH/tools/upgrade.sh
+ /usr/bin/env ZSH=$ZSH /bin/sh $ZSH/tools/upgrade.sh
}
function take() {
View
2  lib/git.zsh
@@ -6,7 +6,7 @@ function git_prompt_info() {
# Checks if working tree is dirty
parse_git_dirty() {
- if [[ -n $(git status -s 2> /dev/null) ]]; then
+ if [[ -n $(git status -s --ignore-submodules=dirty 2> /dev/null) ]]; then
echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
else
echo "$ZSH_THEME_GIT_PROMPT_CLEAN"
View
13 lib/history.zsh
@@ -3,14 +3,11 @@ HISTFILE=$HOME/.zsh_history
HISTSIZE=10000
SAVEHIST=10000
-setopt hist_ignore_dups # ignore duplication command history list
-setopt share_history # share command history data
-
-setopt hist_verify
-setopt inc_append_history
+setopt append_history
setopt extended_history
setopt hist_expire_dups_first
+setopt hist_ignore_dups # ignore duplication command history list
setopt hist_ignore_space
-
-setopt SHARE_HISTORY
-setopt APPEND_HISTORY
+setopt hist_verify
+setopt inc_append_history
+setopt share_history # share command history data
View
10 lib/termsupport.zsh
@@ -4,7 +4,7 @@
#Limited support for Apple Terminal (Terminal can't set window or tab separately)
function title {
[ "$DISABLE_AUTO_TITLE" != "true" ] || return
- if [[ "$TERM" == screen* ]]; then
+ if [[ "$TERM" == screen* ]]; then
print -Pn "\ek$1:q\e\\" #set screen hardstatus, usually truncated at 20 chars
elif [[ "$TERM" == xterm* ]] || [[ $TERM == rxvt* ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then
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
ZSH_THEME_TERM_TITLE_IDLE="%n@%m: %~"
#Appears when you have the prompt
-function precmd {
+function omz_termsupport_precmd {
title $ZSH_THEME_TERM_TAB_TITLE_IDLE $ZSH_THEME_TERM_TITLE_IDLE
}
#Appears at the beginning of (and during) of command execution
-function preexec {
+function omz_termsupport_preexec {
emulate -L zsh
setopt extended_glob
local CMD=${1[(wr)^(*=*|sudo|ssh|-*)]} #cmd name only, or if this is sudo or ssh, the next cmd
title "$CMD" "%100>...>$2%<<"
}
+
+autoload -U add-zsh-hook
+add-zsh-hook precmd omz_termsupport_precmd
+add-zsh-hook preexec omz_termsupport_preexec
View
30 oh-my-zsh.sh
@@ -13,20 +13,27 @@ fpath=($ZSH/functions $ZSH/completions $fpath)
# TIP: Add files you don't want in git to .gitignore
for config_file ($ZSH/lib/*.zsh) source $config_file
-# Add all defined plugins to fpath
+# Set ZSH_CUSTOM to the path where your custom config files
+# and plugins exists, or else we will use the default custom/
+if [[ -z "$ZSH_CUSTOM" ]]; then
+ ZSH_CUSTOM="$ZSH/custom"
+fi
+
+# Add all defined plugins to fpath. This must be done
+# before running compinit.
plugin=${plugin:=()}
-for plugin ($plugins) fpath=($ZSH/plugins/$plugin $fpath)
+for plugin ($plugins); do
+ if [ -f $ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh ]; then
+ fpath=($ZSH_CUSTOM/plugins/$plugin $fpath)
+ elif [ -f $ZSH/plugins/$plugin/$plugin.plugin.zsh ]; then
+ fpath=($ZSH/plugins/$plugin $fpath)
+ fi
+done
# Load and run compinit
autoload -U compinit
compinit -i
-# Set ZSH_CUSTOM to the path where your custom config files
-# and plugins exists, or else we will use the default custom/
-if [ "$ZSH_CUSTOM" = "" ]
-then
- ZSH_CUSTOM="$ZSH/custom"
-fi
# Load all of the plugins that were defined in ~/.zshrc
for plugin ($plugins); do
@@ -52,7 +59,12 @@ then
else
if [ ! "$ZSH_THEME" = "" ]
then
- source "$ZSH/themes/$ZSH_THEME.zsh-theme"
+ if [ -f "$ZSH/custom/$ZSH_THEME.zsh-theme" ]
+ then
+ source "$ZSH/custom/$ZSH_THEME.zsh-theme"
+ else
+ source "$ZSH/themes/$ZSH_THEME.zsh-theme"
+ fi
fi
fi
View
1  plugins/archlinux/archlinux.plugin.zsh
@@ -9,6 +9,7 @@ if [[ -x `which yaourt` ]]; then
alias yaconf='yaourt -C' # Fix all configuration files with vimdiff
# Pacman - https://wiki.archlinux.org/index.php/Pacman_Tips
alias yaupg='yaourt -Syu' # Synchronize with repositories before upgrading packages that are out of date on the local system.
+ alias yasu='yaourt --sucre' # Same as yaupg, but without confirmation
alias yain='yaourt -S' # Install specific package(s) from the repositories
alias yains='yaourt -U' # Install specific package not from the repositories but from a file
alias yare='yaourt -R' # Remove the specified package(s), retaining its configuration(s) and required dependencies
View
4 plugins/autojump/autojump.plugin.zsh
@@ -1,3 +1,5 @@
-if [ -f `brew --prefix`/etc/autojump ]; then
+if [ -f /opt/local/etc/profile.d/autojump.sh ]; then
+ . /opt/local/etc/profile.d/autojump.sh
+elif [ -f `brew --prefix`/etc/autojump ]; then
. `brew --prefix`/etc/autojump
fi
View
20 plugins/battery/battery.plugin.zsh
@@ -0,0 +1,20 @@
+if [[ $(acpi 2&>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]] ; then
+ function battery_pct_remaining() { echo "$(acpi | cut -f2 -d ',' | tr -cd '[:digit:]')" }
+ function battery_time_remaining() { echo $(acpi | cut -f3 -d ',') }
+ function battery_pct_prompt() {
+ b=$(battery_pct_remaining)
+ if [ $b -gt 50 ] ; then
+ color='green'
+ elif [ $b -gt 20 ] ; then
+ color='yellow'
+ else
+ color='red'
+ fi
+ echo "%{$fg[$color]%}[$(battery_pct_remaining)%%]%{$reset_color%}"
+ }
+else
+ error_msg='no battery'
+ function battery_pct_remaining() { echo $error_msg }
+ function battery_time_remaining() { echo $error_msg }
+ function battery_pct_prompt() { echo '' }
+fi
View
4 plugins/bundler/bundler.plugin.zsh
@@ -10,7 +10,7 @@ alias bu="bundle update"
# The following is based on https://github.com/gma/bundler-exec
-bundled_commands=(cap capify cucumber foreman guard heroku nanoc rackup rails rainbows rake rspec ruby shotgun spec spork thin unicorn unicorn_rails)
+bundled_commands=(annotate cap capify cucumber foreman guard heroku nanoc rackup rainbows rake rspec ruby shotgun spec spork thin unicorn unicorn_rails)
## Functions
@@ -41,6 +41,6 @@ for cmd in $bundled_commands; do
alias $cmd=bundled_$cmd
if which _$cmd > /dev/null 2>&1; then
- compdef _$cmd bundled_$cmd
+ compdef _$cmd bundled_$cmd=$cmd
fi
done
View
42 plugins/debian/debian.plugin.zsh
@@ -54,7 +54,7 @@ if [[ $use_sudo -eq 1 ]]; then
# apt-get only
alias ads="sudo $apt_pref dselect-upgrade"
-
+
# Install all .deb files in the current directory.
# Warning: you will need to put the glob in single quotes if you use:
# glob_subst
@@ -113,9 +113,6 @@ alias allpkgs='aptitude search -F "%p" --disable-columns ~i'
alias mydeb='time dpkg-buildpackage -rfakeroot -us -uc'
-
-
-
# Functions #################################################################
# create a simple script that can be used to 'duplicate' a system
apt-copy() {
@@ -132,11 +129,46 @@ apt-copy() {
chmod +x apt-copy.sh
}
+# Prints apt history
+# Usage:
+# apt-history install
+# apt-history upgrade
+# apt-history remove
+# apt-history rollback
+# apt-history list
+# Based On: http://linuxcommando.blogspot.com/2008/08/how-to-show-apt-log-history.html
+apt-history () {
+ case "$1" in
+ install)
+ zgrep --no-filename 'install ' $(ls -rt /var/log/dpkg*)
+ ;;
+ upgrade|remove)
+ zgrep --no-filename $1 $(ls -rt /var/log/dpkg*)
+ ;;
+ rollback)
+ zgrep --no-filename upgrade $(ls -rt /var/log/dpkg*) | \
+ grep "$2" -A10000000 | \
+ grep "$3" -B10000000 | \
+ awk '{print $4"="$5}'
+ ;;
+ list)
+ zcat $(ls -rt /var/log/dpkg*)
+ ;;
+ *)
+ echo "Parameters:"
+ echo " install - Lists all packages that have been installed."
+ echo " upgrade - Lists all packages that have been upgraded."
+ echo " remove - Lists all packages that have been removed."
+ echo " rollback - Lists rollback information."
+ echo " list - Lists all contains of dpkg logs."
+ ;;
+ esac
+}
# Kernel-package building shortcut
kerndeb () {
# temporarily unset MAKEFLAGS ( '-j3' will fail )
- MAKEFLAGS=$( print - $MAKEFLAGS | perl -pe 's/-j\s*[\d]+//g' )
+ MAKEFLAGS=$( print - $MAKEFLAGS | perl -pe 's/-j\s*[\d]+//g' )
print '$MAKEFLAGS set to '"'$MAKEFLAGS'"
appendage='-custom' # this shows up in $ (uname -r )
revision=$(date +"%Y%m%d") # this shows up in the .deb file name
View
1  plugins/git/git.plugin.zsh
@@ -17,6 +17,7 @@ alias gca='git commit -v -a'
compdef _git gca=git-commit
alias gco='git checkout'
compdef _git gco=git-checkout
+alias gcm='git checkout master'
alias gb='git branch'
compdef _git gb=git-branch
alias gba='git branch -a'
View
14 plugins/jake-node/jake-node.plugin.zsh
@@ -0,0 +1,14 @@
+#---oh-my-zsh plugin : task Autocomplete for Jake tool---
+# Jake : https://github.com/mde/jake
+# Warning : Jakefile should have the right case : Jakefile or jakefile
+# Tested on : MacOSX 10.7 (Lion), Ubuntu 11.10
+# Author : Alexandre Lacheze (@al3xstrat)
+# Inspiration : http://weblog.rubyonrails.org/2006/3/9/fast-rake-task-completion-for-zsh
+
+function _jake () {
+ if [ -f Jakefile ]||[ -f jakefile ]; then
+ compadd `jake -T | cut -d " " -f 2 | sed -E "s/.\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"`
+ fi
+}
+
+compdef _jake jake
View
21 plugins/knife/_knife
@@ -26,7 +26,7 @@ _knife() {
case $state in
knifecmd)
- compadd -Q "$@" bootstrap client configure cookbook "cookbook site" "data bag" exec index node recipe role search ssh status windows $cloudproviders
+ compadd -Q "$@" bootstrap client configure cookbook "cookbook site" "data bag" exec environment index node recipe role search ssh status windows $cloudproviders
;;
knifesubcmd)
case $words[2] in
@@ -42,6 +42,9 @@ _knife() {
cookbook)
compadd -Q "$@" test list create download delete "metadata from" show "bulk delete" metadata upload
;;
+ environment)
+ compadd -Q "$@" list create delete edit show "from file"
+ ;;
node)
compadd -Q "$@" "from file" create show edit delete list run_list "bulk delete"
;;
@@ -138,27 +141,31 @@ _knife_options3() {
# The chef_x_remote functions use knife to get a list of objects of type x on the server
_chef_roles_remote() {
- (knife role list | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
+ (knife role list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
}
_chef_clients_remote() {
- (knife client list | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
+ (knife client list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
}
_chef_nodes_remote() {
- (knife node list | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
+ (knife node list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
}
_chef_cookbooks_remote() {
- (knife cookbook list | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
+ (knife cookbook list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
}
_chef_sitecookbooks_remote() {
- (knife cookbook site list | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
+ (knife cookbook site list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
}
_chef_data_bags_remote() {
- (knife data bag list | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
+ (knife data bag list --format json | grep \" | awk '{print $1}' | awk -F"," '{print $1}' | awk -F"\"" '{print $2}')
+}
+
+_chef_environments_remote() {
+ (knife environment list | awk '{print $1}')
}
# The chef_x_local functions use the knife config to find the paths of relevant objects x to be uploaded to the server
View
64 plugins/pip/_pip
@@ -3,30 +3,43 @@
# pip zsh completion, based on homebrew completion
+_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]'))
+ fi
+}
+
_pip_installed() {
- installed_pkgs=(`pip freeze`)
+ installed_pkgs=(`pip freeze | cut -d '=' -f 1`)
}
local -a _1st_arguments
_1st_arguments=(
- 'bundle:Create pybundles (archives containing multiple packages)'
- 'freeze:Output all currently installed packages (exact versions) to stdout'
- 'help:Show available commands'
- 'install:Install packages'
- 'search:Search PyPI'
- 'uninstall:Uninstall packages'
- 'unzip:Unzip individual packages'
- 'zip:Zip individual packages'
+ 'bundle:create pybundles (archives containing multiple packages)'
+ 'freeze:output all currently installed packages (exact versions) to stdout'
+ 'help:show available commands'
+ 'install:install packages'
+ 'search:search PyPI'
+ 'uninstall:uninstall packages'
+ 'unzip:unzip individual packages'
+ 'zip:zip individual packages'
)
local expl
-local -a pkgs installed_pkgs
+local -a all_pkgs installed_pkgs
_arguments \
- '(--version)--version[Show version number of program and exit]' \
- '(-v --verbose)'{-v,--verbose}'[Give more output]' \
- '(-q --quiet)'{-q,--quiet}'[Give less output]' \
- '(-h --help)'{-h,--help}'[Show help]' \
+ '(--version)--version[show version number of program and exit]' \
+ '(-h --help)'{-h,--help}'[show help]' \
+ '(-E --environment)'{-E,--environment}'[virtualenv environment to run pip in]' \
+ '(-s --enable-site-packages)'{-s,--enable-site-packages}'[include site-packages in virtualenv]' \
+ '(-v --verbose)'{-v,--verbose}'[give more output]' \
+ '(-q --quiet)'{-q,--quiet}'[give less output]' \
+ '(--log)--log[log file location]' \
+ '(--proxy)--proxy[proxy in form user:passwd@proxy.server:port]' \
+ '(--timeout)--timeout[socket timeout (default 15s)]' \
'*:: :->subcmds' && return 0
if (( CURRENT == 1 )); then
@@ -35,10 +48,25 @@ if (( CURRENT == 1 )); then
fi
case "$words[1]" in
- list)
- if [[ "$state" == forms ]]; then
- _pip_installed
- _requested installed_pkgs expl 'installed packages' compadd -a installed_pkgs
+ search)
+ _arguments \
+ '(--index)--index[base URL of Python Package Index]' ;;
+ freeze)
+ _arguments \
+ '(-l --local)'{-l,--local}'[report only virtualenv packages]' ;;
+ install)
+ _arguments \
+ '(-U --upgrade)'{-U,--upgrade}'[upgrade all packages to the newest available version]' \
+ '(-f --find-links)'{-f,--find-links}'[URL for finding packages]' \
+ '(--no-deps --no-dependencies)'{--no-deps,--no-dependencies}'[iIgnore package dependencies]' \
+ '(--no-install)--no-install[only download packages]' \
+ '(--no-download)--no-download[only install downloaded packages]' \
+ '(--install-option)--install-option[extra arguments to be supplied to the setup.py]' \
+ '1: :->packages' && return 0
+
+ if [[ "$state" == packages ]]; then
+ _pip_all
+ _wanted piplist expl 'packages' compadd -a piplist
fi ;;
uninstall)
_pip_installed
View
2  plugins/rails3/rails3.plugin.zsh
@@ -17,3 +17,5 @@ alias rp='_rails_command plugin'
alias rs='_rails_command server'
alias rsd='_rails_command server --debugger'
alias devlog='tail -f log/development.log'
+alias rdm='rake db:migrate'
+alias rdr='rake db:rollback'
View
44 plugins/rbenv/rbenv.plugin.zsh
@@ -0,0 +1,44 @@
+FOUND_RBENV=0
+for rbenvdir in "$HOME/.rbenv" "/usr/local/rbenv" "/opt/rbenv" ; do
+ if [ -d $rbenvdir/bin -a $FOUND_RBENV -eq 0 ] ; then
+ FOUND_RBENV=1
+ export RBENV_ROOT=$rbenvdir
+ export PATH=${rbenvdir}/bin:$PATH
+ eval "$(rbenv init -)"
+
+ alias rubies="rbenv versions"
+ alias gemsets="rbenv gemset list"
+
+ function current_ruby() {
+ echo "$(rbenv version-name)"
+ }
+
+ function current_gemset() {
+ echo "$(rbenv gemset active 2&>/dev/null | sed -e ":a" -e '$ s/\n/+/gp;N;b a' | head -n1)"
+ }
+
+ function gems {
+ local rbenv_path=$(rbenv prefix)
+ gem list $@ | sed \
+ -Ee "s/\([0-9\.]+( .+)?\)/$fg[blue]&$reset_color/g" \
+ -Ee "s|$(echo $rbenv_path)|$fg[magenta]\$rbenv_path$reset_color|g" \
+ -Ee "s/$current_ruby@global/$fg[yellow]&$reset_color/g" \
+ -Ee "s/$current_ruby$current_gemset$/$fg[green]&$reset_color/g"
+ }
+
+ function rbenv_prompt_info() {
+ if [[ -n $(current_gemset) ]] ; then
+ echo "$(current_ruby)@$(current_gemset)"
+ else
+ echo "$(current_ruby)"
+ fi
+ }
+ fi
+done
+unset rbenvdir
+
+if [ $FOUND_RBENV -eq 0 ] ; then
+ alias rubies='ruby -v'
+ function gemsets() { echo 'not supported' }
+ function rbenv_prompt_info() { echo "system: $(ruby -v | cut -f-2 -d ' ')" }
+fi
View
2  plugins/ruby/ruby.plugin.zsh
@@ -3,4 +3,4 @@
alias sgem='sudo gem'
# Find ruby file
-alias rfind='find . -name *.rb | xargs grep -n'
+alias rfind='find . -name "*.rb" | xargs grep -n'
View
2  plugins/rvm/rvm.plugin.zsh
@@ -37,7 +37,7 @@ function gems {
local current_gemset=`rvm-prompt g`
gem list $@ | sed \
- -Ee "s/\([0-9\.]+( .+)?\)/$fg[blue]&$reset_color/g" \
+ -Ee "s/\([0-9, \.]+( .+)?\)/$fg[blue]&$reset_color/g" \
-Ee "s|$(echo $rvm_path)|$fg[magenta]\$rvm_path$reset_color|g" \
-Ee "s/$current_ruby@global/$fg[yellow]&$reset_color/g" \
-Ee "s/$current_ruby$current_gemset$/$fg[green]&$reset_color/g"
View
64 plugins/sprunge/sprunge.plugin.zsh
@@ -0,0 +1,64 @@
+# Contributed and SLIGHTLY modded by Matt Parnell/ilikenwf <parwok -at- gmail>
+# Created by the blogger at the URL below...I don't know where to find his/her name
+# Original found at http://www.shellperson.net/sprunge-pastebin-script/
+
+usage() {
+description | fmt -s >&2
+}
+
+description() {
+cat << HERE
+
+DESCRIPTION
+ Upload data and fetch URL from the pastebin http://sprunge.us
+
+USAGE
+ $0 filename.txt
+ $0 text string
+ $0 < filename.txt
+ piped_data | $0
+
+NOTES
+--------------------------------------------------------------------------
+* INPUT METHODS *
+$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.
+
+* PRECEDENCE *
+STDIN redirection has precedence, then piped input, then a filename as an argument, and finally text strings as an arguments.
+
+ EXAMPLE:
+ echo piped | "$0" arguments.txt < stdin_redirection.txt
+
+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.
+
+* FILENAMES *
+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.
+--------------------------------------------------------------------------
+
+HERE
+exit
+}
+
+sprunge() {
+ if [ -t 0 ]; then
+ echo Running interactively, checking for arguments... >&2
+ if [ "$*" ]; then
+ echo Arguments present... >&2
+ if [ -f "$*" ]; then
+ echo Uploading the contents of "$*"... >&2
+ cat "$*"
+ else
+ echo Uploading the text: \""$*"\"... >&2
+ echo "$*"
+ fi | curl -F 'sprunge=<-' http://sprunge.us
+ else
+ echo No arguments found, printing USAGE and exiting. >&2
+ usage
+ fi
+ else
+ echo Using input from a pipe or STDIN redirection... >&2
+ while read -r line ; do
+ echo $line
+ done | curl -F 'sprunge=<-' http://sprunge.us
+ fi
+}
View
13 plugins/symfony2/symfony2.plugin.zsh
@@ -0,0 +1,13 @@
+# Symfony2 basic command completion
+
+_symfony2_get_command_list () {
+ app/console --no-ansi | sed "1,/Available commands/d" | awk '/^ [a-z]+/ { print $1 }'
+}
+
+_symfony2 () {
+ if [ -f app/console ]; then
+ compadd `_symfony2_get_command_list`
+ fi
+}
+
+compdef _symfony2 app/console
View
11 plugins/terminalapp/terminalapp.plugin.zsh
@@ -0,0 +1,11 @@
+# Set Apple Terminal.app resume directory
+# based on this answer: http://superuser.com/a/315029
+
+function chpwd {
+ local SEARCH=' '
+ local REPLACE='%20'
+ local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"
+ printf '\e]7;%s\a' "$PWD_URL"
+}
+
+chpwd
View
29 plugins/wakeonlan/README
@@ -0,0 +1,29 @@
+This plugin provides a wrapper around the "wakeonlan" tool available from most
+distributions' package repositories, or from the following website:
+
+http://gsd.di.uminho.pt/jpo/software/wakeonlan/
+
+In order to use this wrapper, create the ~/.wakeonlan directory, and place in
+that directory one file for each device you would like to be able to wake. Give
+the file a name that describes the device, such as its hostname. Each file
+should contain a line with the mac address of the target device and the network
+broadcast address.
+
+For instance, there might be a file ~/.wakeonlan/leto with the following
+contents:
+
+00:11:22:33:44:55:66 192.168.0.255
+
+To wake that device, use the following command:
+
+# wake leto
+
+The available device names will be autocompleted, so:
+
+# wake <tab>
+
+...will suggest "leto", along with any other configuration files that were
+placed in the ~/.wakeonlan directory.
+
+For more information regarding the configuration file format, check the
+wakeonlan man page.
View
4 plugins/wakeonlan/_wake
@@ -0,0 +1,4 @@
+#compdef wake
+#autoload
+
+_arguments "1:device to wake:_files -W '$HOME/.wakeonlan'" && return 0
View
14 plugins/wakeonlan/wakeonlan.plugin.zsh
@@ -0,0 +1,14 @@
+function wake() {
+ local config_file="$HOME/.wakeonlan/$1"
+ if [[ ! -f "$config_file" ]]; then
+ echo "ERROR: There is no configuration file at \"$config_file\"."
+ return 1
+ fi
+
+ if (( ! $+commands[wakeonlan] )); then
+ echo "ERROR: Can't find \"wakeonlan\". Are you sure it's installed?"
+ return 1
+ fi
+
+ wakeonlan -f "$config_file"
+}
View
5 templates/zshrc.zsh-template
@@ -7,6 +7,10 @@ ZSH=$HOME/.oh-my-zsh
# time that oh-my-zsh is loaded.
ZSH_THEME="robbyrussell"
+# Example aliases
+# alias zshconfig="mate ~/.zshrc"
+# alias ohmyzsh="mate ~/.oh-my-zsh"
+
# Set to this to use case-sensitive completion
# CASE_SENSITIVE="true"
@@ -23,6 +27,7 @@ ZSH_THEME="robbyrussell"
# COMPLETION_WAITING_DOTS="true"
# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*)
+# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/
# Example format: plugins=(rails git textmate ruby lighthouse)
plugins=(git)
View
7 themes/apple.zsh-theme
@@ -2,7 +2,7 @@ function toon {
echo -n ""
}
-get_git_dirty() {
+get_git_dirty() {
git diff --quiet || echo '*'
}
@@ -18,9 +18,12 @@ zstyle ':vcs_info:*' formats \
zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{3}%r'
zstyle ':vcs_info:*' enable git cvs svn
-precmd () {
+theme_precmd () {
vcs_info
}
setopt prompt_subst
PROMPT='%{$fg[magenta]%}$(toon)%{$reset_color%} %~/ %{$reset_color%}${vcs_info_msg_0_}%{$reset_color%}'
+
+autoload -U add-zsh-hook
+add-zsh-hook precmd theme_precmd
View
2  themes/gallois.zsh-theme
@@ -14,6 +14,8 @@ git_custom_status() {
#RVM and git settings
if [[ -s ~/.rvm/scripts/rvm ]] ; then
RPS1='$(git_custom_status)%{$fg[red]%}[`~/.rvm/bin/rvm-prompt`]%{$reset_color%} $EPS1'
+else
+ RPS1='$(git_custom_status) $EPS1'
fi
PROMPT='%{$fg[cyan]%}[%~% ]%(?.%{$fg[green]%}.%{$fg[red]%})%B$%b '
View
28 themes/jonathan.zsh-theme
@@ -1,19 +1,19 @@
-function precmd {
+function theme_precmd {
local TERMWIDTH
(( TERMWIDTH = ${COLUMNS} - 1 ))
###
# Truncate the path if it's too long.
-
+
PR_FILLBAR=""
PR_PWDLEN=""
-
+
local promptsize=${#${(%):---(%n@%m:%l)---()--}}
local rubyprompt=`rvm_prompt_info`
local rubypromptsize=${#${rubyprompt}}
local pwdsize=${#${(%):-%~}}
-
+
if [[ "$promptsize + $rubypromptsize + $pwdsize" -gt $TERMWIDTH ]]; then
((PR_PWDLEN=$TERMWIDTH - $promptsize))
else
@@ -24,7 +24,7 @@ function precmd {
setopt extended_glob
-preexec () {
+theme_preexec () {
if [[ "$TERM" == "screen" ]]; then
local CMD=${1[(wr)^(*=*|sudo|-*)]}
echo -n "\ek$CMD\e\\"
@@ -69,7 +69,7 @@ setprompt () {
###
# See if we can use extended characters to look nicer.
-
+
typeset -A altchar
set -A altchar ${(s..)terminfo[acsc]}
PR_SET_CHARSET="%{$terminfo[enacs]%}"
@@ -81,10 +81,10 @@ setprompt () {
PR_LRCORNER=${altchar[j]:--}
PR_URCORNER=${altchar[k]:--}
-
+
###
# Decide if we need to set titlebar text.
-
+
case $TERM in
xterm*)
PR_TITLEBAR=$'%{\e]0;%(!.-=*[ROOT]*=- | .)%n@%m:%~ | ${COLUMNS}x${LINES} | %y\a%}'
@@ -96,8 +96,8 @@ setprompt () {
PR_TITLEBAR=''
;;
esac
-
-
+
+
###
# Decide whether to set a screen title
if [[ "$TERM" == "screen" ]]; then
@@ -105,8 +105,8 @@ setprompt () {
else
PR_STITLE=''
fi
-
-
+
+
###
# Finally, the prompt.
@@ -135,3 +135,7 @@ $PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_SHIFT_OUT$PR_NO_COLOUR '
}
setprompt
+
+autoload -U add-zsh-hook
+add-zsh-hook precmd theme_precmd
+add-zsh-hook preexec theme_preexec
View
5 themes/kolo.zsh-theme
@@ -7,7 +7,7 @@ zstyle ':vcs_info:*' unstagedstr '%F{yellow}●'
zstyle ':vcs_info:*' check-for-changes true
zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{11}%r'
zstyle ':vcs_info:*' enable git svn
-precmd () {
+theme_precmd () {
if [[ -z $(git ls-files --other --exclude-standard 2> /dev/null) ]] {
zstyle ':vcs_info:*' formats ' [%b%c%u%B%F{green}]'
} else {
@@ -19,3 +19,6 @@ precmd () {
setopt prompt_subst
PROMPT='%B%F{magenta}%c%B%F{green}${vcs_info_msg_0_}%B%F{magenta} %{$reset_color%}%% '
+
+autoload -U add-zsh-hook
+add-zsh-hook precmd theme_precmd
View
24 themes/mh.zsh-theme
@@ -0,0 +1,24 @@
+# mh theme
+# preview: http://cl.ly/1y2x0W0E3t2C0F29043z
+
+# features:
+# path is autoshortened to ~30 characters
+# displays git status (if applicable in current folder)
+# turns username green if superuser, otherwise it is white
+
+# if superuser make the username green
+if [ $UID -eq 0 ]; then NCOLOR="green"; else NCOLOR="white"; fi
+
+# prompt
+PROMPT='[%{$fg[$NCOLOR]%}%B%n%b%{$reset_color%}:%{$fg[red]%}%30<...<%~%<<%{$reset_color%}]%(!.#.$) '
+RPROMPT='$(git_prompt_info)'
+
+# git theming
+ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[gray]%}(%{$fg_no_bold[yellow]%}%B"
+ZSH_THEME_GIT_PROMPT_SUFFIX="%b%{$fg_bold[gray]%})%{$reset_color%} "
+ZSH_THEME_GIT_PROMPT_CLEAN=""
+ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg_bold[red]%}✱"
+
+# LS colors, made with http://geoff.greer.fm/lscolors/
+export LSCOLORS="Gxfxcxdxbxegedabagacad"
+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:'
View
9 themes/pygmalion.zsh-theme
@@ -0,0 +1,9 @@
+# Yay! High voltage and arrows!
+
+ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[green]%}"
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} "
+ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[yellow]%}⚡%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_CLEAN=""
+
+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%} '
+
View
6 themes/sammy.zsh-theme
@@ -0,0 +1,6 @@
+PROMPT='%{$fg[white]%}%c$(git_prompt_info)$ % %{$reset_color%}'
+
+ZSH_THEME_GIT_PROMPT_PREFIX="("
+ZSH_THEME_GIT_PROMPT_SUFFIX=""
+ZSH_THEME_GIT_PROMPT_DIRTY="*)"
+ZSH_THEME_GIT_PROMPT_CLEAN=")"
View
23 themes/suvash.zsh-theme
@@ -0,0 +1,23 @@
+function prompt_char {
+ git branch >/dev/null 2>/dev/null && echo '±' && return
+ hg root >/dev/null 2>/dev/null && echo 'Hg' && return
+ echo '○'
+}
+
+function virtualenv_info {
+ [ $VIRTUAL_ENV ] && echo '('`basename $VIRTUAL_ENV`') '
+}
+
+function collapse_pwd {
+ echo $(pwd | sed -e "s,^$HOME,~,")
+}
+
+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%}
+$(virtualenv_info)$(prompt_char) '
+
+
+ZSH_THEME_GIT_PROMPT_PREFIX=" on %{$fg[magenta]%}"
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[green]%}!"
+ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[green]%}?"
+ZSH_THEME_GIT_PROMPT_CLEAN=""
View
7 themes/zhann.zsh-theme
@@ -0,0 +1,7 @@
+PROMPT='%{$fg_bold[green]%}%p %{$fg[cyan]%}%c%{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'
+RPROMPT='%{$reset_color%} %{$fg[red]%}$(~/.rvm/bin/rvm-prompt i v g) %{$reset_color%}'
+
+ZSH_THEME_GIT_PROMPT_PREFIX=" (%{$fg[red]%}"
+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}✗%{$reset_color%}"
+ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%})"
View
24 tools/check_for_upgrade.sh
@@ -8,6 +8,12 @@ function _update_zsh_update() {
echo "LAST_EPOCH=$(_current_epoch)" > ~/.zsh-update
}
+function _upgrade_zsh() {
+ /usr/bin/env ZSH=$ZSH /bin/sh $ZSH/tools/upgrade.sh
+ # update the zsh file
+ _update_zsh_update
+}
+
if [ -f ~/.zsh-update ]
then
. ~/.zsh-update
@@ -19,17 +25,21 @@ then
epoch_diff=$(($(_current_epoch) - $LAST_EPOCH))
if [ $epoch_diff -gt 6 ]
then
- echo "[Oh My Zsh] Would you like to check for updates?"
- echo "Type Y to update oh-my-zsh: \c"
- read line
- if [ "$line" = Y ] || [ "$line" = y ]
+ if [ "$DISABLE_UPDATE_PROMPT" = "true" ]
then
- /usr/bin/env ZSH=$ZSH /bin/sh $ZSH/tools/upgrade.sh
- # update the zsh file
- _update_zsh_update
+ _upgrade_zsh
+ else
+ echo "[Oh My Zsh] Would you like to check for updates?"
+ echo "Type Y to update oh-my-zsh: \c"
+ read line
+ if [ "$line" = Y ] || [ "$line" = y ]
+ then
+ _upgrade_zsh
+ fi
fi
fi
else
# create the zsh file
_update_zsh_update
fi
+
View
18 tools/upgrade.sh
@@ -1,12 +1,12 @@
current_path=`pwd`
-echo -e "\033[0;34mUpgrading Oh My Zsh\033[0m"
+printf '\033[0;34m%s\033[0m\n' "Upgrading Oh My Zsh"
( cd $ZSH && git pull origin master )
-echo -e "\033[0;32m"' __ __ '"\033[0m"
-echo -e "\033[0;32m"' ____ / /_ ____ ___ __ __ ____ _____/ /_ '"\033[0m"
-echo -e "\033[0;32m"' / __ \/ __ \ / __ `__ \/ / / / /_ / / ___/ __ \ '"\033[0m"
-echo -e "\033[0;32m"'/ /_/ / / / / / / / / / / /_/ / / /_(__ ) / / / '"\033[0m"
-echo -e "\033[0;32m"'\____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/ '"\033[0m"
-echo -e "\033[0;32m"' /____/ '"\033[0m"
-echo -e "\033[0;34mHooray! Oh My Zsh has been updated and/or is at the current version.\033[0m"
-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"
+printf '\033[0;32m%s\033[0m\n' ' __ __ '
+printf '\033[0;32m%s\033[0m\n' ' ____ / /_ ____ ___ __ __ ____ _____/ /_ '
+printf '\033[0;32m%s\033[0m\n' ' / __ \/ __ \ / __ `__ \/ / / / /_ / / ___/ __ \ '
+printf '\033[0;32m%s\033[0m\n' '/ /_/ / / / / / / / / / / /_/ / / /_(__ ) / / / '
+printf '\033[0;32m%s\033[0m\n' '\____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/ '
+printf '\033[0;32m%s\033[0m\n' ' /____/ '
+printf '\033[0;34m%s\033[0m\n' 'Hooray! Oh My Zsh has been updated and/or is at the current version.'
+printf '\033[0;34m%s\033[1m%s\033[0m\n' 'To keep up on the latest, be sure to follow Oh My Zsh on twitter: ' 'http://twitter.com/ohmyzsh'
cd "$current_path"
Please sign in to comment.
Something went wrong with that request. Please try again.