From f294eeb57175f5ef86f903d41c84ecacd96fe00c Mon Sep 17 00:00:00 2001 From: Roman Kamyk Date: Sat, 2 Oct 2010 19:49:16 +0200 Subject: [PATCH 001/421] added rkj theme - xion-chiamiov-plus + hg from thomasjbradley --- themes/rkj.zsh-theme | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 themes/rkj.zsh-theme diff --git a/themes/rkj.zsh-theme b/themes/rkj.zsh-theme new file mode 100644 index 000000000..fa950b255 --- /dev/null +++ b/themes/rkj.zsh-theme @@ -0,0 +1,15 @@ +# user, host, full path, and time/date +# on two lines for easier vgrepping +# entry in a nice long thread on the Arch Linux forums: http://bbs.archlinux.org/viewtopic.php?pid=521888#p521888 + +function hg_prompt_info { + hg prompt --angle-brackets "\ +%{$reset_color%}>\ +%{$reset_color%}>\ +%{$fg[green]%}%{$reset_color%}< +patches: >" 2>/dev/null +} + +PROMPT=$'%{\e[0;34m%}%B┌─[%b%{\e[0m%}%{\e[1;32m%}%n%{\e[1;30m%}@%{\e[0m%}%{\e[0;36m%}%m%{\e[0;34m%}%B]%b%{\e[0m%} - %b%{\e[0;34m%}%B[%b%{\e[1;37m%}%~%{\e[0;34m%}%B]%b%{\e[0m%} - %{\e[0;34m%}%B[%b%{\e[0;33m%}'%D{"%Y-%m-%d %I:%M:%S"}%b$'%{\e[0;34m%}%B]%b%{\e[0m%} +%{\e[0;34m%}%B└─%B[%{\e[1;35m%}$%{\e[0;34m%}%B] <$(git_prompt_info)$(hg_prompt_info)>%{\e[0m%}%b ' +PS2=$' \e[0;34m%}%B>%{\e[0m%}%b ' From 57e0b57434eb7f3b7d0fe0ca4849478477404e43 Mon Sep 17 00:00:00 2001 From: Roman Kamyk Date: Fri, 19 Nov 2010 20:25:19 +0100 Subject: [PATCH 002/421] changes --- themes/rkj.zsh-theme | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/themes/rkj.zsh-theme b/themes/rkj.zsh-theme index fa950b255..af178b2b9 100644 --- a/themes/rkj.zsh-theme +++ b/themes/rkj.zsh-theme @@ -6,10 +6,24 @@ function hg_prompt_info { hg prompt --angle-brackets "\ %{$reset_color%}>\ %{$reset_color%}>\ -%{$fg[green]%}%{$reset_color%}< +%{$fg[red]%}%{$reset_color%}< patches: >" 2>/dev/null } +ZSH_THEME_GIT_PROMPT_ADDED="%{$fg[cyan]%}+" +ZSH_THEME_GIT_PROMPT_MODIFIED="%{$fg[yellow]%}✱" +ZSH_THEME_GIT_PROMPT_DELETED="%{$fg[red]%}✗" +ZSH_THEME_GIT_PROMPT_RENAMED="%{$fg[blue]%}➦" +ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg[magenta]%}✂" +ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[grey]%}✈" + +function mygit() { + ref=$(git symbolic-ref HEAD 2> /dev/null) || return + echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$( git_prompt_status )%{$reset_color%}$ZSH_THEME_GIT_PROMPT_SUFFIX" +} + PROMPT=$'%{\e[0;34m%}%B┌─[%b%{\e[0m%}%{\e[1;32m%}%n%{\e[1;30m%}@%{\e[0m%}%{\e[0;36m%}%m%{\e[0;34m%}%B]%b%{\e[0m%} - %b%{\e[0;34m%}%B[%b%{\e[1;37m%}%~%{\e[0;34m%}%B]%b%{\e[0m%} - %{\e[0;34m%}%B[%b%{\e[0;33m%}'%D{"%Y-%m-%d %I:%M:%S"}%b$'%{\e[0;34m%}%B]%b%{\e[0m%} -%{\e[0;34m%}%B└─%B[%{\e[1;35m%}$%{\e[0;34m%}%B] <$(git_prompt_info)$(hg_prompt_info)>%{\e[0m%}%b ' +%{\e[0;34m%}%B└─%B[%{\e[1;35m%}$%{\e[0;34m%}%B] <$(mygit)$(hg_prompt_info)>%{\e[0m%}%b ' PS2=$' \e[0;34m%}%B>%{\e[0m%}%b ' +RPROMPT='$(mygit)' + From d02a3912cfd52636ad547fe0b1357303b77584a8 Mon Sep 17 00:00:00 2001 From: Fredrik Appelberg Date: Wed, 1 Dec 2010 09:56:54 +0100 Subject: [PATCH 003/421] maven plugin --- plugins/mvn/mvn.plugin.zsh | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 plugins/mvn/mvn.plugin.zsh diff --git a/plugins/mvn/mvn.plugin.zsh b/plugins/mvn/mvn.plugin.zsh new file mode 100644 index 000000000..abd0da185 --- /dev/null +++ b/plugins/mvn/mvn.plugin.zsh @@ -0,0 +1,6 @@ +function listMavenCompletions { + reply=( + cli:execute cli:execute-phase archetype:generate compile clean install test test-compile deploy package cobertura:cobertura jetty:run gwt:run gwt:debug -DskipTests -Dmaven.test.skip=true -DarchetypeCatalog=http://tapestry.formos.com/maven-snapshot-repository -Dtest= `if [ -d ./src ] ; then find ./src -type f | grep -v svn | sed 's?.*/\([^/]*\)\..*?-Dtest=\1?' ; fi`); +} + +compctl -K listMavenCompletions mvn \ No newline at end of file From 8aec32b48bb88e980150a43586e7e02b9156e165 Mon Sep 17 00:00:00 2001 From: Allan Caffee Date: Mon, 7 Feb 2011 15:09:06 -0500 Subject: [PATCH 004/421] Add vagrant completion for individual VMs For multi-VM setups some commands take the name of a virtual machine. Read the Vagrantfile and offer suggestions. --- plugins/vagrant/_vagrant | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/plugins/vagrant/_vagrant b/plugins/vagrant/_vagrant index 483b29c53..9bed1e3c6 100644 --- a/plugins/vagrant/_vagrant +++ b/plugins/vagrant/_vagrant @@ -46,6 +46,11 @@ __box_list () _wanted application expl 'command' compadd $(command ls -1 $HOME/.vagrant/boxes 2>/dev/null| sed -e 's/ /\\ /g') } +__vm_list () +{ + _wanted application expl 'command' compadd $(command grep Vagrantfile -oe '^[^#]*\.vm\.define *:\([a-zA-Z0-9]\+\)' 2>/dev/null | cut -d: -f2) +} + __vagrant-box () { local curcontext="$curcontext" state line @@ -99,6 +104,8 @@ case $state in (box) __vagrant-box ;; + (up|provision|package|destroy|reload|ssh|halt|resume|status) + _arguments ':feature:__vm_list' esac ;; esac From 792e50c917b7c854fbcadbce10a895ab7fbaa7ec Mon Sep 17 00:00:00 2001 From: Fredrik Appelberg Date: Wed, 16 Feb 2011 10:40:51 +0100 Subject: [PATCH 005/421] mvn plugin --- plugins/mvn/mvn.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/mvn/mvn.plugin.zsh b/plugins/mvn/mvn.plugin.zsh index abd0da185..e8af2f49d 100644 --- a/plugins/mvn/mvn.plugin.zsh +++ b/plugins/mvn/mvn.plugin.zsh @@ -1,6 +1,6 @@ function listMavenCompletions { reply=( - cli:execute cli:execute-phase archetype:generate compile clean install test test-compile deploy package cobertura:cobertura jetty:run gwt:run gwt:debug -DskipTests -Dmaven.test.skip=true -DarchetypeCatalog=http://tapestry.formos.com/maven-snapshot-repository -Dtest= `if [ -d ./src ] ; then find ./src -type f | grep -v svn | sed 's?.*/\([^/]*\)\..*?-Dtest=\1?' ; fi`); + cli:execute cli:execute-phase archetype:generate generate-sources compile clean install test test-compile deploy package cobertura:cobertura jetty:run gwt:run gwt:debug -DskipTests -Dmaven.test.skip=true -DarchetypeCatalog=http://tapestry.formos.com/maven-snapshot-repository -Dtest= `if [ -d ./src ] ; then find ./src -type f | grep -v svn | sed 's?.*/\([^/]*\)\..*?-Dtest=\1?' ; fi`); } compctl -K listMavenCompletions mvn \ No newline at end of file From 48ab2ad6e261fc30caa7fe17bd4d3435100c7f3d Mon Sep 17 00:00:00 2001 From: Roman Kamyk Date: Tue, 22 Feb 2011 09:53:02 +0100 Subject: [PATCH 006/421] no hg & git status (sloooow) --- themes/rkj.zsh-theme | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/themes/rkj.zsh-theme b/themes/rkj.zsh-theme index af178b2b9..4b49a2a09 100644 --- a/themes/rkj.zsh-theme +++ b/themes/rkj.zsh-theme @@ -23,7 +23,9 @@ function mygit() { } PROMPT=$'%{\e[0;34m%}%B┌─[%b%{\e[0m%}%{\e[1;32m%}%n%{\e[1;30m%}@%{\e[0m%}%{\e[0;36m%}%m%{\e[0;34m%}%B]%b%{\e[0m%} - %b%{\e[0;34m%}%B[%b%{\e[1;37m%}%~%{\e[0;34m%}%B]%b%{\e[0m%} - %{\e[0;34m%}%B[%b%{\e[0;33m%}'%D{"%Y-%m-%d %I:%M:%S"}%b$'%{\e[0;34m%}%B]%b%{\e[0m%} -%{\e[0;34m%}%B└─%B[%{\e[1;35m%}$%{\e[0;34m%}%B] <$(mygit)$(hg_prompt_info)>%{\e[0m%}%b ' +%{\e[0;34m%}%B└─%B[%{\e[1;35m%}$%{\e[0;34m%}%B]%{\e[0m%}%b ' +#PROMPT=$'%{\e[0;34m%}%B┌─[%b%{\e[0m%}%{\e[1;32m%}%n%{\e[1;30m%}@%{\e[0m%}%{\e[0;36m%}%m%{\e[0;34m%}%B]%b%{\e[0m%} - %b%{\e[0;34m%}%B[%b%{\e[1;37m%}%~%{\e[0;34m%}%B]%b%{\e[0m%} - %{\e[0;34m%}%B[%b%{\e[0;33m%}'%D{"%Y-%m-%d %I:%M:%S"}%b$'%{\e[0;34m%}%B]%b%{\e[0m%} +#%{\e[0;34m%}%B└─%B[%{\e[1;35m%}$%{\e[0;34m%}%B] <$(mygit)$(hg_prompt_info)>%{\e[0m%}%b ' PS2=$' \e[0;34m%}%B>%{\e[0m%}%b ' -RPROMPT='$(mygit)' +#RPROMPT='$(mygit)' From 4144f4beea4e56231adeb3574d3516b35c3331cf Mon Sep 17 00:00:00 2001 From: Christopher Chow Date: Wed, 23 Feb 2011 03:05:25 +1100 Subject: [PATCH 007/421] Add tab completion to bundler plugin. --- plugins/bundler/_bundler | 82 ++++++++++++++++++++++++++++++ plugins/bundler/bundler.plugin.zsh | 4 ++ 2 files changed, 86 insertions(+) create mode 100644 plugins/bundler/_bundler diff --git a/plugins/bundler/_bundler b/plugins/bundler/_bundler new file mode 100644 index 000000000..5d22cac9a --- /dev/null +++ b/plugins/bundler/_bundler @@ -0,0 +1,82 @@ +#compdef bundle + +local curcontext="$curcontext" state line _gems _opts ret=1 + +_arguments -C -A "-v" -A "--version" \ + '(- 1 *)'{-v,--version}'[display version information]' \ + '1: :->cmds' \ + '*:: :->args' && ret=0 + +case $state in + cmds) + _values "bundle command" \ + "install[Install the gems specified by the Gemfile or Gemfile.lock]" \ + "update[Update dependencies to their latest versions]" \ + "package[Package the .gem files required by your application]" \ + "exec[Execute a script in the context of the current bundle]" \ + "config[Specify and read configuration options for bundler]" \ + "check[Determine whether the requirements for your application are installed]" \ + "list[Show all of the gems in the current bundle]" \ + "show[Show the source location of a particular gem in the bundle]" \ + "console[Start an IRB session in the context of the current bundle]" \ + "open[Open an installed gem in the editor]" \ + "viz[Generate a visual representation of your dependencies]" \ + "init[Generate a simple Gemfile, placed in the current directory]" \ + "gem[Create a simple gem, suitable for development with bundler]" \ + "help[Describe available tasks or one specific task]" + ret=0 + ;; + args) + case $line[1] in + help) + _values 'commands' \ + 'install' \ + 'update' \ + 'package' \ + 'exec' \ + 'config' \ + 'check' \ + 'list' \ + 'show' \ + 'console' \ + 'open' \ + 'viz' \ + 'init' \ + 'gem' \ + 'help' && ret=0 + ;; + install) + _arguments \ + '(--no-color)--no-color[disable colorization in output]' \ + '(--local)--local[do not attempt to connect to rubygems.org]' \ + '(--quiet)--quiet[only output warnings and errors]' \ + '(--gemfile)--gemfile=-[use the specified gemfile instead of Gemfile]:gemfile' \ + '(--system)--system[install to the system location]' \ + '(--deployment)--deployment[install using defaults tuned for deployment environments]' \ + '(--frozen)--frozen[do not allow the Gemfile.lock to be updated after this install]' \ + '(--path)--path=-[specify a different path than the system default]:path:_files' \ + '(--binstubs)--binstubs=-[generate bin stubs for bundled gems to ./bin]:directory:_files' \ + '(--without)--without=-[exclude gems that are part of the specified named group]:groups' + ret=0 + ;; + exec) + _normal && ret=0 + ;; + (open|show) + _gems=( $(bundle show 2> /dev/null | sed -e '/^ \*/!d; s/^ \* \([^ ]*\) .*/\1/') ) + if [[ $_gems != "" ]]; then + _values 'gems' $_gems && ret=0 + fi + ;; + *) + _opts=( $(bundle help $line[1] | sed -e '/^ \[-/!d; s/^ \[\(-[^=]*\)=.*/\1/') ) + _opts+=( $(bundle help $line[1] | sed -e '/^ -/!d; s/^ \(-.\), \[\(-[^=]*\)=.*/\1 \2/') ) + if [[ $_opts != "" ]]; then + _values 'options' $_opts && ret=0 + fi + ;; + esac + ;; +esac + +return ret diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh index fb40e2cec..caa2f6771 100644 --- a/plugins/bundler/bundler.plugin.zsh +++ b/plugins/bundler/bundler.plugin.zsh @@ -1,3 +1,7 @@ +fpath=($ZSH/plugins/bundler $fpath) +autoload -U compinit +compinit -i + alias be="bundle exec" alias bi="bundle install" alias bu="bundle update" From fadd5f74ce205ddb14735354170150745ae42ca6 Mon Sep 17 00:00:00 2001 From: Stephen Eley Date: Tue, 22 Feb 2011 14:03:48 -0500 Subject: [PATCH 008/421] Crunch theme (by Stephen Eley) --- themes/crunch.zsh-theme | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 themes/crunch.zsh-theme diff --git a/themes/crunch.zsh-theme b/themes/crunch.zsh-theme new file mode 100644 index 000000000..7dd5816ee --- /dev/null +++ b/themes/crunch.zsh-theme @@ -0,0 +1,37 @@ +# CRUNCH - created from Steve Eley's cat waxing. +# Initially hacked from the Dallas theme. Thanks, Dallas Reedy. +# +# This theme assumes you do most of your oh-my-zsh'ed "colorful" work at a single machine, +# and eschews the standard space-consuming user and hostname info. Instead, only the +# things that vary in my own workflow are shown: +# +# * The time (not the date) +# * The RVM version (omitting the interpreter name if it's just 'ruby') +# * The current directory +# * The Git branch and its 'dirty' state +# +# Colors are at the top so you can mess with those separately if you like. +# For the most part I stuck with Dallas's. + +CRUNCH_BRACKET_COLOR="%{$fg[white]%}" +CRUNCH_TIME_COLOR="%{$fg[yellow]%}" +CRUNCH_RVM_COLOR="%{$fg[magenta]%}" +CRUNCH_DIR_COLOR="%{$fg[cyan]%}" +CRUNCH_GIT_BRANCH_COLOR="%{$fg[green]%}" +CRUNCH_GIT_CLEAN_COLOR="%{$fg[green]%}" +CRUNCH_GIT_DIRTY_COLOR="%{$fg[red]%}" + +# These Git variables are used by the oh-my-zsh git_prompt_info helper: +ZSH_THEME_GIT_PROMPT_PREFIX="$CRUNCH_BRACKET_COLOR:$CRUNCH_GIT_BRANCH_COLOR" +ZSH_THEME_GIT_PROMPT_SUFFIX="" +ZSH_THEME_GIT_PROMPT_CLEAN=" $CRUNCH_GIT_CLEAN_COLOR✓" +ZSH_THEME_GIT_PROMPT_DIRTY=" $CRUNCH_GIT_DIRTY_COLOR✗" + +# Our elements: +CRUNCH_TIME_="$CRUNCH_BRACKET_COLOR{$CRUNCH_TIME_COLOR%T$CRUNCH_BRACKET_COLOR}%{$reset_color%}" +CRUNCH_RVM_="$CRUNCH_BRACKET_COLOR"["$CRUNCH_RVM_COLOR\$(~/.rvm/bin/rvm-prompt v g)$CRUNCH_BRACKET_COLOR"]"%{$reset_color%}" +CRUNCH_DIR_="$CRUNCH_DIR_COLOR%~\$(git_prompt_info) " +CRUNCH_PROMPT="$CRUNCH_BRACKET_COLOR➭ " + +# Put it all together! +PROMPT="$CRUNCH_TIME_$CRUNCH_RVM_$CRUNCH_DIR_$CRUNCH_PROMPT%{$reset_color%}" From d926a55872b5a12ab8b987e9d86c02358d0c825e Mon Sep 17 00:00:00 2001 From: Stephen Eley Date: Tue, 22 Feb 2011 14:38:37 -0500 Subject: [PATCH 009/421] Refined RVM prompt in Crunch theme --- themes/crunch.zsh-theme | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/themes/crunch.zsh-theme b/themes/crunch.zsh-theme index 7dd5816ee..2473cd230 100644 --- a/themes/crunch.zsh-theme +++ b/themes/crunch.zsh-theme @@ -6,7 +6,7 @@ # things that vary in my own workflow are shown: # # * The time (not the date) -# * The RVM version (omitting the interpreter name if it's just 'ruby') +# * The RVM version and gemset (omitting the 'ruby' name if it's MRI) # * The current directory # * The Git branch and its 'dirty' state # @@ -29,7 +29,7 @@ ZSH_THEME_GIT_PROMPT_DIRTY=" $CRUNCH_GIT_DIRTY_COLOR✗" # Our elements: CRUNCH_TIME_="$CRUNCH_BRACKET_COLOR{$CRUNCH_TIME_COLOR%T$CRUNCH_BRACKET_COLOR}%{$reset_color%}" -CRUNCH_RVM_="$CRUNCH_BRACKET_COLOR"["$CRUNCH_RVM_COLOR\$(~/.rvm/bin/rvm-prompt v g)$CRUNCH_BRACKET_COLOR"]"%{$reset_color%}" +CRUNCH_RVM_="$CRUNCH_BRACKET_COLOR"["$CRUNCH_RVM_COLOR\${\$(~/.rvm/bin/rvm-prompt i v g)#ruby-}$CRUNCH_BRACKET_COLOR"]"%{$reset_color%}" CRUNCH_DIR_="$CRUNCH_DIR_COLOR%~\$(git_prompt_info) " CRUNCH_PROMPT="$CRUNCH_BRACKET_COLOR➭ " From 0504a01012b88e6eb74040ed599bddf29163fd69 Mon Sep 17 00:00:00 2001 From: Fredrik Appelberg Date: Mon, 7 Mar 2011 13:49:30 +0100 Subject: [PATCH 010/421] .gitignore --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 8d19d100c..2cf593269 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ locals.zsh log/.zsh_history projects.zsh custom/* -!custom/example.zsh \ No newline at end of file +!custom/example.zshcache +cache/ From c2e8bed253d25699f826fd7b65d965944b42a21c Mon Sep 17 00:00:00 2001 From: Fredrik Appelberg Date: Mon, 7 Mar 2011 14:22:06 +0100 Subject: [PATCH 011/421] Added a plugin for GNU Screen. --- plugins/screen/screen.plugin.zsh | 54 ++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 plugins/screen/screen.plugin.zsh diff --git a/plugins/screen/screen.plugin.zsh b/plugins/screen/screen.plugin.zsh new file mode 100644 index 000000000..ba7ac67e7 --- /dev/null +++ b/plugins/screen/screen.plugin.zsh @@ -0,0 +1,54 @@ +# if using GNU screen, let the zsh tell screen what the title and hardstatus +# of the tab window should be. +if [[ $TERM == "screen" ]]; then + if [[ $_GET_PATH == '' ]]; then + _GET_PATH='echo $PWD | sed "s/^\/Users\//~/;s/^~$USER/~/"' + fi + if [[ $_GET_HOST == '' ]]; then + _GET_HOST='echo $HOST | sed "s/\..*//"' + fi + + # use the current user as the prefix of the current tab title + TAB_TITLE_PREFIX='"`'$_GET_HOST'`:`'$_GET_PATH' | sed "s:..*/::"`$PROMPT_CHAR"' + # when at the shell prompt, show a truncated version of the current path (with + # standard ~ replacement) as the rest of the title. + TAB_TITLE_PROMPT='$SHELL:t' + # when running a command, show the title of the command as the rest of the + # title (truncate to drop the path to the command) + TAB_TITLE_EXEC='$cmd[1]:t' + + # use the current path (with standard ~ replacement) in square brackets as the + # prefix of the tab window hardstatus. + TAB_HARDSTATUS_PREFIX='"[`'$_GET_PATH'`] "' + # when at the shell prompt, use the shell name (truncated to remove the path to + # the shell) as the rest of the title + TAB_HARDSTATUS_PROMPT='$SHELL:t' + # when running a command, show the command name and arguments as the rest of + # the title + TAB_HARDSTATUS_EXEC='$cmd' + + # tell GNU screen what the tab window title ($1) and the hardstatus($2) should be + function screen_set() + { + # set the tab window title (%t) for screen + print -nR $'\033k'$1$'\033'\\\ + + # set hardstatus of tab window (%h) for screen + print -nR $'\033]0;'$2$'\a' + } + # called by zsh before executing a command + function preexec() + { + local -a cmd; cmd=(${(z)1}) # the command string + eval "tab_title=$TAB_TITLE_PREFIX:$TAB_TITLE_EXEC" + eval "tab_hardstatus=$TAB_HARDSTATUS_PREFIX:$TAB_HARDSTATUS_EXEC" + screen_set $tab_title $tab_hardstatus + } + # called by zsh before showing the prompt + function precmd() + { + eval "tab_title=$TAB_TITLE_PREFIX:$TAB_TITLE_PROMPT" + eval "tab_hardstatus=$TAB_HARDSTATUS_PREFIX:$TAB_HARDSTATUS_PROMPT" + screen_set $tab_title $tab_hardstatus + } +fi \ No newline at end of file From d807221f607cc7ef02e17a9aa60b1f5f18a886ab Mon Sep 17 00:00:00 2001 From: Fredrik Appelberg Date: Mon, 7 Mar 2011 14:36:12 +0100 Subject: [PATCH 012/421] fix to avoid parse errors if $TERM is empty --- lib/termsupport.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index e1e536690..d7c2b9def 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -5,7 +5,7 @@ function title { if [[ "$TERM" == "screen" ]]; then print -Pn "\ek$1\e\\" #set screen hardstatus, usually truncated at 20 chars - elif [[ ($TERM =~ "^xterm") ]] || [[ ($TERM == "rxvt") ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then + elif [[ ("$TERM" =~ "^xterm") ]] || [[ ("$TERM" == "rxvt") ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then print -Pn "\e]2;$2\a" #set window name print -Pn "\e]1;$1\a" #set icon (=tab) name (will override window name on broken terminal) fi From f1af41589960f7fc98d270c70a80b351b703e53e Mon Sep 17 00:00:00 2001 From: Fredrik Appelberg Date: Wed, 9 Mar 2011 12:19:01 +0100 Subject: [PATCH 013/421] figuring out home dir on unix systems as well --- plugins/screen/screen.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/screen/screen.plugin.zsh b/plugins/screen/screen.plugin.zsh index ba7ac67e7..98178e807 100644 --- a/plugins/screen/screen.plugin.zsh +++ b/plugins/screen/screen.plugin.zsh @@ -2,7 +2,7 @@ # of the tab window should be. if [[ $TERM == "screen" ]]; then if [[ $_GET_PATH == '' ]]; then - _GET_PATH='echo $PWD | sed "s/^\/Users\//~/;s/^~$USER/~/"' + _GET_PATH='echo $PWD | sed "s/^\/Users\//~/;s/^\/home\//~/;s/^~$USER/~/"' fi if [[ $_GET_HOST == '' ]]; then _GET_HOST='echo $HOST | sed "s/\..*//"' From 2d5412e99be6d9fab50169ad0cf290e022fc6e9b Mon Sep 17 00:00:00 2001 From: James Smith Date: Sat, 19 Mar 2011 17:50:24 -0700 Subject: [PATCH 014/421] Added new function git_remote_status to check if we are ahead, behind or diverged from the remote branch --- lib/git.zsh | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/lib/git.zsh b/lib/git.zsh index 8512de8a4..75367f877 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -4,6 +4,7 @@ function git_prompt_info() { echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX" } +# get dirty status of the current working tree parse_git_dirty () { if [[ -n $(git status -s 2> /dev/null) ]]; then echo "$ZSH_THEME_GIT_PROMPT_DIRTY" @@ -12,6 +13,26 @@ parse_git_dirty () { fi } +# get the difference between the local and remote branches +git_remote_status() { + remote=${$(git rev-parse --verify ${hook_com[branch]}@{upstream} --symbolic-full-name 2>/dev/null)/refs\/remotes\/} + if [[ -n ${remote} ]] ; then + ahead=$(git rev-list ${hook_com[branch]}@{upstream}..HEAD 2>/dev/null | wc -l) + behind=$(git rev-list HEAD..${hook_com[branch]}@{upstream} 2>/dev/null | wc -l) + + if [ $ahead -eq 0 ] && [ $behind -gt 0 ] + then + echo "$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE" + elif [ $ahead -gt 0 ] && [ $behind -eq 0 ] + then + echo "$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE" + elif [ $ahead -gt 0 ] && [ $behind -gt 0 ] + then + echo "$ZSH_THEME_GIT_PROMPT_DIVERGED_REMOTE" + fi + fi +} + # get the status of the working tree git_prompt_status() { INDEX=$(git status --porcelain 2> /dev/null) From a15a8c4a98bc1aff024c3ef44dec48309ff4f90b Mon Sep 17 00:00:00 2001 From: James Smith Date: Sat, 19 Mar 2011 17:51:22 -0700 Subject: [PATCH 015/421] New theme 'intheloop' which demonstrates the git_remote_status function --- themes/intheloop.zsh-theme | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 themes/intheloop.zsh-theme diff --git a/themes/intheloop.zsh-theme b/themes/intheloop.zsh-theme new file mode 100644 index 000000000..c4736422d --- /dev/null +++ b/themes/intheloop.zsh-theme @@ -0,0 +1,18 @@ +# ZSH theme by James Smith (http://loopj.com) +# A multiline prompt with username, hostname, full path, return status, git branch, git dirty status, git remote status + +local return_status="%{$fg[red]%}%(?..⏎)%{$reset_color%}" + +PROMPT=' +%{$fg_bold[grey]%}[%{$reset_color%}%{$fg_bold[green]%}%n@%m%{$reset_color%}%{$fg_bold[grey]%}]%{$reset_color%} %{$fg_bold[blue]%}%10c%{$reset_color%} $(git_prompt_info) $(git_remote_status) +%{$fg_bold[cyan]%}❯%{$reset_color%} ' + +RPROMPT='${return_status}%{$reset_color%}' + +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[grey]%}(%{$fg[red]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[grey]%}) %{$fg[yellow]%}⚡%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[grey]%})" +ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE="%{$fg_bold[magenta]%}↓%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE="%{$fg_bold[magenta]%}↑%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIVERGED_REMOTE="%{$fg_bold[magenta]%}↕%{$reset_color%}" \ No newline at end of file From e8a7a31ef66093f1b1ab034e84e01a147fa8b28a Mon Sep 17 00:00:00 2001 From: Lorrin Nelson Date: Mon, 7 Feb 2011 23:21:46 -0800 Subject: [PATCH 016/421] Make command-not-found no-op when support not available (e.g. not on Ubuntu) --- plugins/command-not-found/command-not-found.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/command-not-found/command-not-found.plugin.zsh b/plugins/command-not-found/command-not-found.plugin.zsh index 5ab03d5a9..567da1b45 100644 --- a/plugins/command-not-found/command-not-found.plugin.zsh +++ b/plugins/command-not-found/command-not-found.plugin.zsh @@ -2,4 +2,4 @@ # as seen in http://www.porcheron.info/command-not-found-for-zsh/ # this is installed in Ubuntu -source /etc/zsh_command_not_found +[[ -e /etc/zsh_command_not_found ]] && source /etc/zsh_command_not_found From 911837c48fc6387daa341b3cc5be21b1b1cade57 Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Wed, 13 Apr 2011 00:30:45 +0200 Subject: [PATCH 017/421] github plugin: check for `ruby`. I've run into the issue where a stripped down container had no Ruby installed, which caused `hub` to fail. Therefore I've added an extra check to verify that `ruby` is in the commands list before setting up this alias/function. --- plugins/github/github.plugin.zsh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/plugins/github/github.plugin.zsh b/plugins/github/github.plugin.zsh index 8d4580654..18fff1755 100644 --- a/plugins/github/github.plugin.zsh +++ b/plugins/github/github.plugin.zsh @@ -1,6 +1,5 @@ -# hub alias from defunkt -# https://github.com/defunkt/hub -if [ "$commands[(I)hub]" ]; then +# Setup hub function for git, if it is available; http://github.com/defunkt/hub +if [ "$commands[(I)hub]" ] && [ "$commands[(I)ruby]" ]; then # eval `hub alias -s zsh` function git(){hub "$@"} fi From 14a1877311bd0a9cf9c4db0e44e55da0fba77c5c Mon Sep 17 00:00:00 2001 From: Tristan Carel Date: Wed, 13 Apr 2011 16:48:47 +0200 Subject: [PATCH 018/421] New plugin git-svn installing git project git-svn-clone-externals --- plugins/git-svn/.gitignore | 1 + plugins/git-svn/git-svn.plugin.zsh | 10 ++++++++++ 2 files changed, 11 insertions(+) create mode 100644 plugins/git-svn/.gitignore create mode 100644 plugins/git-svn/git-svn.plugin.zsh diff --git a/plugins/git-svn/.gitignore b/plugins/git-svn/.gitignore new file mode 100644 index 000000000..bf5e1a14f --- /dev/null +++ b/plugins/git-svn/.gitignore @@ -0,0 +1 @@ +git-svn-clone-externals diff --git a/plugins/git-svn/git-svn.plugin.zsh b/plugins/git-svn/git-svn.plugin.zsh new file mode 100644 index 000000000..062d63e05 --- /dev/null +++ b/plugins/git-svn/git-svn.plugin.zsh @@ -0,0 +1,10 @@ + +if ! [ -d "$ZSH/plugins/git-svn/git-svn-clone-externals" ] ;then + git clone https://github.com/andrep/git-svn-clone-externals.git +fi +export PATH="$ZSH/plugins/git-svn/git-svn-clone-externals:$PATH" + +function git_svn_update { + (cd "$ZSH/plugins/git-svn/git-svn-clone-externals" && \ + git pull origin master) +} From d6c150decca10ba2a3566fe1dc1144f7e37f1c5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Di=C3=B3genes?= Date: Wed, 13 Apr 2011 11:55:24 -0300 Subject: [PATCH 019/421] adding python plugin with some aliases --- plugins/python/python.plugin.zsh | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 plugins/python/python.plugin.zsh diff --git a/plugins/python/python.plugin.zsh b/plugins/python/python.plugin.zsh new file mode 100644 index 000000000..fde54fa88 --- /dev/null +++ b/plugins/python/python.plugin.zsh @@ -0,0 +1,5 @@ +# Find python file +alias pyfind='find . -name "*.py"' + +# Remove python compiled byte-code +alias pycrm='rm `find . | grep -E "*.(pyc|pyo)$"`' From ca4dabb45e14d8cd38e07c4ffadf9473ceb2193b Mon Sep 17 00:00:00 2001 From: Tristan Carel Date: Wed, 13 Apr 2011 17:23:25 +0200 Subject: [PATCH 020/421] New tool require_tool.sh --- tools/require_tool.sh | 161 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 161 insertions(+) create mode 100755 tools/require_tool.sh diff --git a/tools/require_tool.sh b/tools/require_tool.sh new file mode 100755 index 000000000..42da2ccf9 --- /dev/null +++ b/tools/require_tool.sh @@ -0,0 +1,161 @@ +__require_tool_version_compare () +{ + ( + # Locally ignore failures, otherwise we'll exit whenever $1 and $2 + # are not equal! + set +e + +awk_strverscmp=' + # Use only awk features that work with 7th edition Unix awk (1978). + # My, what an old awk you have, Mr. Solaris! + END { + while (length(v1) || length(v2)) { + # Set d1 to be the next thing to compare from v1, and likewise for d2. + # Normally this is a single character, but if v1 and v2 contain digits, + # compare them as integers and fractions as strverscmp does. + if (v1 ~ /^[0-9]/ && v2 ~ /^[0-9]/) { + # Split v1 and v2 into their leading digit string components d1 and d2, + # and advance v1 and v2 past the leading digit strings. + for (len1 = 1; substr(v1, len1 + 1) ~ /^[0-9]/; len1++) continue + for (len2 = 1; substr(v2, len2 + 1) ~ /^[0-9]/; len2++) continue + d1 = substr(v1, 1, len1); v1 = substr(v1, len1 + 1) + d2 = substr(v2, 1, len2); v2 = substr(v2, len2 + 1) + if (d1 ~ /^0/) { + if (d2 ~ /^0/) { + # Compare two fractions. + while (d1 ~ /^0/ && d2 ~ /^0/) { + d1 = substr(d1, 2); len1-- + d2 = substr(d2, 2); len2-- + } + if (len1 != len2 && ! (len1 && len2 && substr(d1, 1, 1) == substr(d2, 1, 1))) { + # The two components differ in length, and the common prefix + # contains only leading zeros. Consider the longer to be less. + d1 = -len1 + d2 = -len2 + } else { + # Otherwise, compare as strings. + d1 = "x" d1 + d2 = "x" d2 + } + } else { + # A fraction is less than an integer. + exit 1 + } + } else { + if (d2 ~ /^0/) { + # An integer is greater than a fraction. + exit 2 + } else { + # Compare two integers. + d1 += 0 + d2 += 0 + } + } + } else { + # The normal case, without worrying about digits. + if (v1 == "") d1 = v1; else { d1 = substr(v1, 1, 1); v1 = substr(v1,2) } + if (v2 == "") d2 = v2; else { d2 = substr(v2, 1, 1); v2 = substr(v2,2) } + } + if (d1 < d2) exit 1 + if (d1 > d2) exit 2 + } + } +' + awk "$awk_strverscmp" v1="$1" v2="$2" /dev/null + case $? in + 1) echo '<';; + 0) echo '=';; + 2) echo '>';; + esac + ) +} + + +__require_tool_fatal () +{ + echo $@ >/dev/stderr + return 1 +} + +# Usage: require_tool program version +# Returns: 0 if $1 version if greater equals than $2, 1 otherwise. +# In case of error, message is written on error output. +# +# Example: require_tool gcc 4.6 +# Use GCC environment variable if defined instead of lookup for the tool +# in the environment. +require_tool () +{ + envvar_name=$(echo $1 | tr '[:lower:]' '[:upper:]') + tool=$(printenv $envvar_name || echo $1) + local version=$($tool --version 2>/dev/null| \ + sed -n 's/.*[^0-9.]\([0-9][0-9.]*\).*/\1/p;q') + if test x"$version" = x ; then + echo "$tool is required" >/dev/stderr + return 1 + fi + case $(__require_tool_version_compare "$2" "$version") in + '>') + echo "$1 $2 or better is required: this is $tool $version" >/dev/stderr + return 1 + ;; + esac +} + +usage() { + cat < Date: Wed, 13 Apr 2011 17:24:44 +0200 Subject: [PATCH 021/421] Fix version parsing. Now working with command $ zsh --version --- tools/require_tool.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/require_tool.sh b/tools/require_tool.sh index 42da2ccf9..1fa77f77a 100755 --- a/tools/require_tool.sh +++ b/tools/require_tool.sh @@ -89,7 +89,7 @@ require_tool () envvar_name=$(echo $1 | tr '[:lower:]' '[:upper:]') tool=$(printenv $envvar_name || echo $1) local version=$($tool --version 2>/dev/null| \ - sed -n 's/.*[^0-9.]\([0-9][0-9.]*\).*/\1/p;q') + sed -n 's/.*[^0-9.]\([0-9]*\.[0-9.]*\).*/\1/p;q') if test x"$version" = x ; then echo "$tool is required" >/dev/stderr return 1 From 2fba4486bfa63cf2a4a11a34c94ce123127ef4c9 Mon Sep 17 00:00:00 2001 From: Tristan Carel Date: Wed, 13 Apr 2011 17:34:51 +0200 Subject: [PATCH 022/421] Add new plugin emacs, to take benefit of daemon capabilities of emacs >=23 --- plugins/emacs/emacs.plugin.zsh | 11 +++++++++++ plugins/emacs/emacsclient.sh | 10 ++++++++++ 2 files changed, 21 insertions(+) create mode 100644 plugins/emacs/emacs.plugin.zsh create mode 100755 plugins/emacs/emacsclient.sh diff --git a/plugins/emacs/emacs.plugin.zsh b/plugins/emacs/emacs.plugin.zsh new file mode 100644 index 000000000..bca79e70e --- /dev/null +++ b/plugins/emacs/emacs.plugin.zsh @@ -0,0 +1,11 @@ +# Use daemon capabilities of emacs 23 +if "$ZSH/tools/require_tool.sh" emacs 23 2>/dev/null ; then + export EDITOR="$ZSH/plugins/emacs/emacsclient.sh" + alias emacs="$EDITOR --no-wait" + alias e=emacs + + alias emasc=emacs + alias emcas=emacs + # create a new X frame + alias emacs_frame='emacsclient --alternate-editor "" --create-frame' +fi diff --git a/plugins/emacs/emacsclient.sh b/plugins/emacs/emacsclient.sh new file mode 100755 index 000000000..3475926a6 --- /dev/null +++ b/plugins/emacs/emacsclient.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +# Starts emacs daemon if not already started. + +x=`emacsclient --alternate-editor '' --eval '(x-display-list)' 2>/dev/null` +if [ -z "$x" ] ;then + emacsclient --alternate-editor "" --create-frame $@ +else + emacsclient --alternate-editor "" $@ +fi From df0b37f9db3f8a1d445bebf30d04039eb247ab71 Mon Sep 17 00:00:00 2001 From: Tristan Carel Date: Wed, 13 Apr 2011 17:45:04 +0200 Subject: [PATCH 023/421] Merge branch 'master'; commit 'ca4dabb45e14d8cd38e07c4ffadf9473ceb2193b' into require_tool From 0c032aaf81afcb134668a462a9ea028e6fc64eeb Mon Sep 17 00:00:00 2001 From: Tristan Carel Date: Wed, 13 Apr 2011 17:46:36 +0200 Subject: [PATCH 024/421] Removing master stuff --- plugins/emacs/emacs.plugin.zsh | 11 ----------- plugins/emacs/emacsclient.sh | 10 ---------- plugins/git-svn/.gitignore | 1 - plugins/git-svn/git-svn.plugin.zsh | 10 ---------- 4 files changed, 32 deletions(-) delete mode 100644 plugins/emacs/emacs.plugin.zsh delete mode 100755 plugins/emacs/emacsclient.sh delete mode 100644 plugins/git-svn/.gitignore delete mode 100644 plugins/git-svn/git-svn.plugin.zsh diff --git a/plugins/emacs/emacs.plugin.zsh b/plugins/emacs/emacs.plugin.zsh deleted file mode 100644 index bca79e70e..000000000 --- a/plugins/emacs/emacs.plugin.zsh +++ /dev/null @@ -1,11 +0,0 @@ -# Use daemon capabilities of emacs 23 -if "$ZSH/tools/require_tool.sh" emacs 23 2>/dev/null ; then - export EDITOR="$ZSH/plugins/emacs/emacsclient.sh" - alias emacs="$EDITOR --no-wait" - alias e=emacs - - alias emasc=emacs - alias emcas=emacs - # create a new X frame - alias emacs_frame='emacsclient --alternate-editor "" --create-frame' -fi diff --git a/plugins/emacs/emacsclient.sh b/plugins/emacs/emacsclient.sh deleted file mode 100755 index 3475926a6..000000000 --- a/plugins/emacs/emacsclient.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh - -# Starts emacs daemon if not already started. - -x=`emacsclient --alternate-editor '' --eval '(x-display-list)' 2>/dev/null` -if [ -z "$x" ] ;then - emacsclient --alternate-editor "" --create-frame $@ -else - emacsclient --alternate-editor "" $@ -fi diff --git a/plugins/git-svn/.gitignore b/plugins/git-svn/.gitignore deleted file mode 100644 index bf5e1a14f..000000000 --- a/plugins/git-svn/.gitignore +++ /dev/null @@ -1 +0,0 @@ -git-svn-clone-externals diff --git a/plugins/git-svn/git-svn.plugin.zsh b/plugins/git-svn/git-svn.plugin.zsh deleted file mode 100644 index 062d63e05..000000000 --- a/plugins/git-svn/git-svn.plugin.zsh +++ /dev/null @@ -1,10 +0,0 @@ - -if ! [ -d "$ZSH/plugins/git-svn/git-svn-clone-externals" ] ;then - git clone https://github.com/andrep/git-svn-clone-externals.git -fi -export PATH="$ZSH/plugins/git-svn/git-svn-clone-externals:$PATH" - -function git_svn_update { - (cd "$ZSH/plugins/git-svn/git-svn-clone-externals" && \ - git pull origin master) -} From b2d5b4365019a466fb8481598de87159704ded7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Di=C3=B3genes?= Date: Thu, 14 Apr 2011 12:15:26 -0300 Subject: [PATCH 025/421] refactored pycrm command --- plugins/python/python.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python/python.plugin.zsh b/plugins/python/python.plugin.zsh index fde54fa88..3ea34d718 100644 --- a/plugins/python/python.plugin.zsh +++ b/plugins/python/python.plugin.zsh @@ -2,4 +2,4 @@ alias pyfind='find . -name "*.py"' # Remove python compiled byte-code -alias pycrm='rm `find . | grep -E "*.(pyc|pyo)$"`' +alias pyclean='find . -type f -name "*.py[co]" -exec rm -f \{\} \;' From e199e1dae8f43e3de3bfd59696226497a7c3c3d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jurri=C3=ABn=20Stutterheim?= Date: Sun, 15 May 2011 15:02:46 +0200 Subject: [PATCH 026/421] Add norm theme --- themes/norm.zsh-theme | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 themes/norm.zsh-theme diff --git a/themes/norm.zsh-theme b/themes/norm.zsh-theme new file mode 100644 index 000000000..933fad2ad --- /dev/null +++ b/themes/norm.zsh-theme @@ -0,0 +1,4 @@ +PROMPT='%{$fg[yellow]%}λ %{$fg[green]%}${PWD/#$HOME/~} %{$fg[yellow]%}→ $(git_prompt_info)%{$reset_color%}' + +ZSH_THEME_GIT_PROMPT_PREFIX="λ %{$fg[blue]%}git %{$fg[red]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$fg[yellow]%} → %{$reset_color%}" From 1d9eacb34f59f3bf82a9de0d7b474cb4c501e3fd Mon Sep 17 00:00:00 2001 From: Paul Gideon Dann Date: Thu, 19 May 2011 10:55:19 +0100 Subject: [PATCH 027/421] Plugin to make WOL nice & easy --- plugins/wakeonlan/wakeonlan.plugin.zsh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 plugins/wakeonlan/wakeonlan.plugin.zsh diff --git a/plugins/wakeonlan/wakeonlan.plugin.zsh b/plugins/wakeonlan/wakeonlan.plugin.zsh new file mode 100644 index 000000000..08db1bdea --- /dev/null +++ b/plugins/wakeonlan/wakeonlan.plugin.zsh @@ -0,0 +1,15 @@ +function wake() { + local config_file=~/.wakeonlan/$1 + if [[ ! -f $config_file ]]; then + echo "ERROR: There is no configuration file at \"$config_file\"." + return + fi + + which wakeonlan > /dev/null + if [[ ! $? == 0 ]]; then + echo "ERROR: Can't find \"wakeonlan\". Are you sure it's installed?" + return + fi + + wakeonlan -f $config_file +} From 8454542ddc33c4907bb864054b9adb0cf61d9002 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jurri=C3=ABn=20Stutterheim?= Date: Fri, 20 May 2011 13:21:04 +0200 Subject: [PATCH 028/421] Update, no more full path --- themes/norm.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/norm.zsh-theme b/themes/norm.zsh-theme index 933fad2ad..5f0ad03ee 100644 --- a/themes/norm.zsh-theme +++ b/themes/norm.zsh-theme @@ -1,4 +1,4 @@ -PROMPT='%{$fg[yellow]%}λ %{$fg[green]%}${PWD/#$HOME/~} %{$fg[yellow]%}→ $(git_prompt_info)%{$reset_color%}' +PROMPT='%{$fg[yellow]%}λ %{$fg[green]%}%c %{$fg[yellow]%}→ $(git_prompt_info)%{$reset_color%}' ZSH_THEME_GIT_PROMPT_PREFIX="λ %{$fg[blue]%}git %{$fg[red]%}" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$fg[yellow]%} → %{$reset_color%}" From 3b8f65477e989d534d2ce19aaec65ab2c1179aa3 Mon Sep 17 00:00:00 2001 From: Reza Date: Sat, 13 Nov 2010 09:08:24 -0800 Subject: [PATCH 029/421] Fixed cap plugin --- plugins/cap/cap.plugin.zsh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/plugins/cap/cap.plugin.zsh b/plugins/cap/cap.plugin.zsh index a0fa21d00..a9db4381b 100644 --- a/plugins/cap/cap.plugin.zsh +++ b/plugins/cap/cap.plugin.zsh @@ -11,11 +11,10 @@ function _cap () { if [ -f config/deploy.rb ]; then if _cap_does_task_list_need_generating; then echo "\nGenerating .cap_tasks~..." > /dev/stderr - cap show_tasks -q | cut -d " " -f 1 | sed -e '/^ *$/D' -e '1,2D' -> .cap_tasks~ + cap --tasks | grep '#' | cut -d " " -f 2 > .cap_tasks~ fi compadd `cat .cap_tasks~` fi } -compctl -K _cap cap \ No newline at end of file +compdef _cap cap From 5aa6b0fae5f1fa82c90003c2020849b4bb87c9e8 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Sun, 1 May 2011 11:46:11 -0400 Subject: [PATCH 030/421] Replaced npm 0.x completion with 1.0 completion. --- plugins/npm/_npm | 19 ------------------- plugins/npm/npm.plugin.zsh | 1 + 2 files changed, 1 insertion(+), 19 deletions(-) delete mode 100644 plugins/npm/_npm create mode 100644 plugins/npm/npm.plugin.zsh diff --git a/plugins/npm/_npm b/plugins/npm/_npm deleted file mode 100644 index 24b536188..000000000 --- a/plugins/npm/_npm +++ /dev/null @@ -1,19 +0,0 @@ -#compdef npm - -# Node Package Manager 0.3.15 completion, letting npm do all the completion work - -_npm() { - compadd -- $(_npm_complete $words) -} - -# We want to show all errors of any substance, but never the "npm (not )ok" one. -# (Also doesn't consider "ERR! no match found" worth breaking the terminal for.) -_npm_complete() { - local ask_npm - ask_npm=(npm completion --color false --loglevel error -- $@) - { _call_program npm $ask_npm 2>&1 >&3 \ - | egrep -v '^(npm (not |)ok|ERR! no match found)$' >&2; \ - } 3>&1 -} - -_npm "$@" diff --git a/plugins/npm/npm.plugin.zsh b/plugins/npm/npm.plugin.zsh new file mode 100644 index 000000000..c3eb91d31 --- /dev/null +++ b/plugins/npm/npm.plugin.zsh @@ -0,0 +1 @@ +eval "$(npm completion 2>/dev/null)" From bf86502b6940d938c488254befdf9461cb50591b Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Thu, 3 Feb 2011 17:25:45 -0500 Subject: [PATCH 031/421] Added gnu-utils plugin. --- plugins/gnu-utils/gnu-utils.plugin.zsh | 80 ++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 plugins/gnu-utils/gnu-utils.plugin.zsh diff --git a/plugins/gnu-utils/gnu-utils.plugin.zsh b/plugins/gnu-utils/gnu-utils.plugin.zsh new file mode 100644 index 000000000..e59265d66 --- /dev/null +++ b/plugins/gnu-utils/gnu-utils.plugin.zsh @@ -0,0 +1,80 @@ +# ------------------------------------------------------------------------------ +# FILE: gnu-utils.plugin.zsh +# DESCRIPTION: oh-my-zsh plugin file. +# AUTHOR: Sorin Ionescu (sorin.ionescu@gmail.com) +# VERSION: 1.0.0 +# ------------------------------------------------------------------------------ + + +if [[ -x "${commands[gwhoami]}" ]]; then + __gnu_utils() { + emulate -L zsh + local gcmds + local gcmd + local cmd + local prefix + + # coreutils + gcmds=('g[' 'gbase64' 'gbasename' 'gcat' 'gchcon' 'gchgrp' 'gchmod' + 'gchown' 'gchroot' 'gcksum' 'gcomm' 'gcp' 'gcsplit' 'gcut' 'gdate' + 'gdd' 'gdf' 'gdir' 'gdircolors' 'gdirname' 'gdu' 'gecho' 'genv' 'gexpand' + 'gexpr' 'gfactor' 'gfalse' 'gfmt' 'gfold' 'ggroups' 'ghead' 'ghostid' + 'gid' 'ginstall' 'gjoin' 'gkill' 'glink' 'gln' 'glogname' 'gls' 'gmd5sum' + 'gmkdir' 'gmkfifo' 'gmknod' 'gmktemp' 'gmv' 'gnice' 'gnl' 'gnohup' 'gnproc' + 'god' 'gpaste' 'gpathchk' 'gpinky' 'gpr' 'gprintenv' 'gprintf' 'gptx' 'gpwd' + 'greadlink' 'grm' 'grmdir' 'gruncon' 'gseq' 'gsha1sum' 'gsha224sum' + 'gsha256sum' 'gsha384sum' 'gsha512sum' 'gshred' 'gshuf' 'gsleep' 'gsort' + 'gsplit' 'gstat' 'gstty' 'gsum' 'gsync' 'gtac' 'gtail' 'gtee' 'gtest' + 'gtimeout' 'gtouch' 'gtr' 'gtrue' 'gtruncate' 'gtsort' 'gtty' 'guname' + 'gunexpand' 'guniq' 'gunlink' 'guptime' 'gusers' 'gvdir' 'gwc' 'gwho' + 'gwhoami' 'gyes') + + # Not part of coreutils, installed separately. + gcmds+=('gsed' 'gtar' 'gtime') + + for gcmd in "${gcmds[@]}"; do + # + # This method allows for builtin commands to be primary but it's + # lost if hash -r or rehash -f is executed. Thus, those two + # functions have to be wrapped. + # + (( ${+commands[$gcmd]} )) && hash ${gcmd[2,-1]}=${commands[$gcmd]} + + # + # This method generates wrapper functions. + # It will override shell builtins. + # + # (( ${+commands[$gcmd]} )) && \ + # eval "function $gcmd[2,-1]() { \"${prefix}/${gcmd//"["/"\\["}\" \"\$@\"; }" + + # + # This method is inflexible since the aliases are at risk of being + # overriden resulting in the BSD coreutils being called. + # + # (( ${+commands[$gcmd]} )) && \ + # alias "$gcmd[2,-1]"="${prefix}/${gcmd//"["/"\\["}" + done + + return 0 + } + __gnu_utils; + + function hash() { + if [[ "$*" =~ "-(r|f)" ]]; then + builtin hash "$@" + __gnu_utils + else + builtin hash "$@" + fi + } + + function rehash() { + if [[ "$*" =~ "-f" ]]; then + builtin rehash "$@" + __gnu_utils + else + builtin rehash "$@" + fi + } +fi + From 25adbe81a55664335e0166c202b8d8424a67c8aa Mon Sep 17 00:00:00 2001 From: Andrew Hodges Date: Sun, 29 May 2011 09:32:44 -0400 Subject: [PATCH 032/421] Aliases Modify directory listing aliases to make more sense. Remove conflicting helper function (mcd conflicts with mtools). --- lib/aliases.zsh | 3 ++- lib/directories.zsh | 5 ----- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/lib/aliases.zsh b/lib/aliases.zsh index b47de5bde..8c510e0ef 100644 --- a/lib/aliases.zsh +++ b/lib/aliases.zsh @@ -16,8 +16,9 @@ alias history='fc -l 1' # List direcory contents alias lsa='ls -lah' -alias l='ls -la' +alias l='ls -lA1' alias ll='ls -l' +alias la='ls -lA' alias sl=ls # often screw this up alias afind='ack-grep -il' diff --git a/lib/directories.zsh b/lib/directories.zsh index bb114f615..7f74d924f 100644 --- a/lib/directories.zsh +++ b/lib/directories.zsh @@ -37,8 +37,3 @@ cd () { alias md='mkdir -p' alias rd=rmdir alias d='dirs -v' - -# mkdir & cd to it -function mcd() { - mkdir -p "$1" && cd "$1"; -} \ No newline at end of file From 5444d2088c97dc776dcbd17acf55dd54b9d7060a Mon Sep 17 00:00:00 2001 From: thunfischbrot Date: Sun, 5 Jun 2011 15:19:46 -0700 Subject: [PATCH 033/421] Included some essential aliases, inspired by http://lolcode.com/ --- plugins/lol/lol.plugin.zsh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/plugins/lol/lol.plugin.zsh b/plugins/lol/lol.plugin.zsh index a7153bb57..e455527e7 100644 --- a/plugins/lol/lol.plugin.zsh +++ b/plugins/lol/lol.plugin.zsh @@ -8,19 +8,30 @@ alias rtfm='man' alias visible='echo' alias invisible='cat' alias moar='more' +alias tldr='less' +alias alwayz='tail -f' alias icanhas='mkdir' +alias gimmeh='touch' alias donotwant='rm' alias dowant='cp' alias gtfo='mv' +alias nowai='chmod' alias hai='cd' +alias iz='ls' alias plz='pwd' +alias ihasbucket='df -h' alias inur='locate' +alias iminurbase='finger' + +alias btw='nice' +alias obtw='nohup' alias nomz='ps -aux' alias nomnom='killall' +alias byes='exit' alias cya='reboot' alias kthxbai='halt' From f0451195f63b3607461bda1570c5fb2a4e429b3e Mon Sep 17 00:00:00 2001 From: Maxim Filatov Date: Sun, 5 Jun 2011 16:57:21 -0700 Subject: [PATCH 034/421] Dollar sign instead of percent in unprivileged user prompt (as in real gentoo) --- themes/gentoo.zsh-theme | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/themes/gentoo.zsh-theme b/themes/gentoo.zsh-theme index cba143d42..ee205d248 100644 --- a/themes/gentoo.zsh-theme +++ b/themes/gentoo.zsh-theme @@ -1,4 +1,8 @@ -PROMPT='%(!.%{$fg_bold[red]%}.%{$fg_bold[green]%}%n@)%m %{$fg_bold[blue]%}%(!.%1~.%~) $(git_prompt_info)%#%{$reset_color%} ' +function prompt_char { + if [ $UID -eq 0 ]; then echo "#"; else echo $; fi +} + +PROMPT='%(!.%{$fg_bold[red]%}.%{$fg_bold[green]%}%n@)%m %{$fg_bold[blue]%}%(!.%1~.%~) $(git_prompt_info)%_$(prompt_char)%{$reset_color%} ' ZSH_THEME_GIT_PROMPT_PREFIX="(" ZSH_THEME_GIT_PROMPT_SUFFIX=") " From b02094e50fe3cd2e3f8ba911d19257dda047bf48 Mon Sep 17 00:00:00 2001 From: Reza Date: Tue, 7 Jun 2011 14:06:24 -0700 Subject: [PATCH 035/421] Change plugin name from cap to capistrano --- plugins/{cap/cap.plugin.zsh => capistrano/capistrano.plugin.zsh} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename plugins/{cap/cap.plugin.zsh => capistrano/capistrano.plugin.zsh} (100%) diff --git a/plugins/cap/cap.plugin.zsh b/plugins/capistrano/capistrano.plugin.zsh similarity index 100% rename from plugins/cap/cap.plugin.zsh rename to plugins/capistrano/capistrano.plugin.zsh From 55eda0c48b42e3ccd1b12579cd46d20332b828c1 Mon Sep 17 00:00:00 2001 From: ptrv Date: Fri, 10 Jun 2011 15:38:59 +0200 Subject: [PATCH 036/421] Added mercurial plugin with aliases. --- plugins/mercurial/mercurial.plugin.zsh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 plugins/mercurial/mercurial.plugin.zsh diff --git a/plugins/mercurial/mercurial.plugin.zsh b/plugins/mercurial/mercurial.plugin.zsh new file mode 100644 index 000000000..2988f0a46 --- /dev/null +++ b/plugins/mercurial/mercurial.plugin.zsh @@ -0,0 +1,14 @@ + +# Mercurial +alias hgc='hg commit -v' +alias hgb='hg branch -v' +alias hgba='hg branches' +alias hgco='hg checkout' +alias hgd='hg diff' +alias hged='hg diffmerge' +# pull and update +alias hgl='hg pull -u -v' +alias hgp='hg push -v' +alias hgs='hg status -v' +# this is the 'git commit --amend' equivalent +alias hgca='hg qimport -r tip ; hg qrefresh -e ; hg qfinish tip' From c5a01fe422c0b511be5972735b1dd9ac22a82dff Mon Sep 17 00:00:00 2001 From: meh Date: Wed, 15 Jun 2011 16:15:52 +0200 Subject: [PATCH 037/421] rsync: add plugin --- plugins/rsync/rsync.plugin.zsh | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 plugins/rsync/rsync.plugin.zsh diff --git a/plugins/rsync/rsync.plugin.zsh b/plugins/rsync/rsync.plugin.zsh new file mode 100644 index 000000000..5e28f346c --- /dev/null +++ b/plugins/rsync/rsync.plugin.zsh @@ -0,0 +1,15 @@ +function copy { + rsync -av --progress -h "$1" "$2" +} + +function move { + rsync -av --progress -h --remove-source-files "$1" "$2" +} + +function update { + rsync -avu --progress -h "$1" "$2" +} + +function synchronize { + rsync -avu --delete --progress -h "$1" "$2" +} From 929c64e4c6f53e926757b7d9d89ab7da4f9a0d0d Mon Sep 17 00:00:00 2001 From: Max Gonzih Date: Tue, 21 Jun 2011 12:09:57 +0300 Subject: [PATCH 038/421] Create gnzh theme --- themes/gnzh.zsh-theme | 47 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 themes/gnzh.zsh-theme diff --git a/themes/gnzh.zsh-theme b/themes/gnzh.zsh-theme new file mode 100644 index 000000000..a984d25fa --- /dev/null +++ b/themes/gnzh.zsh-theme @@ -0,0 +1,47 @@ +# ZSH Theme - Preview: http://dl.dropbox.com/u/4109351/pics/gnzh-zsh-theme.png +# Based on bira theme + +# load some modules +autoload -U colors zsh/terminfo # Used in the colour alias below +colors +setopt prompt_subst + +# make some aliases for the colours: (coud use normal escap.seq's too) +for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do + eval PR_$color='%{$fg[${(L)color}]%}' +done +eval PR_NO_COLOR="%{$terminfo[sgr0]%}" +eval PR_BOLD="%{$terminfo[bold]%}" + +# Check the UID +if [[ $UID -ge 1000 ]]; then # normal user + eval PR_USER='${PR_GREEN}%n${PR_NO_COLOR}' + eval PR_USER_OP='${PR_GREEN}%#${PR_NO_COLOR}' + local PR_PROMPT='$PR_NO_COLOR➤ $PR_NO_COLOR' +elif [[ $UID -eq 0 ]]; then # root + eval PR_USER='${PR_RED}%n${PR_NO_COLOR}' + eval PR_USER_OP='${PR_RED}%#${PR_NO_COLOR}' + local PR_PROMPT='$PR_RED➤ $PR_NO_COLOR' +fi + +# Check if we are on SSH or not +if [[ -n "$SSH_CLIENT" || -n "$SSH2_CLIENT" ]]; then + eval PR_HOST='${PR_YELLOW}%M${PR_NO_COLOR}' #SSH +else + eval PR_HOST='${PR_GREEN}%M${PR_NO_COLOR}' # no SSH +fi + +local return_code="%(?..%{$PR_RED%}%? ↵%{$PR_NO_COLOR%})" + +local user_host='${PR_USER}${PR_CYAN}@${PR_HOST}' +local current_dir='%{$PR_BOLD$PR_BLUE%}%~%{$PR_NO_COLOR%}' +local rvm_ruby='%{$PR_RED%}‹$(rvm-prompt i v g s)›%{$PR_NO_COLOR%}' +local git_branch='$(git_prompt_info)%{$PR_NO_COLOR%}' + +#PROMPT="${user_host} ${current_dir} ${rvm_ruby} ${git_branch}$PR_PROMPT " +PROMPT="╭─${user_host} ${current_dir} ${rvm_ruby} ${git_branch} +╰─$PR_PROMPT " +RPS1="${return_code}" + +ZSH_THEME_GIT_PROMPT_PREFIX="%{$PR_YELLOW%}‹" +ZSH_THEME_GIT_PROMPT_SUFFIX="› %{$PR_NO_COLOR%}" From a335e9df9f13a5caa2b83cad9ebcfaa25b748202 Mon Sep 17 00:00:00 2001 From: Max Gonzih Date: Tue, 21 Jun 2011 13:50:39 +0300 Subject: [PATCH 039/421] plugin for vundle (vim plugins managment system) that provide vundle, vundle-update and vundle-init aliases --- plugins/vundle/vundle.plugin.zsh | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 plugins/vundle/vundle.plugin.zsh diff --git a/plugins/vundle/vundle.plugin.zsh b/plugins/vundle/vundle.plugin.zsh new file mode 100644 index 000000000..7caed4715 --- /dev/null +++ b/plugins/vundle/vundle.plugin.zsh @@ -0,0 +1,3 @@ +alias vundle-init='git clone http://github.com/gmarik/vundle.git ~/.vim/bundle/vundle' +alias vundle='vim -c "execute \"BundleInstall\" | q"' +alias vundle-update='vim -c "execute \"BundleInstall!\" | q"' From 7ef7ffc5ebd21bff4ab8e42989c63ba8204c0e5b Mon Sep 17 00:00:00 2001 From: Max Gonzih Date: Tue, 21 Jun 2011 14:53:11 +0300 Subject: [PATCH 040/421] removing useless line --- themes/gnzh.zsh-theme | 1 - 1 file changed, 1 deletion(-) diff --git a/themes/gnzh.zsh-theme b/themes/gnzh.zsh-theme index a984d25fa..357798cf6 100644 --- a/themes/gnzh.zsh-theme +++ b/themes/gnzh.zsh-theme @@ -38,7 +38,6 @@ local current_dir='%{$PR_BOLD$PR_BLUE%}%~%{$PR_NO_COLOR%}' local rvm_ruby='%{$PR_RED%}‹$(rvm-prompt i v g s)›%{$PR_NO_COLOR%}' local git_branch='$(git_prompt_info)%{$PR_NO_COLOR%}' -#PROMPT="${user_host} ${current_dir} ${rvm_ruby} ${git_branch}$PR_PROMPT " PROMPT="╭─${user_host} ${current_dir} ${rvm_ruby} ${git_branch} ╰─$PR_PROMPT " RPS1="${return_code}" From b727e337adb0264b3d03ffdd0a4af3ba9802572a Mon Sep 17 00:00:00 2001 From: Sagie Maoz Date: Mon, 27 Jun 2011 01:37:27 -0700 Subject: [PATCH 041/421] Updated the frisk theme to display Bazaar branch information as well (based on zedtux.zsh-theme http://j.mp/ikTZJj) --- themes/frisk.zsh-theme | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/themes/frisk.zsh-theme b/themes/frisk.zsh-theme index f181aec90..2c999a6a6 100644 --- a/themes/frisk.zsh-theme +++ b/themes/frisk.zsh-theme @@ -1,10 +1,22 @@ PROMPT=$' -%{$fg[blue]%}%/%{$reset_color%} $(git_prompt_info)%{$fg[white]%}[%n@%m]%{$reset_color%} %{$fg[white]%}[%T]%{$reset_color%} +%{$fg[blue]%}%/%{$reset_color%} $(git_prompt_info)$(bzr_prompt_info)%{$fg[white]%}[%n@%m]%{$reset_color%} %{$fg[white]%}[%T]%{$reset_color%} %{$fg_bold[black]%}>%{$reset_color%} ' PROMPT2="%{$fg_blod[black]%}%_> %{$reset_color%}" -ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[green]%}[" +GIT_CB="git::" +ZSH_THEME_SCM_PROMPT_PREFIX="%{$fg[green]%}[" +ZSH_THEME_GIT_PROMPT_PREFIX=$ZSH_THEME_SCM_PROMPT_PREFIX$GIT_CB ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%} " ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}*%{$fg[green]%}" ZSH_THEME_GIT_PROMPT_CLEAN="" + +## Bazaar integration +bzr_prompt_info() { + BZR_CB=`bzr nick 2> /dev/null | grep -v "ERROR" | cut -d ":" -f2 | awk -F / '{print "bzr::"$1}'` + if [ -n "$BZR_CB" ]; then + BZR_DIRTY="" + [[ -n `bzr status` ]] && BZR_DIRTY="%{$fg[red]%} *%{$reset_color%}" + echo "$ZSH_THEME_SCM_PROMPT_PREFIX$BZR_CB$BZR_DIRTY$ZSH_THEME_GIT_PROMPT_SUFFIX" + fi +} From 499819ced108aa4b0d90dd0ac922a174c965d814 Mon Sep 17 00:00:00 2001 From: Max Gonzih Date: Wed, 29 Jun 2011 10:26:42 +0300 Subject: [PATCH 042/421] vundle plugin refactored first it checks existens of vundle plugin, if plugin dont exist run git clone --- plugins/vundle/vundle.plugin.zsh | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/plugins/vundle/vundle.plugin.zsh b/plugins/vundle/vundle.plugin.zsh index 7caed4715..39c36ac59 100644 --- a/plugins/vundle/vundle.plugin.zsh +++ b/plugins/vundle/vundle.plugin.zsh @@ -1,3 +1,22 @@ -alias vundle-init='git clone http://github.com/gmarik/vundle.git ~/.vim/bundle/vundle' -alias vundle='vim -c "execute \"BundleInstall\" | q"' -alias vundle-update='vim -c "execute \"BundleInstall!\" | q"' +function vundle-init () { + if [ ! -d ~/.vim/bundle/vundle/ ] + then + mkdir -p ~/.vim/bundle/vundle/ + fi + + if [ ! -d ~/.vim/bundle/vundle/.git/ ] + then + git clone http://github.com/gmarik/vundle.git ~/.vim/bundle/vundle + fi +} + +function vundle () { + vundle-init + vim -c "execute \"BundleInstall\" | q" +} + + +function vundle-update () { + vundle-init + vim -c "execute \"BundleInstall!\" | q" +} From 053cb24d3160d69cb6c9579a3f154f45a72f065c Mon Sep 17 00:00:00 2001 From: Max Gonzih Date: Thu, 30 Jun 2011 11:45:24 +0300 Subject: [PATCH 043/421] added tip about vundle configutarion after git clone --- plugins/vundle/vundle.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/vundle/vundle.plugin.zsh b/plugins/vundle/vundle.plugin.zsh index 39c36ac59..1e2e1f088 100644 --- a/plugins/vundle/vundle.plugin.zsh +++ b/plugins/vundle/vundle.plugin.zsh @@ -7,6 +7,7 @@ function vundle-init () { if [ ! -d ~/.vim/bundle/vundle/.git/ ] then git clone http://github.com/gmarik/vundle.git ~/.vim/bundle/vundle + echo "\n\tRead about vim configuration for vundle at https://github.com/gmarik/vundle\n" fi } From 6774fb3d59365ddb8520cdb4d46444720f788be0 Mon Sep 17 00:00:00 2001 From: Brandon Konkle Date: Wed, 13 Jul 2011 23:23:01 -0700 Subject: [PATCH 044/421] Minor corrections to deletion detection in git_prompt_status --- lib/git.zsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/git.zsh b/lib/git.zsh index ce4de5598..f04343650 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -52,7 +52,9 @@ git_prompt_status() { if $(echo "$INDEX" | grep '^R ' &> /dev/null); then STATUS="$ZSH_THEME_GIT_PROMPT_RENAMED$STATUS" fi - if $(echo "$INDEX" | grep '^D ' &> /dev/null); then + if $(echo "$INDEX" | grep '^ D ' &> /dev/null); then + STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS" + elif $(echo "$INDEX" | grep '^AD ' &> /dev/null); then STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS" fi if $(echo "$INDEX" | grep '^UU ' &> /dev/null); then From 1d17502aed5fc04cd1ca3eb35757b5ba2822414a Mon Sep 17 00:00:00 2001 From: meh Date: Sat, 16 Jul 2011 07:18:14 +0200 Subject: [PATCH 045/421] rsync: add rsync- prefixes and use aliases --- plugins/rsync/rsync.plugin.zsh | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/plugins/rsync/rsync.plugin.zsh b/plugins/rsync/rsync.plugin.zsh index 5e28f346c..33a31a5c1 100644 --- a/plugins/rsync/rsync.plugin.zsh +++ b/plugins/rsync/rsync.plugin.zsh @@ -1,15 +1,4 @@ -function copy { - rsync -av --progress -h "$1" "$2" -} - -function move { - rsync -av --progress -h --remove-source-files "$1" "$2" -} - -function update { - rsync -avu --progress -h "$1" "$2" -} - -function synchronize { - rsync -avu --delete --progress -h "$1" "$2" -} +alias rsync-copy="rsync -av --progress -h" +alias rsync-move="rsync -av --progress -h --remove-source-files" +alias rsync-update="rsync -avu --progress -h" +alias rsync-synchronize="rsync -avu --delete --progress -h" From fea4e54b1053764df10f507c233286281133fe90 Mon Sep 17 00:00:00 2001 From: fox Date: Tue, 19 Jul 2011 21:47:26 +0200 Subject: [PATCH 046/421] added theme chooser --- tools/theme_chooser.sh | 47 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100755 tools/theme_chooser.sh diff --git a/tools/theme_chooser.sh b/tools/theme_chooser.sh new file mode 100755 index 000000000..2413bfee8 --- /dev/null +++ b/tools/theme_chooser.sh @@ -0,0 +1,47 @@ +#!/bin/sh + +# Zsh Theme Chooser by fox (fox91 at anche dot no) +# This program is free software. It comes without any warranty, to +# the extent permitted by applicable law. You can redistribute it +# and/or modify it under the terms of the Do What The Fuck You Want +# To Public License, Version 2, as published by Sam Hocevar. See +# http://sam.zoy.org/wtfpl/COPYING for more details. + +THEMES_DIR="$ZSH/themes" +FAVLIST="~/.zsh_favlist" + +function noyes() { + read -p "$1 [y/N]" a + if [[ $a == "N" || $a == "n" || $a = "" ]]; then + return 0 + fi + return 1 +} + +function theme_preview() { + THEME=$1 + export ZDOTDIR="$(mktemp -d)" + +cat <<-EOF >"$ZDOTDIR/.zshrc" + source ~/.zshrc + source "$THEMES_DIR/$THEME" +EOF + zsh + rm -rf "$ZDOTDIR" + + echo + noyes "Do you want to add it to your favourite list?" && \ + echo $THEME >> $FAVLIST + echo +} + +echo +echo "╺━┓┏━┓╻ ╻ ╺┳╸╻ ╻┏━╸┏┳┓┏━╸ ┏━╸╻ ╻┏━┓┏━┓┏━┓┏━╸┏━┓" +echo "┏━┛┗━┓┣━┫ ┃ ┣━┫┣╸ ┃┃┃┣╸ ┃ ┣━┫┃ ┃┃ ┃┗━┓┣╸ ┣┳┛" +echo "┗━╸┗━┛╹ ╹ ╹ ╹ ╹┗━╸╹ ╹┗━╸ ┗━╸╹ ╹┗━┛┗━┛┗━┛┗━╸╹┗╸" +echo + +for i in $(ls $THEMES_DIR); do + echo "Now showing theme $i" + theme_preview $i +done From 5d5d2f94be7a13c3a5069bed6bfc2070fa7f014c Mon Sep 17 00:00:00 2001 From: fox Date: Tue, 19 Jul 2011 22:02:34 +0200 Subject: [PATCH 047/421] fox's theme + theme chooser fixes --- themes/fox.zsh-theme | 8 ++++++++ tools/theme_chooser.sh | 6 +++--- 2 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 themes/fox.zsh-theme diff --git a/themes/fox.zsh-theme b/themes/fox.zsh-theme new file mode 100644 index 000000000..1959853cf --- /dev/null +++ b/themes/fox.zsh-theme @@ -0,0 +1,8 @@ +#fox theme +PROMPT='%{$fg[cyan]%}┌[%{$fg_bold[white]%}%n%{$reset_color%}%{$fg[cyan]%}☮%{$fg_bold[white]%}%M%{$reset_color%}%{$fg[cyan]%}]%{$fg[white]%}-%{$fg[cyan]%}(%{$fg_bold[white]%}%~%{$reset_color%}%{$fg[cyan]%})$(git_prompt_info) +└> % %{$reset_color%}' + +ZSH_THEME_GIT_PROMPT_PREFIX="-[%{$reset_color%}%{$fg[white]%}git://%{$fg_bold[white]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}%{$fg[cyan]%}]-" +ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}✗%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_CLEAN=" %{$fg[green]%}✔%{$reset_color%}" diff --git a/tools/theme_chooser.sh b/tools/theme_chooser.sh index 2413bfee8..50f80f092 100755 --- a/tools/theme_chooser.sh +++ b/tools/theme_chooser.sh @@ -8,10 +8,10 @@ # http://sam.zoy.org/wtfpl/COPYING for more details. THEMES_DIR="$ZSH/themes" -FAVLIST="~/.zsh_favlist" +FAVLIST="${HOME}/.zsh_favlist" function noyes() { - read -p "$1 [y/N]" a + read -p "$1 [y/N] " a if [[ $a == "N" || $a == "n" || $a = "" ]]; then return 0 fi @@ -30,7 +30,7 @@ EOF rm -rf "$ZDOTDIR" echo - noyes "Do you want to add it to your favourite list?" && \ + noyes "Do you want to add it to your favourite list ($FAVLIST)?" || \ echo $THEME >> $FAVLIST echo } From 428f18cf428fd86bd6e99c4363e5f25d0e392506 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Yhuel?= Date: Sat, 23 Jul 2011 23:09:03 +0200 Subject: [PATCH 048/421] Add key bindings for gnome-terminal on Fedora --- lib/key-bindings.zsh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/key-bindings.zsh b/lib/key-bindings.zsh index 9c2dda35a..5c1b90bfa 100644 --- a/lib/key-bindings.zsh +++ b/lib/key-bindings.zsh @@ -14,10 +14,15 @@ bindkey '^[[B' down-line-or-search bindkey "^[[H" beginning-of-line bindkey "^[[1~" beginning-of-line +bindkey "^[OH" beginning-of-line bindkey "^[[F" end-of-line bindkey "^[[4~" end-of-line +bindkey "^[OF" end-of-line bindkey ' ' magic-space # also do history expansion on space +bindkey "^[[1;5C" forward-word +bindkey "^[[1;5D" backward-word + bindkey '^[[Z' reverse-menu-complete # Make the delete key (or Fn + Delete on the Mac) work instead of outputting a ~ From 76dd2d8b05cb1b8d34653732e8b3939f68e8a67a Mon Sep 17 00:00:00 2001 From: fox Date: Sun, 24 Jul 2011 11:58:41 +0200 Subject: [PATCH 049/421] mac os fix --- tools/theme_chooser.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/theme_chooser.sh b/tools/theme_chooser.sh index 50f80f092..af861a15b 100755 --- a/tools/theme_chooser.sh +++ b/tools/theme_chooser.sh @@ -20,7 +20,7 @@ function noyes() { function theme_preview() { THEME=$1 - export ZDOTDIR="$(mktemp -d)" + export ZDOTDIR="$(mktemp -d tmp.zshXXXX)" cat <<-EOF >"$ZDOTDIR/.zshrc" source ~/.zshrc From d15d3a5b01a527d8642cc0b173a2f8d1b92332c0 Mon Sep 17 00:00:00 2001 From: fox Date: Sun, 24 Jul 2011 20:51:27 +0200 Subject: [PATCH 050/421] global zsh config --- tools/theme_chooser.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tools/theme_chooser.sh b/tools/theme_chooser.sh index af861a15b..ea5191afe 100755 --- a/tools/theme_chooser.sh +++ b/tools/theme_chooser.sh @@ -20,18 +20,19 @@ function noyes() { function theme_preview() { THEME=$1 + THEME_NAME=`echo $THEME | sed s/\.zsh-theme//` export ZDOTDIR="$(mktemp -d tmp.zshXXXX)" cat <<-EOF >"$ZDOTDIR/.zshrc" - source ~/.zshrc - source "$THEMES_DIR/$THEME" + ZSH_THEME="$THEME_NAME" + source $ZSH/oh-my-zsh.sh EOF zsh rm -rf "$ZDOTDIR" echo noyes "Do you want to add it to your favourite list ($FAVLIST)?" || \ - echo $THEME >> $FAVLIST + echo $THEME_NAME >> $FAVLIST echo } From 0848acfb25b6601adcabc406089b6c7788df5749 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Yhuel?= Date: Sat, 23 Jul 2011 23:34:02 +0200 Subject: [PATCH 051/421] Display red dots during completion process (disabled by default) --- lib/completion.zsh | 9 +++++++++ templates/zshrc.zsh-template | 3 +++ 2 files changed, 12 insertions(+) diff --git a/lib/completion.zsh b/lib/completion.zsh index fdd0a8536..b3cc91822 100644 --- a/lib/completion.zsh +++ b/lib/completion.zsh @@ -59,3 +59,12 @@ zstyle ':completion:*:*:*:users' ignored-patterns \ # ... unless we really want to. zstyle '*' single-ignored show +if [ "x$COMPLETION_WAITING_DOTS" = "xtrue" ]; then + expand-or-complete-with-dots() { + echo -n "\e[31m......\e[0m" + zle expand-or-complete + zle redisplay + } + zle -N expand-or-complete-with-dots + bindkey "^I" expand-or-complete-with-dots +fi diff --git a/templates/zshrc.zsh-template b/templates/zshrc.zsh-template index 77f866d52..1ab40aba6 100644 --- a/templates/zshrc.zsh-template +++ b/templates/zshrc.zsh-template @@ -19,6 +19,9 @@ ZSH_THEME="robbyrussell" # Uncomment following line if you want to disable autosetting terminal title. # DISABLE_AUTO_TITLE="true" +# Uncomment following line if you want red dots to be displayed while waiting for completion +# COMPLETION_WAITING_DOTS="true" + # Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*) # Example format: plugins=(rails git textmate ruby lighthouse) plugins=(git) From 3cb33fc254290a848a602af634cfa26179d630e5 Mon Sep 17 00:00:00 2001 From: Andrew Smith Date: Mon, 25 Jul 2011 09:46:17 +1000 Subject: [PATCH 052/421] Replace a duplicated test to see if we're in an SVN folder with a call to the 'in_svn' function. --- plugins/svn/svn.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/svn/svn.plugin.zsh b/plugins/svn/svn.plugin.zsh index 86050227d..77de27481 100644 --- a/plugins/svn/svn.plugin.zsh +++ b/plugins/svn/svn.plugin.zsh @@ -1,5 +1,5 @@ function svn_prompt_info { - if [[ -d .svn ]]; then + if [ in_svn ]; then echo "$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_PREFIX\ $ZSH_THEME_REPO_NAME_COLOR$(svn_get_repo_name)$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR$(svn_dirty)$ZSH_PROMPT_BASE_COLOR" fi From 7b25a3fca90e31f2c272fd8d2ef1dfa3e61dc9e4 Mon Sep 17 00:00:00 2001 From: Andrew Smith Date: Mon, 25 Jul 2011 09:50:54 +1000 Subject: [PATCH 053/421] The original SVN pluging would mark a folder as dirty if there was an svn:external set and the output of 'svn status' returned the check for the external. E.g. $ svn st X Application Performing status on external item at 'Application' Shouldn't be marked as being dirty. By grepping for only the valid output for what should be class as dirty, it won't return false positives. --- plugins/svn/svn.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/svn/svn.plugin.zsh b/plugins/svn/svn.plugin.zsh index 77de27481..53a8a513a 100644 --- a/plugins/svn/svn.plugin.zsh +++ b/plugins/svn/svn.plugin.zsh @@ -28,7 +28,7 @@ function svn_get_rev_nr { function svn_dirty_choose { if [ in_svn ]; then - s=$(svn status 2>/dev/null) + s=$(svn status|grep -E '^\s*[ACDIM!?L]' 2>/dev/null) if [ $s ]; then echo $1 else From 6bf468f92c9302f84d3b21358202c3a956cad02b Mon Sep 17 00:00:00 2001 From: Shane Emmons Date: Mon, 25 Jul 2011 08:02:25 -0700 Subject: [PATCH 054/421] add alias for `bundle package` to the bundler plugin --- plugins/bundler/bundler.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh index e98bb4b46..f005700ff 100644 --- a/plugins/bundler/bundler.plugin.zsh +++ b/plugins/bundler/bundler.plugin.zsh @@ -2,6 +2,7 @@ alias be="bundle exec" alias bi="bundle install" alias bl="bundle list" alias bu="bundle update" +alias bp="bundle package" # The following is based on https://github.com/gma/bundler-exec From fd732eb3ff4984ddc9109e950cf7ceb472cb9824 Mon Sep 17 00:00:00 2001 From: "Suraj N. Kurapati" Date: Wed, 27 Jul 2011 10:28:55 -0700 Subject: [PATCH 055/421] move history-substring-search* files into plugins/ --- README => plugins/history-substring-search/README | 0 .../history-substring-search/history-substring-search.plugin.zsh | 0 .../history-substring-search/history-substring-search.zsh | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename README => plugins/history-substring-search/README (100%) rename history-substring-search.plugin.zsh => plugins/history-substring-search/history-substring-search.plugin.zsh (100%) rename history-substring-search.zsh => plugins/history-substring-search/history-substring-search.zsh (100%) diff --git a/README b/plugins/history-substring-search/README similarity index 100% rename from README rename to plugins/history-substring-search/README diff --git a/history-substring-search.plugin.zsh b/plugins/history-substring-search/history-substring-search.plugin.zsh similarity index 100% rename from history-substring-search.plugin.zsh rename to plugins/history-substring-search/history-substring-search.plugin.zsh diff --git a/history-substring-search.zsh b/plugins/history-substring-search/history-substring-search.zsh similarity index 100% rename from history-substring-search.zsh rename to plugins/history-substring-search/history-substring-search.zsh From fc49b4a4ded376cd82b813dcb6d72fdc050b7bed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Yhuel?= Date: Thu, 28 Jul 2011 19:52:35 +0200 Subject: [PATCH 056/421] Enable red dots during completion by default --- lib/completion.zsh | 2 +- templates/zshrc.zsh-template | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/completion.zsh b/lib/completion.zsh index b3cc91822..2a457402a 100644 --- a/lib/completion.zsh +++ b/lib/completion.zsh @@ -59,7 +59,7 @@ zstyle ':completion:*:*:*:users' ignored-patterns \ # ... unless we really want to. zstyle '*' single-ignored show -if [ "x$COMPLETION_WAITING_DOTS" = "xtrue" ]; then +if [ "$DISABLE_COMPLETION_WAITING_DOTS" != "true" ]; then expand-or-complete-with-dots() { echo -n "\e[31m......\e[0m" zle expand-or-complete diff --git a/templates/zshrc.zsh-template b/templates/zshrc.zsh-template index 1ab40aba6..4de1fa4e9 100644 --- a/templates/zshrc.zsh-template +++ b/templates/zshrc.zsh-template @@ -19,8 +19,8 @@ ZSH_THEME="robbyrussell" # Uncomment following line if you want to disable autosetting terminal title. # DISABLE_AUTO_TITLE="true" -# Uncomment following line if you want red dots to be displayed while waiting for completion -# COMPLETION_WAITING_DOTS="true" +# Uncomment following line if you want disable red dots displayed while waiting for completion +# DISABLE_COMPLETION_WAITING_DOTS="true" # Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*) # Example format: plugins=(rails git textmate ruby lighthouse) From f35bfd9c4b2a3924975b936d2ca946dbca48c51f Mon Sep 17 00:00:00 2001 From: Max Masnick Date: Fri, 29 Jul 2011 15:17:22 -0400 Subject: [PATCH 057/421] Add fino.zsh-theme Add my brand new oh-my-zsh theme called Fino. It borrows from some other themes (see comments at the beginning). I only have/can tested on OS X 10.7, so there might be some compatibility problems with other platforms. --- themes/fino.zsh-theme | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 themes/fino.zsh-theme diff --git a/themes/fino.zsh-theme b/themes/fino.zsh-theme new file mode 100644 index 000000000..17cf59708 --- /dev/null +++ b/themes/fino.zsh-theme @@ -0,0 +1,39 @@ +# Fino theme by Max Masnick (http://max.masnick.me) + +# Use with a dark background and 256-color terminal! +# Meant for people with RVM and git. Tested only on OS X 10.7. + +# You can set your computer name in the ~/.box-name file if you want. + +# Borrowing shamelessly from these oh-my-zsh themes: +# bira +# robbyrussell +# +# Also borrowing from http://stevelosh.com/blog/2010/02/my-extravagant-zsh-prompt/ + +function virtualenv_info { + [ $VIRTUAL_ENV ] && echo '('`basename $VIRTUAL_ENV`') ' +} + +function prompt_char { + git branch >/dev/null 2>/dev/null && echo '±' && return + echo '○' +} + +function box_name { + [ -f ~/.box-name ] && cat ~/.box-name || hostname -s +} + + +local rvm_ruby='‹$(rvm-prompt i v g)›%{$reset_color%}' +local current_dir='${PWD/#$HOME/~}' +local git_info='$(git_prompt_info)' + + +PROMPT="╭─%{$FG[040]%}%n%{$reset_color%} %{$FG[239]%}at%{$reset_color%} %{$FG[033]%}$(box_name)%{$reset_color%} %{$FG[239]%}in%{$reset_color%} %{$terminfo[bold]$FG[226]%}${current_dir}%{$reset_color%}${git_info} %{$FG[239]%}using%{$FG[243]%} ${rvm_ruby} +╰─$(virtualenv_info)$(prompt_char) " + +ZSH_THEME_GIT_PROMPT_PREFIX=" %{$FG[239]%}on%{$reset_color%} %{$fg[255]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$FG[202]%}✘✘✘" +ZSH_THEME_GIT_PROMPT_CLEAN="%{$FG[040]%}✔" \ No newline at end of file From d866662c4af4c6e6e661c59d2da8f60eabbfba1d Mon Sep 17 00:00:00 2001 From: Fredrik Wallgren Date: Sat, 30 Jul 2011 04:38:57 +0200 Subject: [PATCH 058/421] Add autocomplete for gas. Based on the rvm plugin. --- plugins/gas/_gas | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 plugins/gas/_gas diff --git a/plugins/gas/_gas b/plugins/gas/_gas new file mode 100644 index 000000000..069713fc6 --- /dev/null +++ b/plugins/gas/_gas @@ -0,0 +1,34 @@ +#compdef gas + +local curcontext="$curcontext" state line cmds ret=1 + +_arguments -C \ + '(- 1 *)'{-v,--version}'[display version information]' \ + '(-h|--help)'{-h,--help}'[show help information]' \ + '1: :->cmds' \ + '*: :->args' && ret=0 + +case $state in + cmds) + cmds=( + "version:Prints Gas's version" + "use:Uses author" + "show:Shows your current user" + "list:Lists your authors" + "import:Imports current user to gasconfig" + "help:Describe available tasks or one specific task" + "delete:Deletes author" + "add:Adds author to gasconfig" + ) + _describe -t commands 'gas command' cmds && ret=0 + ;; + args) + case $line[1] in + (use|delete) + _values -S , 'rubies' $(cat ~/.gas | sed -n -e 's/^\[\(.*\)\]/\1/p') && ret=0 + ;; + esac + ;; +esac + +return ret From c3412ca57d313a0a1419d26b5529f28de49285d0 Mon Sep 17 00:00:00 2001 From: Fredrik Wallgren Date: Sat, 30 Jul 2011 04:57:25 +0200 Subject: [PATCH 059/421] Replace forgotten rubies with authors --- plugins/gas/_gas | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/gas/_gas b/plugins/gas/_gas index 069713fc6..befdc9459 100644 --- a/plugins/gas/_gas +++ b/plugins/gas/_gas @@ -25,7 +25,7 @@ case $state in args) case $line[1] in (use|delete) - _values -S , 'rubies' $(cat ~/.gas | sed -n -e 's/^\[\(.*\)\]/\1/p') && ret=0 + _values -S , 'authors' $(cat ~/.gas | sed -n -e 's/^\[\(.*\)\]/\1/p') && ret=0 ;; esac ;; From b160ee6512f58a3a7f2c18f12feab3e32884003b Mon Sep 17 00:00:00 2001 From: Ilya Chesnokov Date: Mon, 1 Aug 2011 10:58:05 +0400 Subject: [PATCH 060/421] 'echo' did not show colors without -e in upgrade.sh --- tools/upgrade.sh | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tools/upgrade.sh b/tools/upgrade.sh index 2b75e5541..52a8cc4da 100644 --- a/tools/upgrade.sh +++ b/tools/upgrade.sh @@ -1,12 +1,12 @@ current_path=`pwd` -echo "\033[0;34mUpgrading Oh My Zsh\033[0m" +echo -e "\033[0;34mUpgrading Oh My Zsh\033[0m" ( cd $ZSH && git pull origin master ) -echo "\033[0;32m"' __ __ '"\033[0m" -echo "\033[0;32m"' ____ / /_ ____ ___ __ __ ____ _____/ /_ '"\033[0m" -echo "\033[0;32m"' / __ \/ __ \ / __ `__ \/ / / / /_ / / ___/ __ \ '"\033[0m" -echo "\033[0;32m"'/ /_/ / / / / / / / / / / /_/ / / /_(__ ) / / / '"\033[0m" -echo "\033[0;32m"'\____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/ '"\033[0m" -echo "\033[0;32m"' /____/ '"\033[0m" -echo "\033[0;34mHooray! Oh My Zsh has been updated and/or is at the current version.\033[0m" -echo "\033[0;34mTo keep up on the latest, be sure to follow Oh My Zsh on twitter: \033[1mhttp://twitter.com/ohmyzsh\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;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" cd "$current_path" From 68b5ef2aabddc1049738a80f6cbfa470fd538e95 Mon Sep 17 00:00:00 2001 From: Rahul Trikha Date: Tue, 2 Aug 2011 11:24:09 +0930 Subject: [PATCH 061/421] Added auto complete plugin for powder gem https://github.com/Rodreegez/powder --- plugins/powder/_powder | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 plugins/powder/_powder diff --git a/plugins/powder/_powder b/plugins/powder/_powder new file mode 100644 index 000000000..84e260a15 --- /dev/null +++ b/plugins/powder/_powder @@ -0,0 +1,4 @@ +#compdef powder +#autoload + +compadd `powder help | grep powder | cut -d " " -f 4` From 3bc32eef6dbad942fd137a7c7d04050d9b87fed4 Mon Sep 17 00:00:00 2001 From: Adolfo Benedetti Date: Tue, 2 Aug 2011 09:42:23 +0200 Subject: [PATCH 062/421] add theme with command-line tips support --- themes/adben.zsh-theme | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 themes/adben.zsh-theme diff --git a/themes/adben.zsh-theme b/themes/adben.zsh-theme new file mode 100644 index 000000000..9f777e847 --- /dev/null +++ b/themes/adben.zsh-theme @@ -0,0 +1,26 @@ +#!/usr/bin/env zsh +local USER_HOST='%{$terminfo[bold]$fg[yellow]%}%n@%m%{$reset_color%}' +local RETURN_CODE="%(?..%{$fg[red]%}%? ↵%{$reset_color%})" +local GIT_BRANCH='%{$terminfo[bold]$fg[red]%}$(git_prompt_info)%{$reset_color%}' +local CURRENT_DIR='%{$terminfo[bold]$fg[green]%} %~%{$reset_color%}' +local RUBY_RVM='%{$fg[gray]%}‹$(rvm-prompt i v g)›%{$reset_color%}' +local COMMAND_TIP='%{$terminfo[bold]$fg[blue]%}$(wget -qO - http://www.commandlinefu.com/commands/random/plaintext | sed 1d | sed '/^$/d' | sed 's/^/║/g')%{$reset_color%}' +######### PROMPT ######### +PROMPT="%{$terminfo[bold]$fg[blue]%}╔═ %{$reset_color%}${USER_HOST} ${CURRENT_DIR} ${RUBY_RVM} ${GIT_BRANCH} +${COMMAND_TIP} +%{$terminfo[bold]$fg[blue]%}╚═ %{$reset_color%}%B%{$terminfo[bold]$fg[white]%}$%b%{$reset_color%} " +RPS1='${RETURN_CODE}' +RPROMPT='%{$fg[green]%}[%*]%{$reset_color%}' +######### PROMPT ######### +########## GIT ########### +ZSH_THEME_GIT_PROMPT_PREFIX="‹" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$GIT_PROMPT_INFO%}›" +ZSH_THEME_GIT_PROMPT_DIRTY=" %{$GIT_DIRTY_COLOR%}✘" +ZSH_THEME_GIT_PROMPT_CLEAN=" %{$GIT_CLEAN_COLOR%}✔" +ZSH_THEME_GIT_PROMPT_ADDED="%{$FG[082]%}✚%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_MODIFIED="%{$FG[166]%}✹%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DELETED="%{$FG[160]%}✖%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_RENAMED="%{$FG[220]%}➜%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_UNMERGED="%{$FG[082]%}═%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$FG[190]%}✭%{$reset_color%}" +########## GIT ########### From cbf662744ffcf998829cabbd7b2550861c13d1d8 Mon Sep 17 00:00:00 2001 From: fox Date: Wed, 3 Aug 2011 09:42:16 +0200 Subject: [PATCH 063/421] fixed theme chooser + options + list available themes + show all themes --- tools/theme_chooser.sh | 90 ++++++++++++++++++++++++++++++++---------- 1 file changed, 69 insertions(+), 21 deletions(-) diff --git a/tools/theme_chooser.sh b/tools/theme_chooser.sh index ea5191afe..4d7047444 100755 --- a/tools/theme_chooser.sh +++ b/tools/theme_chooser.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/zsh # Zsh Theme Chooser by fox (fox91 at anche dot no) # This program is free software. It comes without any warranty, to @@ -9,9 +9,10 @@ THEMES_DIR="$ZSH/themes" FAVLIST="${HOME}/.zsh_favlist" +source $ZSH/oh-my-zsh.sh function noyes() { - read -p "$1 [y/N] " a + read "a?$1 [y/N] " if [[ $a == "N" || $a == "n" || $a = "" ]]; then return 0 fi @@ -20,29 +21,76 @@ function noyes() { function theme_preview() { THEME=$1 - THEME_NAME=`echo $THEME | sed s/\.zsh-theme//` - export ZDOTDIR="$(mktemp -d tmp.zshXXXX)" - -cat <<-EOF >"$ZDOTDIR/.zshrc" - ZSH_THEME="$THEME_NAME" - source $ZSH/oh-my-zsh.sh -EOF - zsh - rm -rf "$ZDOTDIR" + THEME_NAME=`echo $THEME | sed s/\.zsh-theme$//` + print "$fg[blue]${(l.((${COLUMNS}-${#THEME_NAME}-5))..─.)}$reset_color $THEME_NAME $fg[blue]───$reset_color" + source "$THEMES_DIR/$THEME" + print -P $PROMPT +} +function banner() { echo - noyes "Do you want to add it to your favourite list ($FAVLIST)?" || \ - echo $THEME_NAME >> $FAVLIST + echo "╺━┓┏━┓╻ ╻ ╺┳╸╻ ╻┏━╸┏┳┓┏━╸ ┏━╸╻ ╻┏━┓┏━┓┏━┓┏━╸┏━┓" + echo "┏━┛┗━┓┣━┫ ┃ ┣━┫┣╸ ┃┃┃┣╸ ┃ ┣━┫┃ ┃┃ ┃┗━┓┣╸ ┣┳┛" + echo "┗━╸┗━┛╹ ╹ ╹ ╹ ╹┗━╸╹ ╹┗━╸ ┗━╸╹ ╹┗━┛┗━┛┗━┛┗━╸╹┗╸" echo } -echo -echo "╺━┓┏━┓╻ ╻ ╺┳╸╻ ╻┏━╸┏┳┓┏━╸ ┏━╸╻ ╻┏━┓┏━┓┏━┓┏━╸┏━┓" -echo "┏━┛┗━┓┣━┫ ┃ ┣━┫┣╸ ┃┃┃┣╸ ┃ ┣━┫┃ ┃┃ ┃┗━┓┣╸ ┣┳┛" -echo "┗━╸┗━┛╹ ╹ ╹ ╹ ╹┗━╸╹ ╹┗━╸ ┗━╸╹ ╹┗━┛┗━┛┗━┛┗━╸╹┗╸" -echo +function usage() { + echo "Usage: $0 [options] [theme]" + echo + echo "Options" + echo " -l List available themes" + echo " -s Show all themes" + echo " -h Get this help message" + exit 1 +} -for i in $(ls $THEMES_DIR); do - echo "Now showing theme $i" - theme_preview $i +function list_themes() { + for THEME in $(ls $THEMES_DIR); do + THEME_NAME=`echo $THEME | sed s/\.zsh-theme$//` + echo $THEME_NAME + done +} + +function insert_favlist() { + if grep -q "$THEME_NAME" $FAVLIST 2> /dev/null ; then + echo "Already in favlist" + else + echo $THEME_NAME >> $FAVLIST + echo "Saved to favlist" + fi + +} + +function theme_chooser() { + for THEME in $(ls $THEMES_DIR); do + echo + theme_preview $THEME + echo + if [[ -z $1 ]]; then + noyes "Do you want to add it to your favourite list ($FAVLIST)?" || \ + insert_favlist $THEME_NAME + echo + fi + done +} + +while getopts ":lhs" Option +do + case $Option in + l ) list_themes ;; + s ) theme_chooser 0 ;; + h ) usage ;; + * ) usage ;; # Default. + esac done + +if [[ -z $Option ]]; then + if [[ -z $1 ]]; then + banner + echo + theme_chooser + else + theme_preview $1".zsh-theme" + fi +fi From 3780247f633d99b6870e39ea77c540ebb5125095 Mon Sep 17 00:00:00 2001 From: Sune Kibsgaard Pedersen Date: Thu, 4 Aug 2011 12:37:33 +0200 Subject: [PATCH 064/421] added option of setting another path to custom plugins and files just set ZSH_CUSTOM in your .zshrc, if not set oh-my-zsh.sh will use the default custom dir in the repository --- oh-my-zsh.sh | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index c4522491b..3865abe17 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -21,17 +21,24 @@ for plugin ($plugins) fpath=($ZSH/plugins/$plugin $fpath) 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 - if [ -f $ZSH/custom/plugins/$plugin/$plugin.plugin.zsh ]; then - source $ZSH/custom/plugins/$plugin/$plugin.plugin.zsh + if [ -f $ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh ]; then + source $ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh elif [ -f $ZSH/plugins/$plugin/$plugin.plugin.zsh ]; then source $ZSH/plugins/$plugin/$plugin.plugin.zsh fi done # Load all of your custom configurations from custom/ -for config_file ($ZSH/custom/*.zsh) source $config_file +for config_file ($ZSH_CUSTOM/*.zsh) source $config_file # Load the theme if [ "$ZSH_THEME" = "random" ] From 749feb2720948a4ac9a981286654962e699d8d94 Mon Sep 17 00:00:00 2001 From: Daniel Bolton Date: Sat, 6 Aug 2011 15:22:55 -0400 Subject: [PATCH 065/421] Merge "deb" and "debian" plugins. --- plugins/deb/deb.plugin.zsh | 13 ------------- plugins/debian/debian.plugin.zsh | 30 +++++++++++++++++++++++++++--- 2 files changed, 27 insertions(+), 16 deletions(-) delete mode 100644 plugins/deb/deb.plugin.zsh diff --git a/plugins/deb/deb.plugin.zsh b/plugins/deb/deb.plugin.zsh deleted file mode 100644 index 1b35a0646..000000000 --- a/plugins/deb/deb.plugin.zsh +++ /dev/null @@ -1,13 +0,0 @@ -# Aliases -alias as="aptitude -F \"* %p -> %d \n(%v/%V)\" \ - --no-gui --disable-columns search" # search package -alias ad="sudo apt-get update" # update packages lists -alias au="sudo apt-get update && \ - sudo apt-get dselect-upgrade" # upgrade packages -alias ai="sudo apt-get install" # install package -alias ar="sudo apt-get remove --purge && \ - sudo apt-get autoremove --purge" # remove package -alias ap="apt-cache policy" # apt policy -alias av="apt-cache show" # show package info -alias acs="apt-cache search" # search package -alias ac="sudo apt-get clean && sudo apt-get autoclean" # clean apt cache diff --git a/plugins/debian/debian.plugin.zsh b/plugins/debian/debian.plugin.zsh index f8865a412..6feb6973d 100644 --- a/plugins/debian/debian.plugin.zsh +++ b/plugins/debian/debian.plugin.zsh @@ -1,4 +1,4 @@ -# https://github.com/dbbolton/ +# https://github.com/dbb/ # # Debian-related zsh aliases and functions for zsh @@ -6,14 +6,29 @@ # Aliases ################################################################### # Some self-explanatory aliases +alias acs="apt-cache search" alias afs='apt-file search --regexp' alias aps='aptitude search' +alias as="aptitude -F \"* %p -> %d \n(%v/%V)\" \ + --no-gui --disable-columns search" # search package alias apsrc='apt-get source' alias apv='apt-cache policy' +# aliases that use su -c ############## alias apdg='su -c "aptitude update && aptitude safe-upgrade"' alias apud='su -c "aptitude update"' alias apug='su -c "aptitude safe-upgrade"' +# end aliases that use su -c ########## + +# aliases that use sudo ############### +alias ad="sudo apt-get update" # update packages lists +alias au="sudo apt-get update && \ + sudo apt-get dselect-upgrade" # upgrade packages +alias ai="sudo apt-get install" # install package +alias ar="sudo apt-get remove --purge && \ + sudo apt-get autoremove --purge" # remove package +alias ac="sudo apt-get clean && sudo apt-get autoclean" # clean apt cache +# end aliases that use sudo ########### # print all installed packages alias allpkgs='aptitude search -F "%p" --disable-columns ~i' @@ -33,6 +48,13 @@ alias kclean='su -c '\''aptitude remove -P ?and(~i~nlinux-(ima|hea) ?not(~n`unam # Functions ################################################################# +# install packages without sudo +apin() { + cmd="su -lc 'aptitude -P install $@' root" + print "$cmd" + eval "$cmd" +} + # create a simple script that can be used to 'duplicate' a system apt-copy() { print '#!/bin/sh'"\n" > apt-copy.sh @@ -46,8 +68,10 @@ apt-copy() { # Kernel-package building shortcut -dbb-build () { - MAKEFLAGS='' # temporarily unset MAKEFLAGS ( '-j3' will fail ) +kerndeb () { + # temporarily unset MAKEFLAGS ( '-j3' will fail ) + 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 From fd55d53eb22856883953bb6efc89bb2d643ef296 Mon Sep 17 00:00:00 2001 From: Daniel Bolton Date: Sat, 6 Aug 2011 15:41:52 -0400 Subject: [PATCH 066/421] Fix su commands --- plugins/debian/debian.plugin.zsh | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/plugins/debian/debian.plugin.zsh b/plugins/debian/debian.plugin.zsh index 6feb6973d..0c487cf70 100644 --- a/plugins/debian/debian.plugin.zsh +++ b/plugins/debian/debian.plugin.zsh @@ -15,9 +15,9 @@ alias apsrc='apt-get source' alias apv='apt-cache policy' # aliases that use su -c ############## -alias apdg='su -c "aptitude update && aptitude safe-upgrade"' -alias apud='su -c "aptitude update"' -alias apug='su -c "aptitude safe-upgrade"' +alias apdg='su -lc "aptitude update && aptitude safe-upgrade" root' +alias apud='su -lc "aptitude update" root' +alias apug='su -lc "aptitude safe-upgrade" root' # end aliases that use su -c ########## # aliases that use sudo ############### @@ -36,13 +36,13 @@ alias allpkgs='aptitude search -F "%p" --disable-columns ~i' # Install all .deb files in the current directory. # Warning: you will need to put the glob in single quotes if you use: # glob_subst -alias di='su -c "dpkg -i ./*.deb"' +alias di='su -lc "dpkg -i ./*.deb" root' # Create a basic .deb package alias mydeb='time dpkg-buildpackage -rfakeroot -us -uc' # Remove ALL kernel images and headers EXCEPT the one in use -alias kclean='su -c '\''aptitude remove -P ?and(~i~nlinux-(ima|hea) ?not(~n`uname -r`))'\'' root' +alias kclean='su -lc '\''aptitude remove -P ?and(~i~nlinux-(ima|hea) ?not(~n`uname -r`))'\'' root' @@ -81,4 +81,3 @@ kerndeb () { "$revision" kernel_image kernel_headers } - From 8ed6dd5fc4c5e9b28d0f8a87f72c0bbe5f628580 Mon Sep 17 00:00:00 2001 From: Daniel Bolton Date: Sat, 6 Aug 2011 15:58:40 -0400 Subject: [PATCH 067/421] Add functions for new GH repos. --- plugins/github/github.plugin.zsh | 41 ++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/plugins/github/github.plugin.zsh b/plugins/github/github.plugin.zsh index 1eb338113..e5f59097d 100644 --- a/plugins/github/github.plugin.zsh +++ b/plugins/github/github.plugin.zsh @@ -4,3 +4,44 @@ if [ "$commands[(I)hub]" ]; then # eval `hub alias -s zsh` function git(){hub "$@"} fi + +# Functions ################################################################# + +# https://github.com/dbb + +# These are taken directly from the instructions you see after you create a new +# repo. As the names imply, new_gh() assumes you're starting from scratch in a +# directory named after the repo (this name is the only argument it takes), and +# exist_gh() assumes that you've already initialized git in the given directory +# (again, the only argument). +# set up a new repo + +new_gh() { # [NAME_OF_REPO] + repo = $1 + + name=$( igit config user.name ) + email=$( git config user.email ) + user=$( git config github.user ) + + mkdir "$repo" + cd "$repo" + git init + touch README + git add README + git commit -m 'Initial commit.' + git remote add origin git@github.com:${user}/${name}.git + git push -u origin master +} + +exist_gh() { # [DIRECTORY] + cd "$1" + name=$( git config user.name ) + email=$( git config user.email ) + user=$( git config github.user ) + + git remote add origin git@github.com:${user}/${name}.git + git push -u origin master +} + +# End Functions ############################################################# + From 8c48f10a04ce8e6c789cead457e062602cc89931 Mon Sep 17 00:00:00 2001 From: Daniel Bolton Date: Sat, 6 Aug 2011 16:15:09 -0400 Subject: [PATCH 068/421] Add functions for new GH repos. --- plugins/github/github.plugin.zsh | 44 +++++++++++++++++++++----------- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/plugins/github/github.plugin.zsh b/plugins/github/github.plugin.zsh index e5f59097d..fc51b173c 100644 --- a/plugins/github/github.plugin.zsh +++ b/plugins/github/github.plugin.zsh @@ -9,19 +9,13 @@ fi # https://github.com/dbb -# These are taken directly from the instructions you see after you create a new -# repo. As the names imply, new_gh() assumes you're starting from scratch in a -# directory named after the repo (this name is the only argument it takes), and -# exist_gh() assumes that you've already initialized git in the given directory -# (again, the only argument). -# set up a new repo -new_gh() { # [NAME_OF_REPO] +# empty_gh [NAME_OF_REPO] +# +# Use this when creating a new repo from scratch. +empty_gh() { # [NAME_OF_REPO] repo = $1 - - name=$( igit config user.name ) - email=$( git config user.email ) - user=$( git config github.user ) + ghuser=$( git config github.user ) mkdir "$repo" cd "$repo" @@ -29,17 +23,37 @@ new_gh() { # [NAME_OF_REPO] touch README git add README git commit -m 'Initial commit.' - git remote add origin git@github.com:${user}/${name}.git + git remote add origin git@github.com:${ghuser}/${repo}.git git push -u origin master } +# new_gh [DIRECTORY] +# +# Use this when you have a directory that is not yet set up for git. +# This function will add all non-hidden files to git. +new_gh() { # [DIRECTORY] + cd "$1" + ghuser=$( git config github.user ) + + git init + # add all non-dot files + print '.*'"\n"'*~' >> .gitignore + git add ^.* + git commit -m 'Initial commit.' + git remote add origin git@github.com:${ghuser}/${repo}.git + git push -u origin master +} + +# exist_gh [DIRECTORY] +# +# Use this when you have a git repo that's ready to go and you want to add it +# to your GitHub. exist_gh() { # [DIRECTORY] cd "$1" name=$( git config user.name ) - email=$( git config user.email ) - user=$( git config github.user ) + ghuser=$( git config github.user ) - git remote add origin git@github.com:${user}/${name}.git + git remote add origin git@github.com:${ghuser}/${repo}.git git push -u origin master } From fac74012f81fc99eb2ba7a85e94a2cd74c352271 Mon Sep 17 00:00:00 2001 From: Daniel Bolton Date: Sun, 7 Aug 2011 15:30:55 -0400 Subject: [PATCH 069/421] Add options for su(do) and apt(itude|-get) --- plugins/debian/debian.plugin.zsh | 76 ++++++++++++++++++++++---------- 1 file changed, 52 insertions(+), 24 deletions(-) diff --git a/plugins/debian/debian.plugin.zsh b/plugins/debian/debian.plugin.zsh index 0c487cf70..1df91dc4a 100644 --- a/plugins/debian/debian.plugin.zsh +++ b/plugins/debian/debian.plugin.zsh @@ -1,48 +1,76 @@ -# https://github.com/dbb/ +# Authors: +# https://github.com/AlexBio +# https://github.com/dbb # # Debian-related zsh aliases and functions for zsh +# Set to 'apt-get' or 'aptitude' +apt_pref='aptitude' + +# Use sudo by default if it's installed +if [[ -e $( which sudo ) ]]; then + use_sudo=1 +fi # Aliases ################################################################### # Some self-explanatory aliases alias acs="apt-cache search" -alias afs='apt-file search --regexp' alias aps='aptitude search' alias as="aptitude -F \"* %p -> %d \n(%v/%V)\" \ --no-gui --disable-columns search" # search package -alias apsrc='apt-get source' -alias apv='apt-cache policy' -# aliases that use su -c ############## -alias apdg='su -lc "aptitude update && aptitude safe-upgrade" root' -alias apud='su -lc "aptitude update" root' -alias apug='su -lc "aptitude safe-upgrade" root' -# end aliases that use su -c ########## +# apt-file +alias afs='apt-file search --regexp' + + +# These are apt-get only +alias asrc='apt-get source' +alias ap='apt-cache policy' + +# superuser operations ################ +if [[ $use_sudo -eq 1 ]]; then + alias ai="sudo $apt_pref install" + alias ad="sudo $apt_pref update" + alias afu='sudo apt-file update' + alias ag="sudo $apt_pref upgrade" + alias adg="sudo $apt_pref update && sudo $apt_pref upgrade" + alias ap="sudo $apt_pref purge" + alias ar="sudo $apt_pref remove" + + if [[ $apt_pref -eq 'apt-get' ]]; then + alias ads="sudo $apt_pref dselect-upgrade" + fi + + # Install all .deb files in the current directory. + # Warning: you will need to put the glob in single quotes if you use: + # glob_subst + alias di='sudo dpkg -i ./*.deb' + + # Remove ALL kernel images and headers EXCEPT the one in use + alias kclean='sudo aptitude remove -P ?and(~i~nlinux-(ima|hea) ?not(~n`uname -r`))' +else + alias ai='apin' + alias ad='su -lc "'"$apt_pref"' update" root' + alias afu='su -lc "apt-file update"' + alias ag='su -lc "'"$apt_pref"' safe-upgrade" root' + alias adg='su -lc "'"$apt_pref"' update && aptitude safe-upgrade" root' + alias di='su -lc "dpkg -i ./*.deb" root' + # Remove ALL kernel images and headers EXCEPT the one in use + alias kclean='su -lc '\''aptitude remove -P ?and(~i~nlinux-(ima|hea) ?not(~n`uname -r`))'\'' root' +fi +# end superuser operations ########## -# aliases that use sudo ############### -alias ad="sudo apt-get update" # update packages lists -alias au="sudo apt-get update && \ - sudo apt-get dselect-upgrade" # upgrade packages -alias ai="sudo apt-get install" # install package -alias ar="sudo apt-get remove --purge && \ - sudo apt-get autoremove --purge" # remove package -alias ac="sudo apt-get clean && sudo apt-get autoclean" # clean apt cache -# end aliases that use sudo ########### # print all installed packages alias allpkgs='aptitude search -F "%p" --disable-columns ~i' -# Install all .deb files in the current directory. -# Warning: you will need to put the glob in single quotes if you use: -# glob_subst -alias di='su -lc "dpkg -i ./*.deb" root' + # Create a basic .deb package alias mydeb='time dpkg-buildpackage -rfakeroot -us -uc' -# Remove ALL kernel images and headers EXCEPT the one in use -alias kclean='su -lc '\''aptitude remove -P ?and(~i~nlinux-(ima|hea) ?not(~n`uname -r`))'\'' root' + From 65393b4bb10de841edbe2026dba29b73625b33d7 Mon Sep 17 00:00:00 2001 From: Daniel Bolton Date: Sun, 7 Aug 2011 16:51:14 -0400 Subject: [PATCH 070/421] Extend root ops, switch apt-copy to plain zsh --- plugins/debian/debian.plugin.zsh | 92 ++++++++++++++++++++++---------- 1 file changed, 65 insertions(+), 27 deletions(-) diff --git a/plugins/debian/debian.plugin.zsh b/plugins/debian/debian.plugin.zsh index 1df91dc4a..23cb98f93 100644 --- a/plugins/debian/debian.plugin.zsh +++ b/plugins/debian/debian.plugin.zsh @@ -4,8 +4,13 @@ # # Debian-related zsh aliases and functions for zsh -# Set to 'apt-get' or 'aptitude' -apt_pref='aptitude' +# Use aptitude if installed, or apt-get if not. +# You can just set apt_pref='apt-get' to override it. +if [[ -e $( which aptitude ) ]]; then + apt_pref='aptitude' +else + apt_pref='apt-get' +fi # Use sudo by default if it's installed if [[ -e $( which sudo ) ]]; then @@ -13,6 +18,10 @@ if [[ -e $( which sudo ) ]]; then fi # Aliases ################################################################### +# These are for more obscure uses of apt-get and aptitude that aren't covered +# below. +alias ag='apt-get' +alias at='aptitude' # Some self-explanatory aliases alias acs="apt-cache search" @@ -28,19 +37,23 @@ alias afs='apt-file search --regexp' alias asrc='apt-get source' alias ap='apt-cache policy' -# superuser operations ################ +# superuser operations ###################################################### if [[ $use_sudo -eq 1 ]]; then - alias ai="sudo $apt_pref install" +# commands using sudo ####### + alias aac="sudo $apt_pref autoclean" + alias abd="sudo $apt_pref build-dep" + alias ac="sudo $apt_pref clean" alias ad="sudo $apt_pref update" + alias adg="sudo $apt_pref update && sudo $apt_pref upgrade" + alias adu="sudo $apt_pref update && sudo $apt_pref dist-upgrade" alias afu='sudo apt-file update' alias ag="sudo $apt_pref upgrade" - alias adg="sudo $apt_pref update && sudo $apt_pref upgrade" + alias ai="sudo $apt_pref install" alias ap="sudo $apt_pref purge" alias ar="sudo $apt_pref remove" - if [[ $apt_pref -eq 'apt-get' ]]; then - alias ads="sudo $apt_pref dselect-upgrade" - fi + # 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: @@ -48,25 +61,54 @@ if [[ $use_sudo -eq 1 ]]; then alias di='sudo dpkg -i ./*.deb' # Remove ALL kernel images and headers EXCEPT the one in use - alias kclean='sudo aptitude remove -P ?and(~i~nlinux-(ima|hea) ?not(~n`uname -r`))' + alias kclean='sudo aptitude remove -P ?and(~i~nlinux-(ima|hea) \ + ?not(~n`uname -r`))' + + +# commands using su ######### else - alias ai='apin' + alias aac='su -ls "'"$apt_pref"' autoclean" root' + abd() { + cmd="su -lc '$apt_pref build-dep $@' root" + print "$cmd" + eval "$cmd" + } + alias ac='su -ls "'"$apt_pref"' clean" root' alias ad='su -lc "'"$apt_pref"' update" root' + alias adg='su -lc "'"$apt_pref"' update && aptitude safe-upgrade" root' + alias adu='su -lc "'"$apt_pref"' update && aptitude dist-upgrade" root' alias afu='su -lc "apt-file update"' alias ag='su -lc "'"$apt_pref"' safe-upgrade" root' - alias adg='su -lc "'"$apt_pref"' update && aptitude safe-upgrade" root' + ai() { + cmd="su -lc 'aptitude -P install $@' root" + print "$cmd" + eval "$cmd" + } + ap() { + cmd="su -lc '$apt_pref -P purge $@' root" + print "$cmd" + eval "$cmd" + } + ar() { + cmd="su -lc '$apt_pref -P remove $@' root" + print "$cmd" + eval "$cmd" + } + + # Install all .deb files in the current directory + # Assumes glob_subst is off alias di='su -lc "dpkg -i ./*.deb" root' + # Remove ALL kernel images and headers EXCEPT the one in use - alias kclean='su -lc '\''aptitude remove -P ?and(~i~nlinux-(ima|hea) ?not(~n`uname -r`))'\'' root' + alias kclean='su -lc '\''aptitude remove -P ?and(~i~nlinux-(ima|hea) \ + ?not(~n`uname -r`))'\'' root' fi -# end superuser operations ########## +# Misc. ##################################################################### # print all installed packages alias allpkgs='aptitude search -F "%p" --disable-columns ~i' - - # Create a basic .deb package alias mydeb='time dpkg-buildpackage -rfakeroot -us -uc' @@ -75,23 +117,19 @@ alias mydeb='time dpkg-buildpackage -rfakeroot -us -uc' # Functions ################################################################# - -# install packages without sudo -apin() { - cmd="su -lc 'aptitude -P install $@' root" - print "$cmd" - eval "$cmd" -} - # create a simple script that can be used to 'duplicate' a system apt-copy() { - print '#!/bin/sh'"\n" > apt-copy.sh + print '#!/bin/sh'"\n" > apt-copy.sh - list=$(perl -m'AptPkg::Cache' -e '$c=AptPkg::Cache->new; for (keys %$c){ push @a, $_ if $c->{$_}->{'CurrentState'} eq 'Installed';} print "$_ " for sort @a;') + cmd="$apt_pref install -s " - print 'aptitude install '"$list\n" >> apt-copy.sh + for p in ${(f)"$(aptitude search -F "%p" --disable-columns \~i)"}; { + cmd="${cmd} ${p}" + } - chmod +x apt-copy.sh + print $cmd "\n" >> apt-copy.sh + + chmod +x apt-copy.sh } From d5333e8efc0f6669d64bba1b2aa6e80bc2e7c8e8 Mon Sep 17 00:00:00 2001 From: Ali B Date: Fri, 12 Aug 2011 00:40:35 +1000 Subject: [PATCH 071/421] Heroku completion plugin --- plugins/heroku/_heroku | 158 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 plugins/heroku/_heroku diff --git a/plugins/heroku/_heroku b/plugins/heroku/_heroku new file mode 100644 index 000000000..dc899e2b2 --- /dev/null +++ b/plugins/heroku/_heroku @@ -0,0 +1,158 @@ +#compdef heroku + +# Heroku Autocomplete plugin for Oh-My-Zsh +# Requires: The Heroku client gem (https://github.com/heroku/heroku) +# Author: Ali B. (http://awhitebox.com) + +local -a _1st_arguments +_1st_arguments=( + "account\:confirm_billing":"Confirm that your account can be billed at the end of the month" + "addons":"list installed addons" + "addons\:list":"list all available addons" + "addons\:add":"install an addon" + "addons\:upgrade":"upgrade an existing addon" + "addons\:downgrade":"downgrade an existing addon" + "addons\:remove":"uninstall an addon" + "addons\:open":"open an addon's dashboard in your browser" + "apps":"list your apps" + "apps\:info":"show detailed app information" + "apps\:create":"create a new app" + "apps\:rename":"rename the app" + "apps\:open":"open the app in a web browser" + "apps\:destroy":"permanently destroy an app" + "auth\:login":"log in with your heroku credentials" + "auth\:logout":"clear local authentication credentials" + "config":"display the config vars for an app" + "config\:add":"add one or more config vars" + "config\:remove":"remove a config var" + "db\:push":"push local data up to your app" + "db\:pull":"pull heroku data down into your local database" + "domains":"list custom domains for an app" + "domains\:add":"add a custom domain to an app" + "domains\:remove":"remove a custom domain from an app" + "domains\:clear":"remove all custom domains from an app" + "help":"list available commands or display help for a specific command" + "keys":"display keys for the current user" + "keys\:add":"add a key for the current user" + "keys\:remove":"remove a key from the current user" + "keys\:clear":"remove all authentication keys from the current user" + "logs":"display recent log output" + "logs\:cron":"DEPRECATED: display cron logs from legacy logging" + "logs\:drains":"manage syslog drains" + "maintenance\:on":"put the app into maintenance mode" + "maintenance\:off":"take the app out of maintenance mode" + "pg\:info":"display database information" + "pg\:ingress":"allow direct connections to the database from this IP for one minute" + "pg\:promote":"sets DATABASE as your DATABASE_URL" + "pg\:psql":"open a psql shell to the database" + "pg\:reset":"delete all data in DATABASE" + "pg\:unfollow":"stop a replica from following and make it a read/write database" + "pg\:wait":"monitor database creation, exit when complete" + "pgbackups":"list captured backups" + "pgbackups\:url":"get a temporary URL for a backup" + "pgbackups\:capture":"capture a backup from a database id" + "pgbackups\:restore":"restore a backup to a database" + "pgbackups\:destroy":"destroys a backup" + "plugins":"list installed plugins" + "plugins\:install":"install a plugin" + "plugins\:uninstall":"uninstall a plugin" + "ps\:dynos":"scale to QTY web processes" + "ps\:workers":"scale to QTY background processes" + "ps":"list processes for an app" + "ps\:restart":"restart an app process" + "ps\:scale":"scale processes by the given amount" + "releases":"list releases" + "releases\:info":"view detailed information for a release" + "rollback":"roll back to an older release" + "run":"run an attached process" + "run\:rake":"remotely execute a rake command" + "run\:console":"open a remote console session" + "sharing":"list collaborators on an app" + "sharing\:add":"add a collaborator to an app" + "sharing\:remove":"remove a collaborator from an app" + "sharing\:transfer":"transfer an app to a new owner" + "ssl":"list certificates for an app" + "ssl\:add":"add an ssl certificate to an app" + "ssl\:remove":"remove an ssl certificate from an app" + "ssl\:clear":"remove all ssl certificates from an app" + "stack":"show the list of available stacks" + "stack\:migrate":"prepare migration of this app to a new stack" + "version":"show heroku client version" +) + +_arguments '*:: :->command' + +if (( CURRENT == 1 )); then + _describe -t commands "heroku command" _1st_arguments + return +fi + +local -a _command_args +case "$words[1]" in + apps:info) + _command_args=( + '(-r|--raw)'{-r,--raw}'[output info as raw key/value pairs]' \ + ) + ;; + apps:create) + _command_args=( + '(-a|--addons)'{-a,--addons}'[a list of addons to install]' \ + '(-r|--remote)'{-r,--remote}'[the git remote to create, default "heroku"]' \ + '(-s|--stack)'{-s,--stack}'[the stack on which to create the app]' \ + ) + ;; + config) + _command_args=( + '(-s|--shell)'{-s,--shell}'[output config vars in shell format]' \ + ) + ;; + db:push) + _command_args=( + '(-c|--chunksize)'{-c,--chunksize}'[specify the number of rows to send in each batch]' \ + '(-d|--debug)'{-d,--debug}'[enable debugging output]' \ + '(-e|--exclude)'{-e,--exclude}'[exclude the specified tables from the push]' \ + '(-f|--filter)'{-f,--filter}'[only push certain tables]' \ + '(-r|--resume)'{-r,--resume}'[resume transfer described by a .dat file]' \ + '(-t|--tables)'{-t,--tables}'[only push the specified tables]' \ + ) + ;; + db:pull) + _command_args=( + '(-c|--chunksize)'{-c,--chunksize}'[specify the number of rows to send in each batch]' \ + '(-d|--debug)'{-d,--debug}'[enable debugging output]' \ + '(-e|--exclude)'{-e,--exclude}'[exclude the specified tables from the pull]' \ + '(-f|--filter)'{-f,--filter}'[only pull certain tables]' \ + '(-r|--resume)'{-r,--resume}'[resume transfer described by a .dat file]' \ + '(-t|--tables)'{-t,--tables}'[only pull the specified tables]' \ + ) + ;; + keys) + _command_args=( + '(-l|--long)'{-l,--long}'[display extended information for each key]' \ + ) + ;; + logs) + _command_args=( + '(-n|--num)'{-n,--num}'[the number of lines to display]' \ + '(-p|--ps)'{-p,--ps}'[only display logs from the given process]' \ + '(-s|--source)'{-s,--source}'[only display logs from the given source]' \ + '(-t|--tail)'{-t,--tail}'[continually stream logs]' \ + ) + ;; + pgbackups:capture) + _command_args=( + '(-e|--expire)'{-e,--expire}'[if no slots are available to capture, delete the oldest backup to make room]' \ + ) + ;; + stack) + _command_args=( + '(-a|--all)'{-a,--all}'[include deprecated stacks]' \ + ) + ;; + esac + +_arguments \ + $_command_args \ + '(--app)--app[the app name]' \ + && return 0 + From c2a95b796b79b4ce4e36b8cb879cb9b0162bc438 Mon Sep 17 00:00:00 2001 From: Matthew Git McCullough Date: Tue, 14 Jun 2011 15:01:28 -0600 Subject: [PATCH 072/421] Added a gradle build tool plugin * Enhanced gradle plugin to parse tasks from a quick execution of the tool * Added a duplicated function for gradlew completion that uses gradlew internally. Builds like Gradle itself (built with Gradle) are sensitive to being run with a matching gradlew version. * Fixed broken caching of gradle task names. Added - and -- argument completions. --- plugins/gradle/gradle.plugin.zsh | 119 +++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 plugins/gradle/gradle.plugin.zsh diff --git a/plugins/gradle/gradle.plugin.zsh b/plugins/gradle/gradle.plugin.zsh new file mode 100644 index 000000000..fc4c78c50 --- /dev/null +++ b/plugins/gradle/gradle.plugin.zsh @@ -0,0 +1,119 @@ +#!zsh +############################################################################## +# A descriptive listing of core Gradle commands +############################################################################ +function _gradle_core_commands() { + local ret=1 state + _arguments ':subcommand:->subcommand' && ret=0 + + case $state in + subcommand) + subcommands=( + "properties:Display all project properties" + "tasks:Calculate and display all tasks" + "dependencies:Calculate and display all dependencies" + "projects:Discover and display all sub-projects" + "build:Build the project" + "help:Display help" + ) + _describe -t subcommands 'gradle subcommands' subcommands && ret=0 + esac + + return ret +} + +function _gradle_arguments() { + _arguments -C \ + '-a[Do not rebuild project dependencies]' \ + '-h[Help]' \ + '-D[System property]' \ + '-d[Log at the debug level]' \ + '--gui[Launches the Gradle GUI app]' \ + '--stop[Stop the Gradle daemon]' \ + '--daemon[Use the Gradle daemon]' \ + '--no-daemon[Do not use the Gradle daemon]' \ + '--no-opt[Do not perform any task optimization]' \ + '-i[Log at the info level]' \ + '-m[Dry run]' \ + '-P[Set a project property]' \ + '--profile[Profile the build time]' \ + '-q[Log at the quiet level (only show errors)]' \ + '-v[Print the Gradle version info]' \ + '-x[Specify a task to be excluded]' \ + '*::command:->command' \ + && return 0 +} + + +############################################################################## +# Are we in a directory containing a build.gradle file? +############################################################################ +function in_gradle() { + if [[ -f build.gradle ]]; then + echo 1 + fi +} + +############################################################################ +# Define the stat_cmd command based on platform behavior +########################################################################## +stat -f%m . > /dev/null 2>&1 +if [ "$?" = 0 ]; then + stat_cmd=(stat -f%m) +else + stat_cmd=(stat -L --format=%Y) +fi + +############################################################################## Examine the build.gradle file to see if its +# timestamp has changed, and if so, regen +# the .gradle_tasks cache file +############################################################################ +_gradle_does_task_list_need_generating () { + if [ ! -f .gradletasknamecache ]; then return 0; + else + accurate=$($stat_cmd .gradletasknamecache) + changed=$($stat_cmd build.gradle) + return $(expr $accurate '>=' $changed) + fi +} + + +############################################################################## +# Discover the gradle tasks by running "gradle tasks --all" +############################################################################ +_gradle_tasks () { + if [ in_gradle ]; then + _gradle_arguments + if _gradle_does_task_list_need_generating; then + gradle tasks --all | grep "^[ ]*[a-zA-Z0-9]*\ -\ " | sed "s/ - .*$//" | sed "s/[\ ]*//" > .gradletasknamecache + fi + compadd -X "==== Gradle Tasks ====" `cat .gradletasknamecache` + fi +} + +_gradlew_tasks () { + if [ in_gradle ]; then + _gradle_arguments + if _gradle_does_task_list_need_generating; then + gradlew tasks --all | grep "^[ ]*[a-zA-Z0-9]*\ -\ " | sed "s/ - .*$//" | sed "s/[\ ]*//" > .gradletasknamecache + fi + compadd -X "==== Gradlew Tasks ====" `cat .gradletasknamecache` + fi +} + + +############################################################################## +# Register the completions against the gradle and gradlew commands +############################################################################ +compdef _gradle_tasks gradle +compdef _gradlew_tasks gradlew + + +############################################################################## +# Open questions for future improvements: +# 1) Should 'gradle tasks' use --all or just the regular set? +# 2) Should gradlew use the same approach as gradle? +# 3) Should only the " - " be replaced with a colon so it can work +# with the richer descriptive method of _arguments? +# gradle tasks | grep "^[a-zA-Z0-9]*\ -\ " | sed "s/ - /\:/" +############################################################################# From 11fcdb844d67492080befd8dcd1f995deb26b8ee Mon Sep 17 00:00:00 2001 From: Ches Martin Date: Sat, 13 Aug 2011 04:53:23 +0700 Subject: [PATCH 073/421] Add guard to bundler plugin's wrapped commands --- plugins/bundler/bundler.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh index f005700ff..a6c116407 100644 --- a/plugins/bundler/bundler.plugin.zsh +++ b/plugins/bundler/bundler.plugin.zsh @@ -6,7 +6,7 @@ alias bp="bundle package" # The following is based on https://github.com/gma/bundler-exec -bundled_commands=(cap capify cucumber heroku rackup rails rake rspec ruby shotgun spec spork thin unicorn unicorn_rails) +bundled_commands=(cap capify cucumber guard heroku rackup rails rake rspec ruby shotgun spec spork thin unicorn unicorn_rails) ## Functions From 4dc11fee35f21b295deb1a61503031c8e17f83a1 Mon Sep 17 00:00:00 2001 From: Max Gonzih Date: Sat, 13 Aug 2011 13:29:13 +0300 Subject: [PATCH 074/421] detect rvm or rbenv and show ruby version --- themes/gnzh.zsh-theme | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/themes/gnzh.zsh-theme b/themes/gnzh.zsh-theme index 357798cf6..7765efbf2 100644 --- a/themes/gnzh.zsh-theme +++ b/themes/gnzh.zsh-theme @@ -1,4 +1,4 @@ -# ZSH Theme - Preview: http://dl.dropbox.com/u/4109351/pics/gnzh-zsh-theme.png +# ZSH Theme - Preview: http://gyazo.com/8becc8a7ed5ab54a0262a470555c3eed.png # Based on bira theme # load some modules @@ -35,9 +35,17 @@ local return_code="%(?..%{$PR_RED%}%? ↵%{$PR_NO_COLOR%})" local user_host='${PR_USER}${PR_CYAN}@${PR_HOST}' local current_dir='%{$PR_BOLD$PR_BLUE%}%~%{$PR_NO_COLOR%}' -local rvm_ruby='%{$PR_RED%}‹$(rvm-prompt i v g s)›%{$PR_NO_COLOR%}' +local rvm_ruby='' +if which rvm-prompt &> /dev/null; then + rvm_ruby='%{$PR_RED%}‹$(rvm-prompt i v g s)›%{$PR_NO_COLOR%}' +else + if which rbenv &> /dev/null; then + rvm_ruby='%{$PR_RED%}‹$(rbenv version | sed -e "s/ (set.*$//")›%{$PR_NO_COLOR%}' + fi +fi local git_branch='$(git_prompt_info)%{$PR_NO_COLOR%}' +#PROMPT="${user_host} ${current_dir} ${rvm_ruby} ${git_branch}$PR_PROMPT " PROMPT="╭─${user_host} ${current_dir} ${rvm_ruby} ${git_branch} ╰─$PR_PROMPT " RPS1="${return_code}" From 7a89786139bcfd83e0e9caa9974f66a423c6ed48 Mon Sep 17 00:00:00 2001 From: Max Gonzih Date: Sat, 13 Aug 2011 13:32:37 +0300 Subject: [PATCH 075/421] oops, restore broken theme preview --- themes/gnzh.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/gnzh.zsh-theme b/themes/gnzh.zsh-theme index 7765efbf2..3c6b8a409 100644 --- a/themes/gnzh.zsh-theme +++ b/themes/gnzh.zsh-theme @@ -1,4 +1,4 @@ -# ZSH Theme - Preview: http://gyazo.com/8becc8a7ed5ab54a0262a470555c3eed.png +# ZSH Theme - Preview: http://dl.dropbox.com/u/4109351/pics/gnzh-zsh-theme.png # Based on bira theme # load some modules From d3116d4f0b499bb76e371f7d60eed48b81068932 Mon Sep 17 00:00:00 2001 From: Daniel Bolton Date: Sat, 13 Aug 2011 10:53:24 -0400 Subject: [PATCH 076/421] Remove -s switch from apt-copy --- plugins/debian/debian.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/debian/debian.plugin.zsh b/plugins/debian/debian.plugin.zsh index 23cb98f93..09771881d 100644 --- a/plugins/debian/debian.plugin.zsh +++ b/plugins/debian/debian.plugin.zsh @@ -121,7 +121,7 @@ alias mydeb='time dpkg-buildpackage -rfakeroot -us -uc' apt-copy() { print '#!/bin/sh'"\n" > apt-copy.sh - cmd="$apt_pref install -s " + cmd="$apt_pref install " for p in ${(f)"$(aptitude search -F "%p" --disable-columns \~i)"}; { cmd="${cmd} ${p}" From 85f388fabf657360960c3fcf55b52f2fb3c4e142 Mon Sep 17 00:00:00 2001 From: David Aaron Fendley Date: Tue, 16 Aug 2011 11:18:23 -0500 Subject: [PATCH 077/421] Added nifty purple Apple theme. --- themes/apple.zsh-theme | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 themes/apple.zsh-theme diff --git a/themes/apple.zsh-theme b/themes/apple.zsh-theme new file mode 100644 index 000000000..350548e36 --- /dev/null +++ b/themes/apple.zsh-theme @@ -0,0 +1,5 @@ +function toon { + echo -n "" +} + +PROMPT='%{$fg[magenta]%}$(toon)%{$reset_color%} %~/ %{$reset_color%}' From bf2c55ac5a789d8874e6d8e06360608b4234e872 Mon Sep 17 00:00:00 2001 From: Ben Lumley Date: Tue, 16 Aug 2011 17:23:33 +0100 Subject: [PATCH 078/421] Gallois theme - made the git branch/status show for those of us without rvm --- themes/gallois.zsh-theme | 2 ++ 1 file changed, 2 insertions(+) diff --git a/themes/gallois.zsh-theme b/themes/gallois.zsh-theme index 259640ba4..f9406dd96 100644 --- a/themes/gallois.zsh-theme +++ b/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 ' From efa5593f88e552fbd3fde850b283fa43d36f481c Mon Sep 17 00:00:00 2001 From: Reza Date: Tue, 16 Aug 2011 13:54:47 -0700 Subject: [PATCH 079/421] Rename to _capistrano (completion only) --- plugins/capistrano/_capistrano | 19 +++++++++++++++++++ plugins/capistrano/capistrano.plugin.zsh | 20 -------------------- 2 files changed, 19 insertions(+), 20 deletions(-) create mode 100644 plugins/capistrano/_capistrano delete mode 100644 plugins/capistrano/capistrano.plugin.zsh diff --git a/plugins/capistrano/_capistrano b/plugins/capistrano/_capistrano new file mode 100644 index 000000000..2ae977fcd --- /dev/null +++ b/plugins/capistrano/_capistrano @@ -0,0 +1,19 @@ +#compdef cap +#autoload + +_cap_does_task_list_need_generating () { + if [ ! -f .cap_tasks~ ]; then return 0; + else + accurate=$(stat -f%m .cap_tasks~) + changed=$(stat -f%m config/deploy.rb) + return $(expr $accurate '>=' $changed) + fi +} + +if [ -f config/deploy.rb ]; then + if _cap_does_task_list_need_generating; then + echo "\nGenerating .cap_tasks~..." > /dev/stderr + cap --tasks | grep '#' | cut -d " " -f 2 > .cap_tasks~ + fi + compadd `cat .cap_tasks~` +fi diff --git a/plugins/capistrano/capistrano.plugin.zsh b/plugins/capistrano/capistrano.plugin.zsh deleted file mode 100644 index a9db4381b..000000000 --- a/plugins/capistrano/capistrano.plugin.zsh +++ /dev/null @@ -1,20 +0,0 @@ -function _cap_does_task_list_need_generating () { - if [ ! -f .cap_tasks~ ]; then return 0; - else - accurate=$(stat -f%m .cap_tasks~) - changed=$(stat -f%m config/deploy.rb) - return $(expr $accurate '>=' $changed) - fi -} - -function _cap () { - if [ -f config/deploy.rb ]; then - if _cap_does_task_list_need_generating; then - echo "\nGenerating .cap_tasks~..." > /dev/stderr - cap --tasks | grep '#' | cut -d " " -f 2 > .cap_tasks~ - fi - compadd `cat .cap_tasks~` - fi -} - -compdef _cap cap From c113e88c454cf759078f06c95f4b35db90acb9d7 Mon Sep 17 00:00:00 2001 From: Tim Taylor Date: Wed, 17 Aug 2011 00:17:21 -0400 Subject: [PATCH 080/421] Fix auto upgrade failure from non-exported ZSH env var Fixes #549. Specify ZSH=$ZSH explicitly when invoking the auto update scripts. --- oh-my-zsh.sh | 2 +- tools/check_for_upgrade.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index c4522491b..f77762815 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -1,7 +1,7 @@ # Check for updates on initial load... if [ "$DISABLE_AUTO_UPDATE" != "true" ] then - /usr/bin/env zsh $ZSH/tools/check_for_upgrade.sh + /usr/bin/env ZSH=$ZSH zsh $ZSH/tools/check_for_upgrade.sh fi # Initializes Oh My Zsh diff --git a/tools/check_for_upgrade.sh b/tools/check_for_upgrade.sh index e1e4eb99f..aeaa0e415 100644 --- a/tools/check_for_upgrade.sh +++ b/tools/check_for_upgrade.sh @@ -24,7 +24,7 @@ then read line if [ "$line" = Y ] || [ "$line" = y ] then - /bin/sh $ZSH/tools/upgrade.sh + /usr/bin/env ZSH=$ZSH /bin/sh $ZSH/tools/upgrade.sh # update the zsh file _update_zsh_update fi From 1fb141cfb51f753fe997d17c12ac810ad321f36f Mon Sep 17 00:00:00 2001 From: Mark Szymanski Date: Sat, 27 Aug 2011 16:16:51 -0500 Subject: [PATCH 081/421] Add gss alias for git status -s --- plugins/git/git.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 5132b639a..37bfd383a 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -29,6 +29,8 @@ alias glg='git log --stat --max-count=5' compdef _git glg=git-log alias glgg='git log --graph --max-count=5' compdef _git glgg=git-log +alias gss='git status -s' +compdef _git gss=git-status # Git and svn mix alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk' From bd6aba9c68db06758593e9ef707839c2f0271235 Mon Sep 17 00:00:00 2001 From: Mark Szymanski Date: Sat, 27 Aug 2011 16:23:49 -0500 Subject: [PATCH 082/421] Add an alias for ga --> git add, too --- plugins/git/git.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 37bfd383a..4fcf9425d 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -31,6 +31,8 @@ alias glgg='git log --graph --max-count=5' compdef _git glgg=git-log alias gss='git status -s' compdef _git gss=git-status +alias ga='git add' +compdef _git ga=git-add # Git and svn mix alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk' From 9d67d75b0ad62242e60db1bd6d22ae7ea252c7bc Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Tue, 30 Aug 2011 20:56:13 -0700 Subject: [PATCH 083/421] Revert "Enable red dots during completion by default". After a few weeks of using this, I'd prefer this to not be enabled by default. My bad for suggesting that in the first place. This reverts commit fc49b4a4ded376cd82b813dcb6d72fdc050b7bed. --- lib/completion.zsh | 2 +- templates/zshrc.zsh-template | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/completion.zsh b/lib/completion.zsh index 2a457402a..b3cc91822 100644 --- a/lib/completion.zsh +++ b/lib/completion.zsh @@ -59,7 +59,7 @@ zstyle ':completion:*:*:*:users' ignored-patterns \ # ... unless we really want to. zstyle '*' single-ignored show -if [ "$DISABLE_COMPLETION_WAITING_DOTS" != "true" ]; then +if [ "x$COMPLETION_WAITING_DOTS" = "xtrue" ]; then expand-or-complete-with-dots() { echo -n "\e[31m......\e[0m" zle expand-or-complete diff --git a/templates/zshrc.zsh-template b/templates/zshrc.zsh-template index 4de1fa4e9..1ab40aba6 100644 --- a/templates/zshrc.zsh-template +++ b/templates/zshrc.zsh-template @@ -19,8 +19,8 @@ ZSH_THEME="robbyrussell" # Uncomment following line if you want to disable autosetting terminal title. # DISABLE_AUTO_TITLE="true" -# Uncomment following line if you want disable red dots displayed while waiting for completion -# DISABLE_COMPLETION_WAITING_DOTS="true" +# Uncomment following line if you want red dots to be displayed while waiting for completion +# COMPLETION_WAITING_DOTS="true" # Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*) # Example format: plugins=(rails git textmate ruby lighthouse) From 9c5c70dc0a2531b621ba825c2599189717694d56 Mon Sep 17 00:00:00 2001 From: Hakan Ensari Date: Wed, 31 Aug 2011 12:51:10 +0100 Subject: [PATCH 084/421] order aliases alphabetically --- plugins/bundler/bundler.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh index a6c116407..17e17efd9 100644 --- a/plugins/bundler/bundler.plugin.zsh +++ b/plugins/bundler/bundler.plugin.zsh @@ -1,8 +1,8 @@ alias be="bundle exec" alias bi="bundle install" alias bl="bundle list" -alias bu="bundle update" alias bp="bundle package" +alias bu="bundle update" # The following is based on https://github.com/gma/bundler-exec From ee507c90461beb06590af1c5e30bd78a62d8c4be Mon Sep 17 00:00:00 2001 From: Hakan Ensari Date: Wed, 31 Aug 2011 12:53:02 +0100 Subject: [PATCH 085/421] add foreman, nanoc, and rainbows to list of bundled commands --- plugins/bundler/bundler.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh index 17e17efd9..bd26ca312 100644 --- a/plugins/bundler/bundler.plugin.zsh +++ b/plugins/bundler/bundler.plugin.zsh @@ -6,7 +6,7 @@ alias bu="bundle update" # The following is based on https://github.com/gma/bundler-exec -bundled_commands=(cap capify cucumber guard heroku rackup rails rake rspec ruby shotgun spec spork thin unicorn unicorn_rails) +bundled_commands=(cap capify cucumber foreman guard heroku nanoc rackup rails rainbows rake rspec ruby shotgun spec spork thin unicorn unicorn_rails) ## Functions From fe175661fddd04691cc03012f84490e729cf2bae Mon Sep 17 00:00:00 2001 From: Max Gonzih Date: Fri, 2 Sep 2011 16:06:32 +0300 Subject: [PATCH 086/421] vundle call fixed for new vundle version --- plugins/vundle/vundle.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/vundle/vundle.plugin.zsh b/plugins/vundle/vundle.plugin.zsh index 39c36ac59..d7ab4858d 100644 --- a/plugins/vundle/vundle.plugin.zsh +++ b/plugins/vundle/vundle.plugin.zsh @@ -12,11 +12,11 @@ function vundle-init () { function vundle () { vundle-init - vim -c "execute \"BundleInstall\" | q" + vim -c "execute \"BundleInstall\" | q | q" } function vundle-update () { vundle-init - vim -c "execute \"BundleInstall!\" | q" + vim -c "execute \"BundleInstall!\" | q | q" } From 965e1cfefa41bd0419126d9321eecec4fcbbb0e3 Mon Sep 17 00:00:00 2001 From: Mario Fernandez Date: Sat, 10 Sep 2011 11:35:08 +0200 Subject: [PATCH 087/421] fix completion for commands wrapped with bundler --- plugins/bundler/bundler.plugin.zsh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh index a6c116407..bd77b0781 100644 --- a/plugins/bundler/bundler.plugin.zsh +++ b/plugins/bundler/bundler.plugin.zsh @@ -33,5 +33,10 @@ _run-with-bundler() { ## Main program for cmd in $bundled_commands; do - alias $cmd="_run-with-bundler $cmd" + eval "function bundled_$cmd () { _run-with-bundler $cmd \$@}" + alias $cmd=bundled_$cmd + + if which _$cmd > /dev/null 2>&1; then + compdef _$cmd bundled_$cmd + fi done From c6e8c856cb59e24362fe50fd93de097f30205420 Mon Sep 17 00:00:00 2001 From: Zach Riggle Date: Sat, 10 Sep 2011 06:48:40 -0400 Subject: [PATCH 088/421] [plugins/grails] Added grails plugin --- plugins/grails/grails.plugin.zsh | 62 ++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100755 plugins/grails/grails.plugin.zsh diff --git a/plugins/grails/grails.plugin.zsh b/plugins/grails/grails.plugin.zsh new file mode 100755 index 000000000..95b1324e7 --- /dev/null +++ b/plugins/grails/grails.plugin.zsh @@ -0,0 +1,62 @@ + +if [[ ! -d $GRAILS_HOME/scripts ]]; +then + echo "$0:" + echo "Please set \$GRAILS_HOME to use the 'grails' plugin, and ensure that \$GRAILS_HOME/scripts exists" +fi + +_enumerateGrailsScripts() { + # Default directoryies + directories=($GRAILS_HOME/scripts ~/.grails/scripts ./scripts) + + # Check all of the plugins directories, if they exist + if [ -d plugins ] + then + directories+=(plugins/*/scripts) + fi + + # Enumerate all of the Groovy files + files=() + for dir in $directories; + do + if [ -d $dir ] + then + files+=($dir/*.groovy) + fi + done + + # Don't try to basename () + if [ ${#files} -eq 0 ]; + then + return + fi + + # - Strip the path + # - Remove all scripts with a leading '_' + # - PackagePlugin_.groovy -> PackagePlugin + # - PackagePlugin -> Package-Plugin + # - Package-Plugin -> package-plugin + basename $files \ + | grep -vE -e '^_' \ + | sed -E -e 's/^_?([^_]+)_?.groovy/\1/'\ + -e 's/([a-z])([A-Z])/\1-\2/g' \ + | tr "[:upper:]" "[:lower:]" \ + | sort \ + | uniq +} + +_grails() { + if (( CURRENT == 2 )); then + scripts=( $(_enumerateGrailsScripts) ) + + if [ ${#scripts} -ne 0 ]; + then + _multi_parts / scripts + return + fi + fi + + _files +} + +compdef _grails grails From 51736343595eb83f9d2364b50cf0b62227a4fab4 Mon Sep 17 00:00:00 2001 From: Zach Riggle Date: Sat, 10 Sep 2011 07:00:31 -0400 Subject: [PATCH 089/421] [plugins/grails] Use globbing instead of grep --- plugins/grails/grails.plugin.zsh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugins/grails/grails.plugin.zsh b/plugins/grails/grails.plugin.zsh index 95b1324e7..88e8b9008 100755 --- a/plugins/grails/grails.plugin.zsh +++ b/plugins/grails/grails.plugin.zsh @@ -21,7 +21,7 @@ _enumerateGrailsScripts() { do if [ -d $dir ] then - files+=($dir/*.groovy) + files+=($dir/[^_]*.groovy) fi done @@ -37,7 +37,6 @@ _enumerateGrailsScripts() { # - PackagePlugin -> Package-Plugin # - Package-Plugin -> package-plugin basename $files \ - | grep -vE -e '^_' \ | sed -E -e 's/^_?([^_]+)_?.groovy/\1/'\ -e 's/([a-z])([A-Z])/\1-\2/g' \ | tr "[:upper:]" "[:lower:]" \ From f9c143b69c30396f79e2cb75d11e70e4b983c1bd Mon Sep 17 00:00:00 2001 From: Zach Riggle Date: Sat, 10 Sep 2011 07:06:26 -0400 Subject: [PATCH 090/421] [plugins/grails] Remove warning message; it's always displayed --- plugins/grails/grails.plugin.zsh | 7 ------- 1 file changed, 7 deletions(-) diff --git a/plugins/grails/grails.plugin.zsh b/plugins/grails/grails.plugin.zsh index 88e8b9008..cc6f9c53b 100755 --- a/plugins/grails/grails.plugin.zsh +++ b/plugins/grails/grails.plugin.zsh @@ -1,10 +1,3 @@ - -if [[ ! -d $GRAILS_HOME/scripts ]]; -then - echo "$0:" - echo "Please set \$GRAILS_HOME to use the 'grails' plugin, and ensure that \$GRAILS_HOME/scripts exists" -fi - _enumerateGrailsScripts() { # Default directoryies directories=($GRAILS_HOME/scripts ~/.grails/scripts ./scripts) From ecfac1cd74cada9594531d6c0217e511914a14f6 Mon Sep 17 00:00:00 2001 From: David Aaron Fendley Date: Sun, 11 Sep 2011 15:19:49 -0500 Subject: [PATCH 091/421] Added VCS prompt to Apple theme. --- themes/apple.zsh-theme | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/themes/apple.zsh-theme b/themes/apple.zsh-theme index 350548e36..92f1df941 100644 --- a/themes/apple.zsh-theme +++ b/themes/apple.zsh-theme @@ -2,4 +2,25 @@ function toon { echo -n "" } -PROMPT='%{$fg[magenta]%}$(toon)%{$reset_color%} %~/ %{$reset_color%}' +get_git_dirty() { + git diff --quiet || echo '*' +} + +autoload -Uz vcs_info +autoload -U colors && colors +zstyle ':vcs_info:*' check-for-changes true +zstyle ':vcs_info:*' unstagedstr '%F{red}*' # display this when there are unstaged changes +zstyle ':vcs_info:*' stagedstr '%F{yellow}+' # display this when there are staged changes +zstyle ':vcs_info:*' actionformats \ + '%F{5}%F{5}[%F{2}%b%F{3}|%F{1}%a%c%u%F{5}]%f ' +zstyle ':vcs_info:*' formats \ + '%F{5}%F{5}[%F{2}%b%c%u%F{5}]%f ' +zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{3}%r' +zstyle ':vcs_info:*' enable git cvs svn + +precmd () { + vcs_info +} + +setopt prompt_subst +PROMPT='%{$fg[magenta]%}$(toon)%{$reset_color%} %~/ %{$reset_color%}${vcs_info_msg_0_}%{$reset_color%}' From 701f775c18f1f8a1acdd3282cc3f68f1075904ad Mon Sep 17 00:00:00 2001 From: Gil Vandendriesssche Date: Wed, 14 Sep 2011 10:13:01 +0300 Subject: [PATCH 092/421] Textmate plugin update to take Gemfile and cucumber features in account --- plugins/textmate/textmate.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/textmate/textmate.plugin.zsh b/plugins/textmate/textmate.plugin.zsh index aa2f75f4f..a11a097f5 100644 --- a/plugins/textmate/textmate.plugin.zsh +++ b/plugins/textmate/textmate.plugin.zsh @@ -1,5 +1,5 @@ alias et='mate .' -alias ett='mate app config lib db public spec test Rakefile Capfile Todo' +alias ett='mate Gemfile app config features lib db public spec test Rakefile Capfile Todo' alias etp='mate app config lib db public spec test vendor/plugins vendor/gems Rakefile Capfile Todo' alias etts='mate app config lib db public script spec test vendor/plugins vendor/gems Rakefile Capfile Todo' From 1ad8fde027ea3e66c0ed8f1498dfcfb07e0aefe6 Mon Sep 17 00:00:00 2001 From: Philipp Bosch Date: Thu, 15 Sep 2011 15:00:47 +0200 Subject: [PATCH 093/421] Add basic autocompletion for terminitor (https://github.com/achiu/terminitor). --- plugins/terminitor/_terminitor | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 plugins/terminitor/_terminitor diff --git a/plugins/terminitor/_terminitor b/plugins/terminitor/_terminitor new file mode 100644 index 000000000..7d267643b --- /dev/null +++ b/plugins/terminitor/_terminitor @@ -0,0 +1,26 @@ +#compdef terminitor +#autoload + +# terminitor zsh completion + +local -a _1st_arguments +_1st_arguments=( + 'create:create a Termfile in directory' + 'delete:delete terminitor script' + 'edit:open termitor script' + 'fetch:clone the designated repo and run setup' + 'help:Describe available tasks or one specific task' + 'init:create initial root terminitor folder' + 'list:lists all terminitor scripts' + 'setup:execute setup in the terminitor script' + 'start:runs the terminitor script' + 'update:update Terminitor to new global path(.config/.terminitor)' +) + +_arguments \ + '*:: :->subcmds' && return 0 + +if (( CURRENT == 1 )); then + _describe -t commands "terminitor task" _1st_arguments + return +fi From 47d0735b5fb5e9e82d8fb5d71f4f4c814e977b68 Mon Sep 17 00:00:00 2001 From: Philipp Bosch Date: Thu, 15 Sep 2011 15:18:15 +0200 Subject: [PATCH 094/421] terminitor plugin: add autocompletion for start subcommand. --- plugins/terminitor/_terminitor | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/plugins/terminitor/_terminitor b/plugins/terminitor/_terminitor index 7d267643b..0326506eb 100644 --- a/plugins/terminitor/_terminitor +++ b/plugins/terminitor/_terminitor @@ -3,6 +3,10 @@ # terminitor zsh completion +_terminitor_available_scripts() { + scripts=(`for SCRIPT in ~/.config/terminitor/*.term ; do basename $SCRIPT .term ; done`) +} + local -a _1st_arguments _1st_arguments=( 'create:create a Termfile in directory' @@ -17,6 +21,8 @@ _1st_arguments=( 'update:update Terminitor to new global path(.config/.terminitor)' ) +local expl + _arguments \ '*:: :->subcmds' && return 0 @@ -24,3 +30,9 @@ if (( CURRENT == 1 )); then _describe -t commands "terminitor task" _1st_arguments return fi + +case "$words[1]" in + start) + _terminitor_available_scripts + _wanted scripts expl 'installed scripts' compadd -a scripts ;; +esac From 0d285e3a0f12b8bf9f0ac63d5ef7930ab9455bff Mon Sep 17 00:00:00 2001 From: Philipp Bosch Date: Thu, 15 Sep 2011 15:22:05 +0200 Subject: [PATCH 095/421] terminitor plugin: add autocompletion also for edit, delete and setup subcommands. --- plugins/terminitor/_terminitor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/terminitor/_terminitor b/plugins/terminitor/_terminitor index 0326506eb..1ce87c3ad 100644 --- a/plugins/terminitor/_terminitor +++ b/plugins/terminitor/_terminitor @@ -32,7 +32,7 @@ if (( CURRENT == 1 )); then fi case "$words[1]" in - start) + start|edit|delete|setup) _terminitor_available_scripts _wanted scripts expl 'installed scripts' compadd -a scripts ;; esac From 14411cb904b7682fe2a5c69861bfffa96f124707 Mon Sep 17 00:00:00 2001 From: Paul Gideon Dann Date: Mon, 19 Sep 2011 12:40:29 +0100 Subject: [PATCH 096/421] Tweaks to the wakeonlan plugin These were suggested by sorin-ionescu in pull request #343. --- plugins/wakeonlan/wakeonlan.plugin.zsh | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/plugins/wakeonlan/wakeonlan.plugin.zsh b/plugins/wakeonlan/wakeonlan.plugin.zsh index 08db1bdea..752bfc600 100644 --- a/plugins/wakeonlan/wakeonlan.plugin.zsh +++ b/plugins/wakeonlan/wakeonlan.plugin.zsh @@ -1,15 +1,18 @@ function wake() { - local config_file=~/.wakeonlan/$1 - if [[ ! -f $config_file ]]; then + local config_file="$HOME/.wakeonlan/$1" + if [[ ! -f "$config_file" ]]; then echo "ERROR: There is no configuration file at \"$config_file\"." - return + return 1 fi - which wakeonlan > /dev/null - if [[ ! $? == 0 ]]; then + if (( ! $+commands[wakeonlan] )); then echo "ERROR: Can't find \"wakeonlan\". Are you sure it's installed?" - return + return 1 fi wakeonlan -f $config_file } + +if (( $+functions[compdef] )); then + compdef "_arguments '1:device to wake:_files -W '\''$HOME/.wakeonlan'\'''" wake +fi From aa7ddd51cc4bd6afca23760ba3e3cc777305b1da Mon Sep 17 00:00:00 2001 From: Paul Gideon Dann Date: Mon, 19 Sep 2011 12:45:34 +0100 Subject: [PATCH 097/421] Forgot to quote the path parameter to wakeonlan --- plugins/wakeonlan/wakeonlan.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/wakeonlan/wakeonlan.plugin.zsh b/plugins/wakeonlan/wakeonlan.plugin.zsh index 752bfc600..8406b8f7d 100644 --- a/plugins/wakeonlan/wakeonlan.plugin.zsh +++ b/plugins/wakeonlan/wakeonlan.plugin.zsh @@ -10,7 +10,7 @@ function wake() { return 1 fi - wakeonlan -f $config_file + wakeonlan -f "$config_file" } if (( $+functions[compdef] )); then From e94039d62b04e61507cbaa57c5fa955d97c8eca9 Mon Sep 17 00:00:00 2001 From: Paul Gideon Dann Date: Mon, 19 Sep 2011 15:42:58 +0100 Subject: [PATCH 098/421] Splitting wakeonlan plugin completion into separate file --- plugins/wakeonlan/_wake | 4 ++++ plugins/wakeonlan/wakeonlan.plugin.zsh | 4 ---- 2 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 plugins/wakeonlan/_wake diff --git a/plugins/wakeonlan/_wake b/plugins/wakeonlan/_wake new file mode 100644 index 000000000..4ab10d374 --- /dev/null +++ b/plugins/wakeonlan/_wake @@ -0,0 +1,4 @@ +#compdef wake +#autoload + +_arguments "1:device to wake:_files -W '$HOME/.wakeonlan'" && return 0 diff --git a/plugins/wakeonlan/wakeonlan.plugin.zsh b/plugins/wakeonlan/wakeonlan.plugin.zsh index 8406b8f7d..6cef7d44a 100644 --- a/plugins/wakeonlan/wakeonlan.plugin.zsh +++ b/plugins/wakeonlan/wakeonlan.plugin.zsh @@ -12,7 +12,3 @@ function wake() { wakeonlan -f "$config_file" } - -if (( $+functions[compdef] )); then - compdef "_arguments '1:device to wake:_files -W '\''$HOME/.wakeonlan'\'''" wake -fi From d22b253ce2bd69d908f0c2fce75c5d9ab09edda3 Mon Sep 17 00:00:00 2001 From: Roman Kamyk Date: Tue, 20 Sep 2011 10:16:51 +0200 Subject: [PATCH 099/421] split rkj into two themes. --- themes/rkj-repos.zsh-theme | 29 +++++++++++++++++++++++++++++ themes/rkj.zsh-theme | 25 +------------------------ 2 files changed, 30 insertions(+), 24 deletions(-) create mode 100644 themes/rkj-repos.zsh-theme diff --git a/themes/rkj-repos.zsh-theme b/themes/rkj-repos.zsh-theme new file mode 100644 index 000000000..318c315bb --- /dev/null +++ b/themes/rkj-repos.zsh-theme @@ -0,0 +1,29 @@ +# user, host, full path, and time/date +# on two lines for easier vgrepping +# entry in a nice long thread on the Arch Linux forums: http://bbs.archlinux.org/viewtopic.php?pid=521888#p521888 + +function hg_prompt_info { + hg prompt --angle-brackets "\ +%{$reset_color%}>\ +%{$reset_color%}>\ +%{$fg[red]%}%{$reset_color%}< +patches: >" 2>/dev/null +} + +ZSH_THEME_GIT_PROMPT_ADDED="%{$fg[cyan]%}+" +ZSH_THEME_GIT_PROMPT_MODIFIED="%{$fg[yellow]%}✱" +ZSH_THEME_GIT_PROMPT_DELETED="%{$fg[red]%}✗" +ZSH_THEME_GIT_PROMPT_RENAMED="%{$fg[blue]%}➦" +ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg[magenta]%}✂" +ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[grey]%}✈" + +function mygit() { + ref=$(git symbolic-ref HEAD 2> /dev/null) || return + echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$( git_prompt_status )%{$reset_color%}$ZSH_THEME_GIT_PROMPT_SUFFIX" +} + +# alternate prompt with git & hg +PROMPT=$'%{\e[0;34m%}%B┌─[%b%{\e[0m%}%{\e[1;32m%}%n%{\e[1;30m%}@%{\e[0m%}%{\e[0;36m%}%m%{\e[0;34m%}%B]%b%{\e[0m%} - %b%{\e[0;34m%}%B[%b%{\e[1;37m%}%~%{\e[0;34m%}%B]%b%{\e[0m%} - %{\e[0;34m%}%B[%b%{\e[0;33m%}'%D{"%Y-%m-%d %I:%M:%S"}%b$'%{\e[0;34m%}%B]%b%{\e[0m%} +%{\e[0;34m%}%B└─%B[%{\e[1;35m%}$%{\e[0;34m%}%B] <$(mygit)$(hg_prompt_info)>%{\e[0m%}%b ' +PS2=$' \e[0;34m%}%B>%{\e[0m%}%b ' + diff --git a/themes/rkj.zsh-theme b/themes/rkj.zsh-theme index 4b49a2a09..81b701e07 100644 --- a/themes/rkj.zsh-theme +++ b/themes/rkj.zsh-theme @@ -2,30 +2,7 @@ # on two lines for easier vgrepping # entry in a nice long thread on the Arch Linux forums: http://bbs.archlinux.org/viewtopic.php?pid=521888#p521888 -function hg_prompt_info { - hg prompt --angle-brackets "\ -%{$reset_color%}>\ -%{$reset_color%}>\ -%{$fg[red]%}%{$reset_color%}< -patches: >" 2>/dev/null -} - -ZSH_THEME_GIT_PROMPT_ADDED="%{$fg[cyan]%}+" -ZSH_THEME_GIT_PROMPT_MODIFIED="%{$fg[yellow]%}✱" -ZSH_THEME_GIT_PROMPT_DELETED="%{$fg[red]%}✗" -ZSH_THEME_GIT_PROMPT_RENAMED="%{$fg[blue]%}➦" -ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg[magenta]%}✂" -ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[grey]%}✈" - -function mygit() { - ref=$(git symbolic-ref HEAD 2> /dev/null) || return - echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$( git_prompt_status )%{$reset_color%}$ZSH_THEME_GIT_PROMPT_SUFFIX" -} - PROMPT=$'%{\e[0;34m%}%B┌─[%b%{\e[0m%}%{\e[1;32m%}%n%{\e[1;30m%}@%{\e[0m%}%{\e[0;36m%}%m%{\e[0;34m%}%B]%b%{\e[0m%} - %b%{\e[0;34m%}%B[%b%{\e[1;37m%}%~%{\e[0;34m%}%B]%b%{\e[0m%} - %{\e[0;34m%}%B[%b%{\e[0;33m%}'%D{"%Y-%m-%d %I:%M:%S"}%b$'%{\e[0;34m%}%B]%b%{\e[0m%} %{\e[0;34m%}%B└─%B[%{\e[1;35m%}$%{\e[0;34m%}%B]%{\e[0m%}%b ' -#PROMPT=$'%{\e[0;34m%}%B┌─[%b%{\e[0m%}%{\e[1;32m%}%n%{\e[1;30m%}@%{\e[0m%}%{\e[0;36m%}%m%{\e[0;34m%}%B]%b%{\e[0m%} - %b%{\e[0;34m%}%B[%b%{\e[1;37m%}%~%{\e[0;34m%}%B]%b%{\e[0m%} - %{\e[0;34m%}%B[%b%{\e[0;33m%}'%D{"%Y-%m-%d %I:%M:%S"}%b$'%{\e[0;34m%}%B]%b%{\e[0m%} -#%{\e[0;34m%}%B└─%B[%{\e[1;35m%}$%{\e[0;34m%}%B] <$(mygit)$(hg_prompt_info)>%{\e[0m%}%b ' -PS2=$' \e[0;34m%}%B>%{\e[0m%}%b ' -#RPROMPT='$(mygit)' + From 7ba54d197dac8d5ae380271259ba4d8843f01b4f Mon Sep 17 00:00:00 2001 From: Paul Gideon Dann Date: Tue, 20 Sep 2011 09:26:32 +0100 Subject: [PATCH 100/421] Adding README file for the wakeonlan plugin --- plugins/wakeonlan/README | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 plugins/wakeonlan/README diff --git a/plugins/wakeonlan/README b/plugins/wakeonlan/README new file mode 100644 index 000000000..16fdd4587 --- /dev/null +++ b/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 + +...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. From 2ca2ad3fc5b8635b22d33fd0f1c1511f44e9fff8 Mon Sep 17 00:00:00 2001 From: fceccon Date: Tue, 20 Sep 2011 12:04:06 +0200 Subject: [PATCH 101/421] First search in the custom folder for the theme --- oh-my-zsh.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index c4522491b..6ab2ba35f 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -45,7 +45,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 From c2d0cdd5330ae072468ca801d0b5750bf4fae7c3 Mon Sep 17 00:00:00 2001 From: James Moore Date: Fri, 23 Sep 2011 10:18:09 -0700 Subject: [PATCH 102/421] This needs to explicitly check the return value --- plugins/svn/svn.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/svn/svn.plugin.zsh b/plugins/svn/svn.plugin.zsh index 53a8a513a..b1f873be5 100644 --- a/plugins/svn/svn.plugin.zsh +++ b/plugins/svn/svn.plugin.zsh @@ -1,5 +1,5 @@ function svn_prompt_info { - if [ in_svn ]; then + if [[ in_svn == 1 ]]; then echo "$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_PREFIX\ $ZSH_THEME_REPO_NAME_COLOR$(svn_get_repo_name)$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR$(svn_dirty)$ZSH_PROMPT_BASE_COLOR" fi From b2703a3c8a6c860eeea8a36bc693a1508372d8c1 Mon Sep 17 00:00:00 2001 From: James Moore Date: Fri, 23 Sep 2011 10:51:20 -0700 Subject: [PATCH 103/421] This is the correct way to check the return value --- plugins/svn/svn.plugin.zsh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/svn/svn.plugin.zsh b/plugins/svn/svn.plugin.zsh index b1f873be5..e2cf96ca3 100644 --- a/plugins/svn/svn.plugin.zsh +++ b/plugins/svn/svn.plugin.zsh @@ -1,5 +1,5 @@ function svn_prompt_info { - if [[ in_svn == 1 ]]; then + if [ $(in_svn) ]; then echo "$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_PREFIX\ $ZSH_THEME_REPO_NAME_COLOR$(svn_get_repo_name)$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR$(svn_dirty)$ZSH_PROMPT_BASE_COLOR" fi @@ -13,7 +13,7 @@ function in_svn() { } function svn_get_repo_name { - if [ in_svn ]; then + if [ $(in_svn) ]; then svn info | sed -n 's/Repository\ Root:\ .*\///p' | read SVN_ROOT svn info | sed -n "s/URL:\ .*$SVN_ROOT\///p" | sed "s/\/.*$//" @@ -21,13 +21,13 @@ function svn_get_repo_name { } function svn_get_rev_nr { - if [ in_svn ]; then + if [ $(in_svn) ]; then svn info 2> /dev/null | sed -n s/Revision:\ //p fi } function svn_dirty_choose { - if [ in_svn ]; then + if [ $(in_svn) ]; then s=$(svn status|grep -E '^\s*[ACDIM!?L]' 2>/dev/null) if [ $s ]; then echo $1 From 8287cc177e993aebc8ee0a9f5ee5a1cee6893253 Mon Sep 17 00:00:00 2001 From: Nick Stenning Date: Sat, 24 Sep 2011 17:09:57 +0100 Subject: [PATCH 104/421] Better cake completion: don't barf on options, and don't clobber user's namespace --- plugins/cake/cake.plugin.zsh | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/plugins/cake/cake.plugin.zsh b/plugins/cake/cake.plugin.zsh index f968c71d5..1d0d196ee 100644 --- a/plugins/cake/cake.plugin.zsh +++ b/plugins/cake/cake.plugin.zsh @@ -1,18 +1,22 @@ # Set this to 1 if you want to cache the tasks -cache_task_list=1 +_cake_cache_task_list=1 # Cache filename -cache_file='.cake_task_cache' +_cake_task_cache_file='.cake_task_cache' + +_cake_get_target_list () { + cake | grep '^cake ' | sed -e "s/cake \([^ ]*\) .*/\1/" | grep -v '^$' +} _cake_does_target_list_need_generating () { - if [ $cache_task_list -eq 0 ]; then + if [ ${_cake_cache_task_list} -eq 0 ]; then return 1; fi - if [ ! -f $cache_file ]; then return 0; + if [ ! -f ${_cake_task_cache_file} ]; then return 0; else - accurate=$(stat -f%m $cache_file) + accurate=$(stat -f%m $_cake_task_cache_file) changed=$(stat -f%m Cakefile) return $(expr $accurate '>=' $changed) fi @@ -21,12 +25,12 @@ _cake_does_target_list_need_generating () { _cake () { if [ -f Cakefile ]; then if _cake_does_target_list_need_generating; then - cake | sed -e "s/cake \([^ ]*\) .*/\1/" | grep -v '^$' > $cache_file - compadd `cat $cache_file` + _cake_get_target_list > ${_cake_task_cache_file} + compadd `cat ${_cake_task_cache_file}` else - compadd `cake | sed -e "s/cake \([^ ]*\) .*/\1/" | grep -v '^$'` + compadd `_cake_get_target_list` fi fi } -compdef _cake cake +compdef _cake cake \ No newline at end of file From c1c7b0e4af8a33c25118679f075f63a3b67b14f4 Mon Sep 17 00:00:00 2001 From: Dan Shearmur Date: Mon, 26 Sep 2011 14:44:42 +0100 Subject: [PATCH 105/421] added git merge as gm --- plugins/git/git.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 4fcf9425d..183c56c1c 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -33,6 +33,8 @@ alias gss='git status -s' compdef _git gss=git-status alias ga='git add' compdef _git ga=git-add +alias gm='git merge' +compdef _git gm=git-merge # Git and svn mix alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk' From 40cc4dabfb7cd91e09e70a3dd11f73b20d303303 Mon Sep 17 00:00:00 2001 From: Mark Szymanski Date: Tue, 4 Oct 2011 21:27:36 -0500 Subject: [PATCH 106/421] Add new theme: wuffers --- themes/wuffers.zsh-theme | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 themes/wuffers.zsh-theme diff --git a/themes/wuffers.zsh-theme b/themes/wuffers.zsh-theme new file mode 100644 index 000000000..004b5ebc4 --- /dev/null +++ b/themes/wuffers.zsh-theme @@ -0,0 +1,5 @@ +ZSH_THEME_GIT_PROMPT_PREFIX="$fg_bold[blue][" +ZSH_THEME_GIT_PROMPT_SUFFIX="]$reset_color " +ZSH_THEME_GIT_PROMPT_DIRTY="$fg_bold[red] x$fg_bold[blue]" + +PROMPT='$(git_prompt_info)$fg_bold[green]{$(rvm current)}$reset_color $fg[cyan]%c$reset_color ' From c373c7153be77a91d30a9c6d5ea96b18e911823c Mon Sep 17 00:00:00 2001 From: Mark Szymanski Date: Tue, 4 Oct 2011 21:30:32 -0500 Subject: [PATCH 107/421] Fix up some wonkiness --- themes/wuffers.zsh-theme | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/themes/wuffers.zsh-theme b/themes/wuffers.zsh-theme index 004b5ebc4..182d8a34f 100644 --- a/themes/wuffers.zsh-theme +++ b/themes/wuffers.zsh-theme @@ -1,5 +1,5 @@ -ZSH_THEME_GIT_PROMPT_PREFIX="$fg_bold[blue][" -ZSH_THEME_GIT_PROMPT_SUFFIX="]$reset_color " -ZSH_THEME_GIT_PROMPT_DIRTY="$fg_bold[red] x$fg_bold[blue]" +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}[" +ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%} " +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg_bold[red]%} x%{$fg_bold[blue]%}" -PROMPT='$(git_prompt_info)$fg_bold[green]{$(rvm current)}$reset_color $fg[cyan]%c$reset_color ' +PROMPT='%{$(git_prompt_info)%}%{$fg_bold[green]%}{%{$(rvm current)%}}%{$reset_color%} %{$fg[cyan]%}%c%{$reset_color%} ' From 878d569c6845198005dacc4e9a56b6610e46ffd9 Mon Sep 17 00:00:00 2001 From: Aslam Najeebdeen Date: Mon, 4 Jul 2011 15:37:11 +0530 Subject: [PATCH 108/421] FrontCube theme with git status --- themes/frontcube.zsh-theme | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 themes/frontcube.zsh-theme diff --git a/themes/frontcube.zsh-theme b/themes/frontcube.zsh-theme new file mode 100644 index 000000000..081fa2f29 --- /dev/null +++ b/themes/frontcube.zsh-theme @@ -0,0 +1,10 @@ +PROMPT=' +%{$fg_bold[gray]%}%~%{$fg_bold[blue]%}%{$fg_bold[blue]%} % %{$reset_color%} +%{$fg[green]%}➞ %{$reset_color%' + +RPROMPT='$(git_prompt_info)' + +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}[git:" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}] %{$fg[red]%}✖ %{$reset_color%}" +ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%}] %{$fg[green]%}✔%{$reset_color%}" From ebbead82abe59663cedd9f0ade4627e01548b4c1 Mon Sep 17 00:00:00 2001 From: Aslam Najeebdeen Date: Sat, 16 Jul 2011 17:31:57 +0530 Subject: [PATCH 109/421] RVM info --- themes/frontcube.zsh-theme | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/themes/frontcube.zsh-theme b/themes/frontcube.zsh-theme index 081fa2f29..d9f5b6d9c 100644 --- a/themes/frontcube.zsh-theme +++ b/themes/frontcube.zsh-theme @@ -1,8 +1,10 @@ +local rvm="%{$fg[green]%}[$(rvm-prompt i v g)]%{$reset_color%}" + PROMPT=' %{$fg_bold[gray]%}%~%{$fg_bold[blue]%}%{$fg_bold[blue]%} % %{$reset_color%} %{$fg[green]%}➞ %{$reset_color%' -RPROMPT='$(git_prompt_info)' +RPROMPT='$(git_prompt_info) $(rvm)' ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}[git:" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" From 7553d0171f7d1fe070a70af2c863fdadf6d7d5ac Mon Sep 17 00:00:00 2001 From: Gavin Huang Date: Tue, 18 Oct 2011 11:46:45 +0800 Subject: [PATCH 110/421] Replace "git-diff" with "git diff" in the git plugin --- plugins/git/git.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 183c56c1c..89b3259fe 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -9,7 +9,7 @@ alias gup='git fetch && git rebase' compdef _git gup=git-fetch alias gp='git push' compdef _git gp=git-push -gdv() { git-diff -w "$@" | view - } +gdv() { git diff -w "$@" | view - } compdef _git gdv=git-diff alias gc='git commit -v' compdef _git gc=git-commit From 81d94e6c9e3ebe5f0cb094474b1b2f96d2cf567b Mon Sep 17 00:00:00 2001 From: Godwin Ko Date: Wed, 12 Oct 2011 12:16:23 +0800 Subject: [PATCH 111/421] add rails runner alias --- plugins/rails/rails.plugin.zsh | 1 + plugins/rails3/rails3.plugin.zsh | 1 + 2 files changed, 2 insertions(+) diff --git a/plugins/rails/rails.plugin.zsh b/plugins/rails/rails.plugin.zsh index ac8119e83..4aa7a05d6 100644 --- a/plugins/rails/rails.plugin.zsh +++ b/plugins/rails/rails.plugin.zsh @@ -2,6 +2,7 @@ alias ss='thin --stats "/thin/stats" start' alias sg='ruby script/generate' alias sd='ruby script/destroy' alias sp='ruby script/plugin' +alias sr='ruby script/runner' alias ssp='ruby script/spec' alias rdbm='rake db:migrate' alias sc='ruby script/console' diff --git a/plugins/rails3/rails3.plugin.zsh b/plugins/rails3/rails3.plugin.zsh index f4ee637e6..a817b483f 100644 --- a/plugins/rails3/rails3.plugin.zsh +++ b/plugins/rails3/rails3.plugin.zsh @@ -14,6 +14,7 @@ alias rdb='_rails_command dbconsole' alias rdbm='rake db:migrate db:test:clone' alias rg='_rails_command generate' alias rp='_rails_command plugin' +alias rr='_rails_command runner' alias rs='_rails_command server' alias rsd='_rails_command server --debugger' alias devlog='tail -f log/development.log' From 6095fe4f7157ba444addaf436f9f44e3d491a784 Mon Sep 17 00:00:00 2001 From: Peter Hoeg Date: Thu, 20 Oct 2011 14:12:13 +0800 Subject: [PATCH 112/421] add: battery plugin --- plugins/battery/battery.plugin.zsh | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 plugins/battery/battery.plugin.zsh diff --git a/plugins/battery/battery.plugin.zsh b/plugins/battery/battery.plugin.zsh new file mode 100644 index 000000000..bc75c5cf9 --- /dev/null +++ b/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 From a5545bd31c76a4f34339dc4e7b87f74fa0174015 Mon Sep 17 00:00:00 2001 From: Peter Hoeg Date: Thu, 20 Oct 2011 14:12:56 +0800 Subject: [PATCH 113/421] add: rbenv plugin --- plugins/rbenv/rbenv.plugin.zsh | 44 ++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 plugins/rbenv/rbenv.plugin.zsh diff --git a/plugins/rbenv/rbenv.plugin.zsh b/plugins/rbenv/rbenv.plugin.zsh new file mode 100644 index 000000000..136ea75e0 --- /dev/null +++ b/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 From 31cddcd32427a5f5d3daa0da168d39aba5b510b4 Mon Sep 17 00:00:00 2001 From: Peter Hoeg Date: Thu, 20 Oct 2011 15:27:49 +0800 Subject: [PATCH 114/421] fix: rbenv: I need to find a proper way to test changes... --- plugins/rbenv/rbenv.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/rbenv/rbenv.plugin.zsh b/plugins/rbenv/rbenv.plugin.zsh index 136ea75e0..ae37404cd 100644 --- a/plugins/rbenv/rbenv.plugin.zsh +++ b/plugins/rbenv/rbenv.plugin.zsh @@ -14,7 +14,7 @@ for rbenvdir in "$HOME/.rbenv" "/usr/local/rbenv" "/opt/rbenv" ; do } function current_gemset() { - echo "$(rbenv gemset active 2&>/dev/null | sed -e ":a" -e '$ s/\n/+/gp;N;b a') | head -n1" + echo "$(rbenv gemset active 2&>/dev/null | sed -e ":a" -e '$ s/\n/+/gp;N;b a' | head -n1)" } function gems { From a2afccae194470e71dd256b594964ddfe0e5c221 Mon Sep 17 00:00:00 2001 From: ornicar Date: Tue, 25 Oct 2011 09:53:59 +0200 Subject: [PATCH 115/421] Add yaourt --sucre alias in archlinux plugin --- plugins/archlinux/archlinux.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/archlinux/archlinux.plugin.zsh b/plugins/archlinux/archlinux.plugin.zsh index b5e519036..294dc5354 100644 --- a/plugins/archlinux/archlinux.plugin.zsh +++ b/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 From 0f13387b074aa20b035251ea85e4f8a82eddbfa8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lache=CC=80ze=20Alexandre?= Date: Wed, 2 Nov 2011 03:55:26 +0100 Subject: [PATCH 116/421] Added completion plugin for jake --- plugins/jake-node/jake-node.plugin.zsh | 28 ++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 plugins/jake-node/jake-node.plugin.zsh diff --git a/plugins/jake-node/jake-node.plugin.zsh b/plugins/jake-node/jake-node.plugin.zsh new file mode 100644 index 000000000..d629fa4bc --- /dev/null +++ b/plugins/jake-node/jake-node.plugin.zsh @@ -0,0 +1,28 @@ +##-----Autocomplete for Jake tool---- +# Jake : https://github.com/mde/jake +# Warning : Jakefile should have the right cas : Jakefile +# Add a .jake_tasks file to your working directory +# Author : Alexandre Lacheze (@al3xstrat) +# Inspiration : http://weblog.rubyonrails.org/2006/3/9/fast-rake-task-completion-for-zsh + +function _jake_does_task_list_need_generating () { + if [ ! -f .jake_tasks ]; then + return 0; + else + accurate=$(stat -f%m .jake_tasks) + changed=$(stat -f%m Jakefile) + return $(expr $accurate '>=' $changed) + fi +} + +function _jake () { + if [ -f Jakefile ]; then + if _jake_does_task_list_need_generating; then + echo "\nGenerating .jake_tasks..." > /dev/stderr + jake -T | cut -d " " -f 2 | sed -E "s/.\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" > .jake_tasks + fi + reply=( `cat .jake_tasks` ) + fi +} + +compctl -K _jake jake \ No newline at end of file From a78387cb5d46c98336a8fa0abd72d682f1c00c8b Mon Sep 17 00:00:00 2001 From: Alexandre Date: Wed, 2 Nov 2011 13:29:28 +0100 Subject: [PATCH 117/421] Minor modifications in comment-header --- plugins/jake-node/jake-node.plugin.zsh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/jake-node/jake-node.plugin.zsh b/plugins/jake-node/jake-node.plugin.zsh index d629fa4bc..d365aee9b 100644 --- a/plugins/jake-node/jake-node.plugin.zsh +++ b/plugins/jake-node/jake-node.plugin.zsh @@ -1,7 +1,7 @@ -##-----Autocomplete for Jake tool---- +#---oh-my-zsh plugin : take Autocomplete for Jake tool--- # Jake : https://github.com/mde/jake -# Warning : Jakefile should have the right cas : Jakefile -# Add a .jake_tasks file to your working directory +# Warning : Jakefile should have the right case : Jakefile +# Warnign : Add a .jake_tasks file to your working directory # Author : Alexandre Lacheze (@al3xstrat) # Inspiration : http://weblog.rubyonrails.org/2006/3/9/fast-rake-task-completion-for-zsh From 456993e03be3193056b9a18a809a18414cf9df00 Mon Sep 17 00:00:00 2001 From: Alexandre Date: Wed, 2 Nov 2011 13:31:06 +0100 Subject: [PATCH 118/421] minor modifications in comment header (the revenge) --- plugins/jake-node/jake-node.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/jake-node/jake-node.plugin.zsh b/plugins/jake-node/jake-node.plugin.zsh index d365aee9b..ff9f6b5cf 100644 --- a/plugins/jake-node/jake-node.plugin.zsh +++ b/plugins/jake-node/jake-node.plugin.zsh @@ -1,4 +1,4 @@ -#---oh-my-zsh plugin : take Autocomplete for Jake tool--- +#---oh-my-zsh plugin : task Autocomplete for Jake tool--- # Jake : https://github.com/mde/jake # Warning : Jakefile should have the right case : Jakefile # Warnign : Add a .jake_tasks file to your working directory From 452f1213018551f6a388224bbfd1c84ef73b3770 Mon Sep 17 00:00:00 2001 From: Benjamin Boudreau Date: Mon, 7 Nov 2011 13:42:16 -0500 Subject: [PATCH 119/421] Add apt-history to debian plugin --- plugins/debian/debian.plugin.zsh | 42 ++++++++++++++++++++++++++++---- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/plugins/debian/debian.plugin.zsh b/plugins/debian/debian.plugin.zsh index 09771881d..16a5d54ca 100644 --- a/plugins/debian/debian.plugin.zsh +++ b/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 From 419ffdc48d218156b578d46d7fb5c64adcccb3de Mon Sep 17 00:00:00 2001 From: Kir Shatrov Date: Wed, 9 Nov 2011 14:46:38 +0400 Subject: [PATCH 120/421] Rails Migrations support --- plugins/rails3/rails3.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/rails3/rails3.plugin.zsh b/plugins/rails3/rails3.plugin.zsh index f4ee637e6..792cde2bd 100644 --- a/plugins/rails3/rails3.plugin.zsh +++ b/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' From 444145b495338ca3fbc86f0956003a1074f845df Mon Sep 17 00:00:00 2001 From: Mario Fernandez Date: Wed, 9 Nov 2011 23:01:45 +0100 Subject: [PATCH 121/421] FIX: commands like ruby and rake where not being completed --- plugins/bundler/bundler.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh index 3c96b8da9..89f62232b 100644 --- a/plugins/bundler/bundler.plugin.zsh +++ b/plugins/bundler/bundler.plugin.zsh @@ -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 From 40c47a737571468b759bbc30e4b4dc4b5f77470f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Ho=CC=88ltje?= Date: Tue, 15 Nov 2011 01:14:03 -0500 Subject: [PATCH 122/421] lib/termsupport now uses add-zsh-hook This is needed to play nice with plugins that need various hooks. --- lib/termsupport.zsh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index 22e7f372f..221989502 100644 --- a/lib/termsupport.zsh +++ b/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 From 5277a0ffaacbc2e23c8753fefdf1c4fe6d1e7685 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Ho=CC=88ltje?= Date: Tue, 15 Nov 2011 01:20:29 -0500 Subject: [PATCH 123/421] Added add-zsh-hook support to themes I added add-zsh-hook support to the themes that didn't have it already. This allows the themes to co-exist with plugins and lib/termsupport. --- themes/apple.zsh-theme | 7 +++++-- themes/jonathan.zsh-theme | 28 ++++++++++++++++------------ themes/kolo.zsh-theme | 5 ++++- 3 files changed, 25 insertions(+), 15 deletions(-) diff --git a/themes/apple.zsh-theme b/themes/apple.zsh-theme index 92f1df941..275341dc6 100644 --- a/themes/apple.zsh-theme +++ b/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 \ No newline at end of file diff --git a/themes/jonathan.zsh-theme b/themes/jonathan.zsh-theme index add485279..a170a13d0 100644 --- a/themes/jonathan.zsh-theme +++ b/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 \ No newline at end of file diff --git a/themes/kolo.zsh-theme b/themes/kolo.zsh-theme index 6e04e1595..e743289c3 100644 --- a/themes/kolo.zsh-theme +++ b/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 From 4173ba1e95403f3d2cd28b0ad5d5f2c0691f86b7 Mon Sep 17 00:00:00 2001 From: Graham McMillan Date: Tue, 15 Nov 2011 13:46:14 -0500 Subject: [PATCH 124/421] Added option to disable the update prompt. Set DISABLE_UPDATE_PROMPT to true to enable. --- tools/check_for_upgrade.sh | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/tools/check_for_upgrade.sh b/tools/check_for_upgrade.sh index aeaa0e415..524aa509d 100644 --- a/tools/check_for_upgrade.sh +++ b/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 + From 7ec2dd984a7605b28fcaed411f33403802bc876a Mon Sep 17 00:00:00 2001 From: Russell Harmon Date: Wed, 16 Nov 2011 04:32:05 -0500 Subject: [PATCH 125/421] Use printf rather than echo -e in update.sh update.sh is an "sh" script, not a zsh or bash script. On platforms which have real sh, echo does not have the -e option. --- tools/upgrade.sh | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tools/upgrade.sh b/tools/upgrade.sh index 52a8cc4da..6ffe56f4c 100644 --- a/tools/upgrade.sh +++ b/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" From 3512eca2cefee9b89b08230021c25f6e30525e31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Ho=CC=88ltje?= Date: Wed, 16 Nov 2011 09:25:45 -0500 Subject: [PATCH 126/421] set fpath correctly for custom plugins Custom plugins weren't being added to the fpath correctly. --- oh-my-zsh.sh | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index 891e8d467..8f5e2472d 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -13,9 +13,16 @@ 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 +# 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 From 258457ea4fe0b8fcb1f6d0242071edb82cab449a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Ho=CC=88ltje?= Date: Wed, 16 Nov 2011 09:46:05 -0500 Subject: [PATCH 127/421] Moved ZSH_CUSTOM declaration before fpath is set * also normalized style to match the guide. --- oh-my-zsh.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index 8f5e2472d..7ae41c33e 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -13,6 +13,12 @@ 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 +# 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:=()} @@ -28,12 +34,6 @@ done 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 From 10618f323f2915c2a7281e258a42d05faf1cc1af Mon Sep 17 00:00:00 2001 From: Matt Outten Date: Wed, 16 Nov 2011 11:14:26 -0500 Subject: [PATCH 128/421] Add the --format tag to knife list commands This commit adds the --format tag to all of the autocompletion functions. The default format changed from json to a "human readable" format as of version 0.10. This change should be backward compatible. Alternatively, these commands could be simplified by using the new default human readable format. --- plugins/knife/_knife | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/knife/_knife b/plugins/knife/_knife index 7f8c95ee5..f336380a1 100644 --- a/plugins/knife/_knife +++ b/plugins/knife/_knife @@ -138,27 +138,27 @@ _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}') } # The chef_x_local functions use the knife config to find the paths of relevant objects x to be uploaded to the server From 2c660c16ad818d4e1f001e392f7e82c7c02cbbc6 Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Thu, 24 Nov 2011 13:51:55 +0100 Subject: [PATCH 129/421] Only alias git=hub if `hub --version` works. `hub` is crashing for me on a old CentOS setup with "undefined method `shelljoin'". On first use of the `git` function it is now checked if `hub --version` returns successfully. --- plugins/github/github.plugin.zsh | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/plugins/github/github.plugin.zsh b/plugins/github/github.plugin.zsh index 9b0d54602..197e86a48 100644 --- a/plugins/github/github.plugin.zsh +++ b/plugins/github/github.plugin.zsh @@ -1,7 +1,17 @@ # Setup hub function for git, if it is available; http://github.com/defunkt/hub if [ "$commands[(I)hub]" ] && [ "$commands[(I)ruby]" ]; then # eval `hub alias -s zsh` - function git(){hub "$@"} + function git(){ + if ! (( $+_has_working_hub )); then + hub --version &> /dev/null + _has_working_hub=$(($? == 0)) + fi + if (( $_has_working_hub )) ; then + hub "$@" + else + command git "$@" + fi + } fi # Functions ################################################################# From 5260bfd4eba3787d5d32086b55ed728f3f3ab7f8 Mon Sep 17 00:00:00 2001 From: Gael Pasgrimaud Date: Sun, 27 Nov 2011 15:07:31 +0100 Subject: [PATCH 130/421] allow django-manage completion. http://pypi.python.org/pypi/DjangoDevKit --- plugins/django/django.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/django/django.plugin.zsh b/plugins/django/django.plugin.zsh index 1d72a2f2c..0bbd031fe 100644 --- a/plugins/django/django.plugin.zsh +++ b/plugins/django/django.plugin.zsh @@ -220,3 +220,4 @@ _managepy() { compdef _managepy manage.py compdef _managepy django +compdef _managepy django-manage From 31badac2ea2ecdc77cf4c339fcef9472940cb261 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lache=CC=80ze=20Alexandre?= Date: Fri, 2 Dec 2011 12:54:04 +0100 Subject: [PATCH 131/421] Jake-node plugin : update - remove the need to write a `jake_tasks` in the directory - use most recent usage of completion with zsh - tested for MacOSX and Ubuntu --- plugins/jake-node/jake-node.plugin.zsh | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/plugins/jake-node/jake-node.plugin.zsh b/plugins/jake-node/jake-node.plugin.zsh index ff9f6b5cf..a9eef4029 100644 --- a/plugins/jake-node/jake-node.plugin.zsh +++ b/plugins/jake-node/jake-node.plugin.zsh @@ -1,28 +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 -# Warnign : Add a .jake_tasks file to your working directory +# 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_does_task_list_need_generating () { - if [ ! -f .jake_tasks ]; then - return 0; - else - accurate=$(stat -f%m .jake_tasks) - changed=$(stat -f%m Jakefile) - return $(expr $accurate '>=' $changed) - fi -} - function _jake () { - if [ -f Jakefile ]; then - if _jake_does_task_list_need_generating; then - echo "\nGenerating .jake_tasks..." > /dev/stderr - jake -T | cut -d " " -f 2 | sed -E "s/.\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" > .jake_tasks - fi - reply=( `cat .jake_tasks` ) + 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 } -compctl -K _jake jake \ No newline at end of file +compdef _jake jake \ No newline at end of file From 3fc812afc9af75e49a8f99bad3ada41672547503 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=B6ran=20Gustafsson?= Date: Sat, 3 Dec 2011 13:18:37 +0100 Subject: [PATCH 132/421] Removed duplicate setting and sorted the remaining --- lib/history.zsh | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/lib/history.zsh b/lib/history.zsh index ca6f57079..876936b87 100644 --- a/lib/history.zsh +++ b/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 From b16099f3cb9855affa14d0f03adf6563f8df4cbe Mon Sep 17 00:00:00 2001 From: Steven De Coeyer Date: Tue, 6 Dec 2011 15:18:29 +0100 Subject: [PATCH 133/421] Added Zhann theme. Based on Robbyrussel theme, but shows the current ruby version and has some color variations. --- themes/zhann.zsh-theme | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 themes/zhann.zsh-theme diff --git a/themes/zhann.zsh-theme b/themes/zhann.zsh-theme new file mode 100644 index 000000000..6c056dfbe --- /dev/null +++ b/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) %{$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]%})" From 7c36ef7faa65441f8eec27589f24ba9f18f8d66c Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Tue, 6 Dec 2011 13:51:31 -0800 Subject: [PATCH 134/421] Adding critical security patch to let you all know I'm on top of this shit. add 'nyan' to your plugins... then run for security upgrade. --- plugins/nyan/nyan.plugin.zsh | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 plugins/nyan/nyan.plugin.zsh diff --git a/plugins/nyan/nyan.plugin.zsh b/plugins/nyan/nyan.plugin.zsh new file mode 100644 index 000000000..6321e5f5a --- /dev/null +++ b/plugins/nyan/nyan.plugin.zsh @@ -0,0 +1,5 @@ +if [[ -x `which nc` ]]; then + alias nyan='nc -v miku.acm.uiuc.edu 23' # nyan cat +fi + + From 42b0123427d2bdee0e3221d930bb48038c601932 Mon Sep 17 00:00:00 2001 From: Max Persson Date: Wed, 7 Dec 2011 11:08:42 +0100 Subject: [PATCH 135/421] Added brute force package completin on install subcommand --- plugins/pip/_pip | 60 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 42 insertions(+), 18 deletions(-) diff --git a/plugins/pip/_pip b/plugins/pip/_pip index b58010173..8c03d8519 100644 --- a/plugins/pip/_pip +++ b/plugins/pip/_pip @@ -3,30 +3,39 @@ # pip zsh completion, based on homebrew completion +_pip_all() { + all_pkgs=(`pip search * | cut -d ' ' -f 1 | tr '[A-Z]' '[a-z]'`) +} + _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 +44,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 all_pkgs expl 'packages' compadd -a all_pkgs fi ;; uninstall) _pip_installed From 1c4997f5cada6f1ff1f205b20cf321cfc6b6d347 Mon Sep 17 00:00:00 2001 From: Max Persson Date: Wed, 7 Dec 2011 13:32:58 +0100 Subject: [PATCH 136/421] Added caching of packages --- plugins/pip/_pip | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/plugins/pip/_pip b/plugins/pip/_pip index 8c03d8519..07d37c80e 100644 --- a/plugins/pip/_pip +++ b/plugins/pip/_pip @@ -4,7 +4,10 @@ # pip zsh completion, based on homebrew completion _pip_all() { - all_pkgs=(`pip search * | cut -d ' ' -f 1 | tr '[A-Z]' '[a-z]'`) + # we cache the list of packages (originally from the macports plugin) + if (( ! $+piplist )); then + piplist=($(pip search * | cut -d ' ' -f 1 | tr '[A-Z]' '[a-z]')) + fi } _pip_installed() { @@ -62,7 +65,7 @@ case "$words[1]" in if [[ "$state" == packages ]]; then _pip_all - _wanted all_pkgs expl 'packages' compadd -a all_pkgs + _wanted piplist expl 'packages' compadd -a piplist fi ;; uninstall) _pip_installed From 5eae9421883d71b954d4abaa6056b28874ad47ec Mon Sep 17 00:00:00 2001 From: Max Persson Date: Wed, 7 Dec 2011 14:09:43 +0100 Subject: [PATCH 137/421] Added message when caching packages --- plugins/pip/_pip | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/pip/_pip b/plugins/pip/_pip index 07d37c80e..df53ba5ce 100644 --- a/plugins/pip/_pip +++ b/plugins/pip/_pip @@ -6,6 +6,7 @@ _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 } From d25fb095a9d1f814fe2b4d0f42ffe827780d4a59 Mon Sep 17 00:00:00 2001 From: Dominick LoBraico Date: Fri, 9 Dec 2011 12:18:54 -0600 Subject: [PATCH 138/421] forks miloshadzic theme to add more directory info as well as user and host info --- themes/pygmalion.zsh-theme | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 themes/pygmalion.zsh-theme diff --git a/themes/pygmalion.zsh-theme b/themes/pygmalion.zsh-theme new file mode 100644 index 000000000..cf3bb908f --- /dev/null +++ b/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%} ' + From 8ca019f02a4dc718fe5fc8b1186108eb376360c9 Mon Sep 17 00:00:00 2001 From: Suvash Thapaliya Date: Mon, 12 Dec 2011 23:55:07 +0100 Subject: [PATCH 139/421] Added my own theme file : suvash Since I store my dotfiles on github and plan to submodule oh-my-zsh i supposed it was a good idea to submit my theme as well. --- themes/suvash.zsh-theme | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 themes/suvash.zsh-theme diff --git a/themes/suvash.zsh-theme b/themes/suvash.zsh-theme new file mode 100644 index 000000000..f50657db2 --- /dev/null +++ b/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="" From 3e7e52a25fbfdb57f291ee9575a606f845dbff57 Mon Sep 17 00:00:00 2001 From: Christoph Neuroth Date: Wed, 14 Dec 2011 11:47:24 +0100 Subject: [PATCH 140/421] add support for autojump installed via macports --- plugins/autojump/autojump.plugin.zsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/autojump/autojump.plugin.zsh b/plugins/autojump/autojump.plugin.zsh index da0a12765..6f9b80bff 100644 --- a/plugins/autojump/autojump.plugin.zsh +++ b/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 From 1a49f6443c0230b8e182294546ed9ef2a5110bf2 Mon Sep 17 00:00:00 2001 From: Matt Parnell Date: Sat, 12 Nov 2011 21:09:27 -0800 Subject: [PATCH 141/421] add sprunge.us pastebin uploader - uses files, or pipes --- plugins/sprunge/sprunge.plugin.zsh | 64 ++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 plugins/sprunge/sprunge.plugin.zsh diff --git a/plugins/sprunge/sprunge.plugin.zsh b/plugins/sprunge/sprunge.plugin.zsh new file mode 100644 index 000000000..9f9432ac8 --- /dev/null +++ b/plugins/sprunge/sprunge.plugin.zsh @@ -0,0 +1,64 @@ +# Contributed and SLIGHTLY modded by Matt Parnell/ilikenwf +# 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 [&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 +} From 03424fdadba13fea2297a94144e989926cabdcb3 Mon Sep 17 00:00:00 2001 From: Andrew Tch Date: Sun, 18 Dec 2011 00:23:31 +0200 Subject: [PATCH 142/421] Symfony 2 completion --- plugins/symfony2/symfony2.plugin.zsh | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 plugins/symfony2/symfony2.plugin.zsh diff --git a/plugins/symfony2/symfony2.plugin.zsh b/plugins/symfony2/symfony2.plugin.zsh new file mode 100644 index 000000000..644266841 --- /dev/null +++ b/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 \ No newline at end of file From 1ced49b85a859b399728ce32ef77399874f5172b Mon Sep 17 00:00:00 2001 From: Cameron Johnston Date: Sun, 18 Dec 2011 22:15:00 -0700 Subject: [PATCH 143/421] adding support for chef environments in knife plugin --- plugins/knife/_knife | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/plugins/knife/_knife b/plugins/knife/_knife index 7f8c95ee5..32ff9fc99 100644 --- a/plugins/knife/_knife +++ b/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" ;; @@ -161,6 +164,10 @@ _chef_data_bags_remote() { (knife data bag list | 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 _chef_cookbooks_local() { (for i in $( grep cookbook_path $HOME/.chef/knife.rb | awk 'BEGIN {FS = "[" }; {print $2}' | sed 's/\,//g' | sed "s/'//g" | sed 's/\(.*\)]/\1/' ); do ls $i; done) From a62d22726be1c3a02405bf327449e605be8fc5b2 Mon Sep 17 00:00:00 2001 From: Steven De Coeyer Date: Mon, 19 Dec 2011 15:26:37 +0100 Subject: [PATCH 144/421] show gemset next to ruby version --- themes/zhann.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/zhann.zsh-theme b/themes/zhann.zsh-theme index 6c056dfbe..3dff29c9c 100644 --- a/themes/zhann.zsh-theme +++ b/themes/zhann.zsh-theme @@ -1,5 +1,5 @@ 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) %{$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%}" From a21dc477c26ce29c839ca3aa36af91efcad179ea Mon Sep 17 00:00:00 2001 From: Trevor Wennblom Date: Tue, 20 Dec 2011 16:16:02 -0600 Subject: [PATCH 145/421] add note about custom plugins --- templates/zshrc.zsh-template | 1 + 1 file changed, 1 insertion(+) diff --git a/templates/zshrc.zsh-template b/templates/zshrc.zsh-template index 1ab40aba6..64b1ece69 100644 --- a/templates/zshrc.zsh-template +++ b/templates/zshrc.zsh-template @@ -23,6 +23,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) From dd14e075b7dd39906e2075ac6dd8f5bcc66b6129 Mon Sep 17 00:00:00 2001 From: "julien@macbook" Date: Wed, 21 Dec 2011 15:03:55 +0100 Subject: [PATCH 146/421] Ignore submodules dirty in prompt info --- lib/git.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/git.zsh b/lib/git.zsh index f04343650..defa062c6 100644 --- a/lib/git.zsh +++ b/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" From d8521693f4e2c140391065e7b721d7452134259f Mon Sep 17 00:00:00 2001 From: Kyle Smith Date: Thu, 22 Dec 2011 14:02:01 -0500 Subject: [PATCH 147/421] Added support for entries in /etc/ssh/ssh_known_hosts. --- lib/completion.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/completion.zsh b/lib/completion.zsh index b3cc91822..0e5d480ff 100644 --- a/lib/completion.zsh +++ b/lib/completion.zsh @@ -32,9 +32,11 @@ 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)"$( Date: Fri, 23 Dec 2011 11:14:22 +0400 Subject: [PATCH 148/421] Added alias gcm='git checkout master --- plugins/git/git.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 183c56c1c..c1b382b2c 100644 --- a/plugins/git/git.plugin.zsh +++ b/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' From 0b583638ae7bc58928b77669919600e27f4738b0 Mon Sep 17 00:00:00 2001 From: Indrajit Raychaudhuri Date: Sun, 11 Dec 2011 20:27:35 +0530 Subject: [PATCH 149/421] Fix upgrade and uninstall functions to pick up $ZSH value --- lib/functions.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/functions.zsh b/lib/functions.zsh index ef7cc6383..d2dcadd0c 100644 --- a/lib/functions.zsh +++ b/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() { From 59baf390e96751fc51299ecefe921ba8718ba3aa Mon Sep 17 00:00:00 2001 From: Tate Johnson Date: Mon, 26 Dec 2011 13:16:26 +1000 Subject: [PATCH 150/421] Black on white theme inspired by Sam Stephenson's terminal screenshot on https://github.com/sstephenson/rbenv --- themes/sammy.zsh-theme | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 themes/sammy.zsh-theme diff --git a/themes/sammy.zsh-theme b/themes/sammy.zsh-theme new file mode 100644 index 000000000..52e6e4bb6 --- /dev/null +++ b/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=")" From f999fd8e121c1fd4d097c25be59c6020e1aed830 Mon Sep 17 00:00:00 2001 From: Michael Holachek Date: Mon, 26 Dec 2011 12:20:02 -0500 Subject: [PATCH 151/421] Added example aliases in ZSH template. Added a new theme. Example aliases allow for an easier way to open ZSH config file/folder in Textmate. New theme is mh.zsh-theme. --- templates/zshrc.zsh-template | 4 ++++ themes/mh.zsh-theme | 24 ++++++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 themes/mh.zsh-theme diff --git a/templates/zshrc.zsh-template b/templates/zshrc.zsh-template index 1ab40aba6..25cf4f233 100644 --- a/templates/zshrc.zsh-template +++ b/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" diff --git a/themes/mh.zsh-theme b/themes/mh.zsh-theme new file mode 100644 index 000000000..34a3765b1 --- /dev/null +++ b/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:' From 480d1247b89ae089564eb0ca7d66aef989b9f5e5 Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Mon, 26 Dec 2011 10:15:35 -0800 Subject: [PATCH 152/421] Updating installation documentation to show a curl example as well for those who don't have wget installed. --- README.textile | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.textile b/README.textile index 2dbfbe5a6..eca968089 100644 --- a/README.textile +++ b/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 From 4a813cf1a2ccddc58059271065a8abc8f9079019 Mon Sep 17 00:00:00 2001 From: Ryan Schmukler Date: Tue, 27 Dec 2011 21:02:31 -0600 Subject: [PATCH 153/421] Added vsplit_tab and split_tab for iTerm. Create new session within a vertical/horizontal split of the tab respectively. --- plugins/osx/osx.plugin.zsh | 63 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 60 insertions(+), 3 deletions(-) diff --git a/plugins/osx/osx.plugin.zsh b/plugins/osx/osx.plugin.zsh index 682bb2667..f278d4f8d 100644 --- a/plugins/osx/osx.plugin.zsh +++ b/plugins/osx/osx.plugin.zsh @@ -2,10 +2,9 @@ # FILE: osx.plugin.zsh # DESCRIPTION: oh-my-zsh plugin file. # AUTHOR: Sorin Ionescu (sorin.ionescu@gmail.com) -# VERSION: 1.0.1 +# VERSION: 1.1.0 # ------------------------------------------------------------------------------ - function tab() { local command="cd \\\"$PWD\\\"" (( $# > 0 )) && command="${command}; $*" @@ -35,7 +34,7 @@ EOF launch session "Default Session" set current_session to current session tell current_session - write text "${command}" + write text "${command}; clear;" end tell end tell end tell @@ -43,6 +42,64 @@ EOF } } +function vsplit_tab() { + local command="cd \\\"$PWD\\\"" + (( $# > 0 )) && command="${command}; $*" + + the_app=$( + osascript 2>/dev/null </dev/null < 0 )) && command="${command}; $*" + + the_app=$( + osascript 2>/dev/null </dev/null </dev/null < Date: Thu, 29 Dec 2011 01:30:43 +0100 Subject: [PATCH 154/421] Mortal Scumbag Theme --- themes/mortalscumbag.zsh-theme | 58 ++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 themes/mortalscumbag.zsh-theme diff --git a/themes/mortalscumbag.zsh-theme b/themes/mortalscumbag.zsh-theme new file mode 100644 index 000000000..7e25b149f --- /dev/null +++ b/themes/mortalscumbag.zsh-theme @@ -0,0 +1,58 @@ +function my_git_prompt() { + tester=$(git rev-parse --git-dir 2> /dev/null) || return + + INDEX=$(git status --porcelain 2> /dev/null) + STATUS="" + + # is branch ahead? + if $(echo "$(git log origin/$(current_branch)..HEAD 2> /dev/null)" | grep '^commit' &> /dev/null); then + STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_AHEAD" + fi + + # is anything staged? + if $(echo "$INDEX" | grep -E -e '^(D[ M]|[MARC][ MD]) ' &> /dev/null); then + STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_STAGED" + fi + + # is anything unstaged? + if $(echo "$INDEX" | grep -E -e '^[ MARC][MD] ' &> /dev/null); then + STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_UNSTAGED" + fi + + # is anything untracked? + if $(echo "$INDEX" | grep '^?? ' &> /dev/null); then + STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_UNTRACKED" + fi + + # is anything unmerged? + if $(echo "$INDEX" | grep -E -e '^(A[AU]|D[DU]|U[ADU]) ' &> /dev/null); then + STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_UNMERGED" + fi + + if [[ -n $STATUS ]]; then + STATUS=" $STATUS" + fi + + echo "$ZSH_THEME_GIT_PROMPT_PREFIX$(my_current_branch)$STATUS$ZSH_THEME_GIT_PROMPT_SUFFIX" +} + +function my_current_branch() { + echo $(current_branch || echo "(no branch)") +} + +function ssh_connection() { + if [[ -n $SSH_CONNECTION ]]; then + echo "%{$fg_bold[red]%}(ssh) " + fi +} + +PROMPT=$'\n$(ssh_connection)%{$fg_bold[green]%}%n@%m%{$reset_color%}$(my_git_prompt) : %~\n%# ' + +ZSH_THEME_PROMPT_RETURNCODE_PREFIX="%{$fg_bold[red]%}" +ZSH_THEME_GIT_PROMPT_PREFIX=" $fg[white]‹ %{$fg_bold[yellow]%}" +ZSH_THEME_GIT_PROMPT_AHEAD="%{$fg_bold[magenta]%}↑" +ZSH_THEME_GIT_PROMPT_STAGED="%{$fg_bold[green]%}●" +ZSH_THEME_GIT_PROMPT_UNSTAGED="%{$fg_bold[red]%}●" +ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg_bold[white]%}●" +ZSH_THEME_GIT_PROMPT_UNMERGED="%{$fg_bold[red]%}✕" +ZSH_THEME_GIT_PROMPT_SUFFIX=" $fg_bold[white]›%{$reset_color%}" From 967e84ebaa180ad2ab1eebc9a512f94d93e84aea Mon Sep 17 00:00:00 2001 From: Andreas Steinel Date: Thu, 29 Dec 2011 02:22:40 +0100 Subject: [PATCH 155/421] multiple versions could occur and should also be highlighted --- plugins/rvm/rvm.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/rvm/rvm.plugin.zsh b/plugins/rvm/rvm.plugin.zsh index 24621fe0b..604c00713 100644 --- a/plugins/rvm/rvm.plugin.zsh +++ b/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" From 2176cf37fb1eed028c53a2095098d585489b1cce Mon Sep 17 00:00:00 2001 From: Simon Jefford Date: Thu, 29 Dec 2011 21:54:19 +0000 Subject: [PATCH 156/421] bundler plugin - don't "bundle exec rails" As per http://blog.wyeworks.com/2011/12/27/bundle-exec-rails-executes-bundler-setup-3-times --- plugins/bundler/bundler.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh index 89f62232b..7b73c8fed 100644 --- a/plugins/bundler/bundler.plugin.zsh +++ b/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=(cap capify cucumber foreman guard heroku nanoc rackup rainbows rake rspec ruby shotgun spec spork thin unicorn unicorn_rails) ## Functions From cb501645d70ad1e50b6b3d3553618e585074533f Mon Sep 17 00:00:00 2001 From: Gustavo Barron Date: Fri, 30 Dec 2011 12:11:41 -0600 Subject: [PATCH 157/421] Get the Hostname Main library should use ZSH native hostname function --- lib/completion.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/completion.zsh b/lib/completion.zsh index 0e5d480ff..b964595ed 100644 --- a/lib/completion.zsh +++ b/lib/completion.zsh @@ -39,7 +39,7 @@ hosts=( "$_global_ssh_hosts[@]" "$_ssh_hosts[@]" "$_etc_hosts[@]" - `hostname` + "$HOST" localhost ) zstyle ':completion:*:hosts' hosts $hosts From e3c34b4f9aee666ea5446a975b4a70cdbab3239c Mon Sep 17 00:00:00 2001 From: Mark Drago Date: Sat, 31 Dec 2011 12:13:31 -0500 Subject: [PATCH 158/421] add ability to set custom prefix for cloud theme --- themes/cloud.zsh-theme | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/themes/cloud.zsh-theme b/themes/cloud.zsh-theme index ad5e2834b..4efbf9776 100644 --- a/themes/cloud.zsh-theme +++ b/themes/cloud.zsh-theme @@ -1,4 +1,8 @@ -PROMPT='%{$fg_bold[cyan]%}☁ %{$fg_bold[green]%}%p %{$fg[green]%}%c %{$fg_bold[cyan]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' +if [[ -z $ZSH_THEME_CLOUD_PREFIX ]]; then + ZSH_THEME_CLOUD_PREFIX='☁' +fi + +PROMPT='%{$fg_bold[cyan]%}$ZSH_THEME_CLOUD_PREFIX %{$fg_bold[green]%}%p %{$fg[green]%}%c %{$fg_bold[cyan]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[green]%}[%{$fg[cyan]%}" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" From a49fcea9f5d281cccce2ad421db253455a248109 Mon Sep 17 00:00:00 2001 From: Patrick Lindborg Date: Mon, 2 Jan 2012 21:48:19 +0100 Subject: [PATCH 159/421] Fixed the rfind command in the ruby plugin --- plugins/ruby/ruby.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/ruby/ruby.plugin.zsh b/plugins/ruby/ruby.plugin.zsh index 08ca9c601..38e4d7cd0 100644 --- a/plugins/ruby/ruby.plugin.zsh +++ b/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' From 955825b1e9e484e4b6811a6ba8895924c1834493 Mon Sep 17 00:00:00 2001 From: Calogero Lo Leggio Date: Tue, 3 Jan 2012 18:03:53 +0100 Subject: [PATCH 160/421] autojump plugin enhanced --- plugins/autojump/autojump.plugin.zsh | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/plugins/autojump/autojump.plugin.zsh b/plugins/autojump/autojump.plugin.zsh index 6f9b80bff..72c416a17 100644 --- a/plugins/autojump/autojump.plugin.zsh +++ b/plugins/autojump/autojump.plugin.zsh @@ -1,5 +1,9 @@ -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 +if [ -f /usr/share/autojump/autojump.zsh ]; then # debian and ubuntu package + . /usr/share/autojump/autojump.zsh +elif [ -f /etc/profile.d/autojump.zsh ]; then # manual installation + . /etc/profile.d/autojump.zsh +elif (`command -v brew >/dev/null`); then # mac os x with brew + if [ -f `brew --prefix`/etc/autojump ]; then + . `brew --prefix`/etc/autojump + fi fi From a28b8889ee80856b65dd792dedd7735a1b94443c Mon Sep 17 00:00:00 2001 From: Alexander Madyankin Date: Thu, 5 Jan 2012 11:16:17 +0600 Subject: [PATCH 161/421] Apple Terminal.app resume directory plugin --- plugins/terminalapp/terminalapp.plugin.zsh | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 plugins/terminalapp/terminalapp.plugin.zsh diff --git a/plugins/terminalapp/terminalapp.plugin.zsh b/plugins/terminalapp/terminalapp.plugin.zsh new file mode 100644 index 000000000..4695ad055 --- /dev/null +++ b/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 \ No newline at end of file From 9ac98f6ceb77df71c98558a122bc06f8adadf989 Mon Sep 17 00:00:00 2001 From: Chad Seeger Date: Thu, 5 Jan 2012 13:41:27 -0800 Subject: [PATCH 162/421] Git Plugin: adds 'grhh' alias for 'git reset HEAD --hard' --- plugins/git/git.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index c1b382b2c..ec98d4ad5 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -36,6 +36,8 @@ alias ga='git add' compdef _git ga=git-add alias gm='git merge' compdef _git gm=git-merge +alias grhh='git reset HEAD --hard' +compdef _git grhh=git-reset-head-hard # Git and svn mix alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk' From 804c18ca53e832f20869a7681143464382e8a2df Mon Sep 17 00:00:00 2001 From: Mark Drago Date: Thu, 5 Jan 2012 17:39:13 -0500 Subject: [PATCH 163/421] remove the -v flag from a few mercurial aliases The -v flag for these commands really isn't very useful. It will output some information about the hooks it is running, but that is generally not useful and just noisy. The desire to add -v to these commands is exceptional and IMHO it's better to make the common case of not seeing those messages the supported behavior. --- plugins/mercurial/mercurial.plugin.zsh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/mercurial/mercurial.plugin.zsh b/plugins/mercurial/mercurial.plugin.zsh index 2988f0a46..caf0d9efc 100644 --- a/plugins/mercurial/mercurial.plugin.zsh +++ b/plugins/mercurial/mercurial.plugin.zsh @@ -1,14 +1,14 @@ # Mercurial -alias hgc='hg commit -v' -alias hgb='hg branch -v' +alias hgc='hg commit' +alias hgb='hg branch' alias hgba='hg branches' alias hgco='hg checkout' alias hgd='hg diff' alias hged='hg diffmerge' # pull and update -alias hgl='hg pull -u -v' -alias hgp='hg push -v' -alias hgs='hg status -v' +alias hgl='hg pull -u' +alias hgp='hg push' +alias hgs='hg status' # this is the 'git commit --amend' equivalent alias hgca='hg qimport -r tip ; hg qrefresh -e ; hg qfinish tip' From 7a361870a97d9d34158542503f942fb0c67accfc Mon Sep 17 00:00:00 2001 From: lucapette Date: Fri, 6 Jan 2012 22:10:57 +0100 Subject: [PATCH 164/421] add annotate --- plugins/bundler/bundler.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh index 7b73c8fed..55564a252 100644 --- a/plugins/bundler/bundler.plugin.zsh +++ b/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 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 From ae735335e186447b370d299376970a7ea949b474 Mon Sep 17 00:00:00 2001 From: Chad Seeger Date: Mon, 9 Jan 2012 15:19:19 -0800 Subject: [PATCH 165/421] Kill the compdef; Introduce 'grh' alias for 'git reset HEAD' --- plugins/git/git.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index ec98d4ad5..ae080662f 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -36,8 +36,8 @@ alias ga='git add' compdef _git ga=git-add alias gm='git merge' compdef _git gm=git-merge +alias grh='git reset HEAD' alias grhh='git reset HEAD --hard' -compdef _git grhh=git-reset-head-hard # Git and svn mix alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk' From 5809a4721dd1b575c1f4cbc3cc361520e97cd8b9 Mon Sep 17 00:00:00 2001 From: Calogero Lo Leggio Date: Tue, 10 Jan 2012 10:01:16 +0100 Subject: [PATCH 166/421] check if autojump is installed --- plugins/autojump/autojump.plugin.zsh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/autojump/autojump.plugin.zsh b/plugins/autojump/autojump.plugin.zsh index 72c416a17..6f0edb062 100644 --- a/plugins/autojump/autojump.plugin.zsh +++ b/plugins/autojump/autojump.plugin.zsh @@ -1,9 +1,9 @@ -if [ -f /usr/share/autojump/autojump.zsh ]; then # debian and ubuntu package - . /usr/share/autojump/autojump.zsh -elif [ -f /etc/profile.d/autojump.zsh ]; then # manual installation - . /etc/profile.d/autojump.zsh -elif (`command -v brew >/dev/null`); then # mac os x with brew - if [ -f `brew --prefix`/etc/autojump ]; then +if [ $commands[autojump] ]; then # check if autojump is installed + if [ -f /usr/share/autojump/autojump.zsh ]; then # debian and ubuntu package + . /usr/share/autojump/autojump.zsh + elif [ -f /etc/profile.d/autojump.zsh ]; then # manual installation + . /etc/profile.d/autojump.zsh + elif [ $commands[brew] -a -f `brew --prefix`/etc/autojump ]; then # mac os x with brew . `brew --prefix`/etc/autojump fi fi From c04b4abe91b69c058bde8e5968abb759b9168b88 Mon Sep 17 00:00:00 2001 From: Daniel Bye Date: Fri, 13 Jan 2012 12:40:59 +0000 Subject: [PATCH 167/421] Removed calls to compinit in the extract and the bundler plugins. compinit should only be called once, after all modules, libs, etc are imported. --- plugins/bundler/bundler.plugin.zsh | 2 -- plugins/extract/extract.plugin.zsh | 2 -- 2 files changed, 4 deletions(-) diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh index 55564a252..e120331ff 100644 --- a/plugins/bundler/bundler.plugin.zsh +++ b/plugins/bundler/bundler.plugin.zsh @@ -1,6 +1,4 @@ fpath=($ZSH/plugins/bundler $fpath) -autoload -U compinit -compinit -i alias be="bundle exec" alias bi="bundle install" diff --git a/plugins/extract/extract.plugin.zsh b/plugins/extract/extract.plugin.zsh index 8cc17f7d4..383331ccf 100644 --- a/plugins/extract/extract.plugin.zsh +++ b/plugins/extract/extract.plugin.zsh @@ -80,6 +80,4 @@ alias x=extract # add extract completion function to path fpath=($ZSH/plugins/extract $fpath) -autoload -U compinit -compinit -i From 0d99759cc371d7b8f70cde950f42cc3558559533 Mon Sep 17 00:00:00 2001 From: backspace Date: Sun, 15 Jan 2012 08:49:52 +0200 Subject: [PATCH 168/421] =?UTF-8?q?Don=E2=80=99t=20report=20that=20Oh=20My?= =?UTF-8?q?=20Zsh=20has=20been=20updated=20when=20it=20hasn=E2=80=99t.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tools/upgrade.sh | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/tools/upgrade.sh b/tools/upgrade.sh index 6ffe56f4c..b2a1c06c4 100644 --- a/tools/upgrade.sh +++ b/tools/upgrade.sh @@ -1,12 +1,19 @@ current_path=`pwd` printf '\033[0;34m%s\033[0m\n' "Upgrading Oh My Zsh" -( cd $ZSH && git pull origin master ) -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" +cd $ZSH + +if git pull origin master +then + 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' +else + printf '\033[0;31m%s\033[0m\n' 'There was an error updating. Try again later?' +fi + +cd "$current_path" \ No newline at end of file From b73f95ab260f49bf6baa484faa40591c51629c02 Mon Sep 17 00:00:00 2001 From: Daniel Bye Date: Mon, 16 Jan 2012 13:34:07 +0000 Subject: [PATCH 169/421] Removed the assignments to fpath as well, since that's all handled in the .oh-my-zsh/oh-my-zsh.sh boot script. --- plugins/bundler/bundler.plugin.zsh | 2 -- plugins/extract/extract.plugin.zsh | 3 --- 2 files changed, 5 deletions(-) diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh index e120331ff..b473d203c 100644 --- a/plugins/bundler/bundler.plugin.zsh +++ b/plugins/bundler/bundler.plugin.zsh @@ -1,5 +1,3 @@ -fpath=($ZSH/plugins/bundler $fpath) - alias be="bundle exec" alias bi="bundle install" alias bl="bundle list" diff --git a/plugins/extract/extract.plugin.zsh b/plugins/extract/extract.plugin.zsh index 383331ccf..5c125e98b 100644 --- a/plugins/extract/extract.plugin.zsh +++ b/plugins/extract/extract.plugin.zsh @@ -78,6 +78,3 @@ function extract() { alias x=extract -# add extract completion function to path -fpath=($ZSH/plugins/extract $fpath) - From 73c2c8adc77568abdf2c7be1761c5cac6f06ad06 Mon Sep 17 00:00:00 2001 From: Nicolas Cavigneaux Date: Mon, 16 Jan 2012 15:19:36 +0100 Subject: [PATCH 170/421] Add Thor to bundled commands --- plugins/bundler/bundler.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh index 55564a252..033f9cedf 100644 --- a/plugins/bundler/bundler.plugin.zsh +++ b/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=(annotate cap capify cucumber foreman guard heroku nanoc rackup 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 thor unicorn unicorn_rails) ## Functions From 4b3429d765f1f14f7dbf2cc451e3047388978bf6 Mon Sep 17 00:00:00 2001 From: Arbo von Monkiewitsch Date: Mon, 16 Jan 2012 18:21:27 +0100 Subject: [PATCH 171/421] fixing #812: adding plugins w/o plugin.zsh file to fpath. --- oh-my-zsh.sh | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index aeeaa3daf..732a403b7 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -19,13 +19,19 @@ if [[ -z "$ZSH_CUSTOM" ]]; then ZSH_CUSTOM="$ZSH/custom" fi + +is_plugin() { + local base_dir=$1 + local name=$2 + test -f $base_dir/plugins/$name/$name.plugin.zsh \ + || test -f $base_dir/plugins/$name/_$name +} # Add all defined plugins to fpath. This must be done # before running compinit. -plugin=${plugin:=()} for plugin ($plugins); do - if [ -f $ZSH_CUSTOM/plugins/$plugin/$plugin.plugin.zsh ]; then + if is_plugin $ZSH_CUSTOM $plugin; then fpath=($ZSH_CUSTOM/plugins/$plugin $fpath) - elif [ -f $ZSH/plugins/$plugin/$plugin.plugin.zsh ]; then + elif is_plugin $ZSH $plugin; then fpath=($ZSH/plugins/$plugin $fpath) fi done From 96265d26454868b8b654e4a5271939748e1dd148 Mon Sep 17 00:00:00 2001 From: Jeff Wallace Date: Tue, 17 Jan 2012 10:00:12 -0800 Subject: [PATCH 172/421] fix bundler plugin for root level folders this fix allows _within-bundled-project() to properly pickup a Gemfile within a root level folder (ie. /my_project) --- plugins/bundler/bundler.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh index 033f9cedf..b8f8ed3da 100644 --- a/plugins/bundler/bundler.plugin.zsh +++ b/plugins/bundler/bundler.plugin.zsh @@ -20,7 +20,7 @@ _bundler-installed() { _within-bundled-project() { local check_dir=$PWD - while [ "$(dirname $check_dir)" != "/" ]; do + while [ $check_dir != "/" ]; do [ -f "$check_dir/Gemfile" ] && return check_dir="$(dirname $check_dir)" done From 8f1a5d3f1581c80510728143e146143deecaa61e Mon Sep 17 00:00:00 2001 From: max sharples Date: Tue, 17 Jan 2012 13:11:01 +1100 Subject: [PATCH 173/421] added a rake plugin to disable zsh file globbing when calling rake tasks with square brackets --- plugins/rake/rake.plugin.zsh | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 plugins/rake/rake.plugin.zsh diff --git a/plugins/rake/rake.plugin.zsh b/plugins/rake/rake.plugin.zsh new file mode 100644 index 000000000..16b933c14 --- /dev/null +++ b/plugins/rake/rake.plugin.zsh @@ -0,0 +1,6 @@ +alias rake="noglob rake" # allows square brackts for rake task invocation +alias brake='noglob bundle exec rake' # execute the bundled rake gem +alias srake='noglob sudo rake' # noglob must come before sudo +alias sbrake='noglob sudo bundle exec rake' # altogether now ... + + From 741f6747e418229deec62ae2d19c776f6494e219 Mon Sep 17 00:00:00 2001 From: John Antoni Griffiths Date: Wed, 18 Jan 2012 12:52:27 -0500 Subject: [PATCH 174/421] fix for pow plugin to default to current dir --- plugins/pow/pow.plugin.zsh | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/plugins/pow/pow.plugin.zsh b/plugins/pow/pow.plugin.zsh index 6b2a6f2be..da94b657b 100644 --- a/plugins/pow/pow.plugin.zsh +++ b/plugins/pow/pow.plugin.zsh @@ -1,10 +1,25 @@ -# Thanks to Christopher Sexton +# Restart a rack app running under pow +# http://pow.cx/ +# +# Adds a kapow command that will restart an app +# +# $ kapow myapp +# $ kapow # defaults to current directory +# +# Supports command completion. +# +# If you are not already using completion you might need to enable it with +# +# autoload -U compinit compinit +# +# Thanks also to Christopher Sexton # https://gist.github.com/965032 +# function kapow { - touch ~/.pow/$1/tmp/restart.txt - if [ $? -eq 0 ]; then - echo "$fg[yellow]Pow restarting $1...$reset_color" - fi + FOLDERNAME=$1 + if [ -z "$FOLDERNAME" ]; then; FOLDERNAME=${PWD##*/}; fi + touch ~/.pow/$FOLDERNAME/tmp/restart.txt; + if [ $? -eq 0 ]; then; echo "pow: restarting $FOLDERNAME" ; fi } compctl -W ~/.pow -/ kapow From c1a04eb61fcdd740bef52cd9da75fd72aeac3cf4 Mon Sep 17 00:00:00 2001 From: John Antoni Griffiths Date: Wed, 18 Jan 2012 12:58:13 -0500 Subject: [PATCH 175/421] take in csexton's changes https://gist.github.com/1019777/70dbb46db9bd5b346faf543a9dd4edac4782adda --- plugins/pow/pow.plugin.zsh | 45 +++++++++++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 10 deletions(-) diff --git a/plugins/pow/pow.plugin.zsh b/plugins/pow/pow.plugin.zsh index da94b657b..08e5cf62f 100644 --- a/plugins/pow/pow.plugin.zsh +++ b/plugins/pow/pow.plugin.zsh @@ -4,7 +4,6 @@ # Adds a kapow command that will restart an app # # $ kapow myapp -# $ kapow # defaults to current directory # # Supports command completion. # @@ -12,14 +11,40 @@ # # autoload -U compinit compinit # -# Thanks also to Christopher Sexton -# https://gist.github.com/965032 +# Changes: # -function kapow { - FOLDERNAME=$1 - if [ -z "$FOLDERNAME" ]; then; FOLDERNAME=${PWD##*/}; fi - touch ~/.pow/$FOLDERNAME/tmp/restart.txt; - if [ $? -eq 0 ]; then; echo "pow: restarting $FOLDERNAME" ; fi -} +# Defaults to the current application, and will walk up the tree to find +# a config.ru file and restart the corresponding app +# +# Will Detect if a app does not exist in pow and print a (slightly) helpful +# error message -compctl -W ~/.pow -/ kapow +rack_root_detect(){ + setopt chaselinks + local orgdir=$(pwd) + local basedir=$(pwd) + + while [[ $basedir != '/' ]]; do + test -e "$basedir/config.ru" && break + builtin cd ".." 2>/dev/null + basedir="$(pwd)" + done + + builtin cd $orgdir 2>/dev/null + [[ ${basedir} == "/" ]] && return 1 + echo `basename $basedir | sed -E "s/.(com|net|org)//"` +} +kapow(){ + local vhost=$1 + [ ! -n "$vhost" ] && vhost=$(rack_root_detect) + if [ ! -h ~/.pow/$vhost ] + then + echo "pow: This domain isn’t set up yet. Symlink your application to ${vhost} first." + return 1 + fi + + [ ! -d "~/.pow/${vhost}/tmp" ] && mkdir -p "~/.pow/$vhost/tmp" + touch ~/.pow/$vhost/tmp/restart.txt; + [ $? -eq 0 ] && echo "pow: restarting $vhost.dev" +} +compctl -W ~/.pow -/ kapow \ No newline at end of file From 36cd5ed1a59394827d6e9d38eca33b614790ded3 Mon Sep 17 00:00:00 2001 From: John Antoni Griffiths Date: Wed, 18 Jan 2012 14:18:09 -0500 Subject: [PATCH 176/421] add alias to view the standard out (puts) from any pow app --- plugins/pow/pow.plugin.zsh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plugins/pow/pow.plugin.zsh b/plugins/pow/pow.plugin.zsh index 08e5cf62f..5ab55ff1f 100644 --- a/plugins/pow/pow.plugin.zsh +++ b/plugins/pow/pow.plugin.zsh @@ -47,4 +47,7 @@ kapow(){ touch ~/.pow/$vhost/tmp/restart.txt; [ $? -eq 0 ] && echo "pow: restarting $vhost.dev" } -compctl -W ~/.pow -/ kapow \ No newline at end of file +compctl -W ~/.pow -/ kapow + +# View the standard out (puts) from any pow app +alias kaput="tail -f ~/Library/Logs/Pow/apps/*" \ No newline at end of file From 3841da15d02e6d36310b9cc1ebd62502d0bf2135 Mon Sep 17 00:00:00 2001 From: John Antoni Griffiths Date: Wed, 18 Jan 2012 18:07:31 -0500 Subject: [PATCH 177/421] don't check for tmp dir --- plugins/pow/pow.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/pow/pow.plugin.zsh b/plugins/pow/pow.plugin.zsh index 5ab55ff1f..0fbcf8c7b 100644 --- a/plugins/pow/pow.plugin.zsh +++ b/plugins/pow/pow.plugin.zsh @@ -43,7 +43,7 @@ kapow(){ return 1 fi - [ ! -d "~/.pow/${vhost}/tmp" ] && mkdir -p "~/.pow/$vhost/tmp" + # [ ! -d "~/.pow/${vhost}/tmp" ] && mkdir -p "~/.pow/$vhost/tmp" touch ~/.pow/$vhost/tmp/restart.txt; [ $? -eq 0 ] && echo "pow: restarting $vhost.dev" } From f9b4356e0ed9e95890ce79c982dd5481ba7803aa Mon Sep 17 00:00:00 2001 From: John Antoni Griffiths Date: Wed, 18 Jan 2012 18:36:11 -0500 Subject: [PATCH 178/421] bug : stop creating those ~ directories add powit command to symlink an app if it hasn't been already --- plugins/pow/pow.plugin.zsh | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/plugins/pow/pow.plugin.zsh b/plugins/pow/pow.plugin.zsh index 0fbcf8c7b..399a54cb0 100644 --- a/plugins/pow/pow.plugin.zsh +++ b/plugins/pow/pow.plugin.zsh @@ -34,6 +34,7 @@ rack_root_detect(){ [[ ${basedir} == "/" ]] && return 1 echo `basename $basedir | sed -E "s/.(com|net|org)//"` } + kapow(){ local vhost=$1 [ ! -n "$vhost" ] && vhost=$(rack_root_detect) @@ -43,11 +44,23 @@ kapow(){ return 1 fi - # [ ! -d "~/.pow/${vhost}/tmp" ] && mkdir -p "~/.pow/$vhost/tmp" + [ ! -d ~/.pow/${vhost}/tmp ] && mkdir -p ~/.pow/$vhost/tmp touch ~/.pow/$vhost/tmp/restart.txt; [ $? -eq 0 ] && echo "pow: restarting $vhost.dev" } compctl -W ~/.pow -/ kapow +powit(){ + local basedir=$(pwd) + local vhost=$1 + [ ! -n "$vhost" ] && vhost=$(rack_root_detect) + if [ ! -h ~/.pow/$vhost ] + then + echo "pow: Symlinking your app with pow. ${vhost}" + [ ! -d ~/.pow/${vhost} ] && ln -s $basedir ~/.pow/$vhost + return 1 + fi +} + # View the standard out (puts) from any pow app -alias kaput="tail -f ~/Library/Logs/Pow/apps/*" \ No newline at end of file +alias kaput="tail -f ~/Library/Logs/Pow/apps/*" From 5f95d018e89e886615c82bc180e7e70457188c9b Mon Sep 17 00:00:00 2001 From: lepht Date: Wed, 18 Jan 2012 20:29:31 -0500 Subject: [PATCH 179/421] Updated to latest version of taskwarrior completions (using Taskwarrior 2.0b4) --- plugins/taskwarrior/_task | 160 +++++++++++++++----------------------- 1 file changed, 64 insertions(+), 96 deletions(-) diff --git a/plugins/taskwarrior/_task b/plugins/taskwarrior/_task index 5bffa9119..0bda738bb 100644 --- a/plugins/taskwarrior/_task +++ b/plugins/taskwarrior/_task @@ -1,37 +1,37 @@ #compdef task -# # zsh completion for taskwarrior # +# taskwarrior - a command line task list manager. +# # Copyright 2010 - 2011 Johannes Schlatow # Copyright 2009 P.C. Shyamshankar -# All rights reserved. # -# This script is part of the taskwarrior project. +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: # -# This program is free software; you can redistribute it and/or modify it under -# the terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. +# The above copyright notice and this permission notice shall be included +# in all copies or substantial portions of the Software. # -# This program is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -# details. +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. # -# You should have received a copy of the GNU General Public License along with -# this program; if not, write to the -# -# Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, -# Boston, MA -# 02110-1301 -# USA +# http://www.opensource.org/licenses/mit-license.php # typeset -g _task_cmds _task_projects _task_tags _task_config _task_modifiers _task_projects=($(task _projects)) _task_tags=($(task _tags)) _task_ids=($(task _ids)) _task_config=($(task _config)) +_task_columns=($(task _columns)) _task_modifiers=( 'before' \ 'after' \ @@ -46,39 +46,19 @@ _task_modifiers=( 'word' \ 'noword' ) +_task_conjunctions=( + 'and' \ + 'or' \ + 'xor' \ + '\)' + '\(' +) _task_cmds=($(task _commands)) _task_zshcmds=( ${(f)"$(task _zshcommands)"} ) - -_task_idCmds=( - 'append' \ - 'prepend' \ - 'annotate' \ - 'denotate' \ - 'edit' \ - 'duplicate' \ - 'info' \ - 'start' \ - 'stop' \ - 'done' -) - -_task_idCmdsDesc=( - 'append:Appends more description to an existing task.' \ - 'prepend:Prepends more description to an existing task.' \ - 'annotate:Adds an annotation to an existing task.' \ - 'denotate:Deletes an annotation of an existing task.' \ - 'edit:Launches an editor to let you modify a task directly.' \ - 'duplicate:Duplicates the specified task, and allows modifications.' \ - 'info:Shows all data, metadata for specified task.' \ - 'start:Marks specified task as started.' \ - 'stop:Removes the start time from a task.' \ - 'done:Marks the specified task as completed.' -) - _task() { _arguments -s -S \ - "*::task command:_task_commands" + "*::task default:_task_default" return 0 } @@ -148,6 +128,7 @@ _regex_words values 'task frequencies' \ 'weekly:Every week' \ 'biweekly:Every two weeks' \ 'fortnight:Every two weeks' \ ++ 'monthly:Every month' \ 'quarterly:Every three months' \ 'semiannual:Every six months' \ 'annual:Every year' \ @@ -196,22 +177,13 @@ _regex_arguments _task_attributes "${args[@]}" ## task commands -# default completion -(( $+functions[_task_default] )) || -_task_default() { +# filter completion +(( $+functions[_task_filter] )) || +_task_filter() { _task_attributes "$@" -} -# commands expecting an ID -(( $+functions[_task_id] )) || -_task_id() { - if (( CURRENT < 3 )); then - # update IDs - _task_zshids=( ${(f)"$(task _zshids)"} ) - _describe -t values 'task IDs' _task_zshids - else - _task_attributes "$@" - fi + # TODO complete conjunctions only if the previous word is a filter expression, i.e. attribute, ID, any non-command + _describe -t default 'task conjunctions' _task_conjunctions } # merge completion @@ -235,46 +207,42 @@ _task_pull() { _files } +# execute completion +(( $+functions[_task_execute] )) || +_task_execute() { + _files +} -# modify (task [0-9]* ...) completion -(( $+functions[_task_modify] )) || -_task_modify() { - _describe -t commands 'task command' _task_idCmdsDesc - _task_attributes "$@" +# id-only completion +(( $+functions[_task_id] )) || +_task_id() { + _describe -t values 'task IDs' _task_zshids } ## first level completion => task sub-command completion -(( $+functions[_task_commands] )) || -_task_commands() { +(( $+functions[_task_default] )) || +_task_default() { local cmd ret=1 - if (( CURRENT == 1 )); then - # update IDs - _task_zshids=( ${(f)"$(task _zshids)"} ) - _describe -t commands 'task command' _task_zshcmds - _describe -t values 'task IDs' _task_zshids - # TODO match more than one ID - elif [[ $words[1] =~ ^[0-9]*$ ]] then - _call_function ret _task_modify - return ret - else -# local curcontext="${curcontext}" -# cmd="${_task_cmds[(r)$words[1]:*]%%:*}" - cmd="${_task_cmds[(r)$words[1]]}" - idCmd="${(M)_task_idCmds[@]:#$words[1]}" - if (( $#cmd )); then -# curcontext="${curcontext%:*:*}:task-${cmd}" + integer i=1 + while (( i < $#words )) + do + cmd="${_task_cmds[(r)$words[$i]]}" + if (( $#cmd )); then + _call_function ret _task_${cmd} || + _call_function ret _task_filter || + _message "No command remaining." + return ret + fi + (( i++ )) + done - if (( $#idCmd )); then - _call_function ret _task_id - else - _call_function ret _task_${cmd} || - _call_function ret _task_default || - _message "No command remaining." - fi - else - _message "Unknown subcommand ${cmd}" - fi - return ret - fi + # update IDs + _task_zshids=( ${(f)"$(task _zshids)"} ) + + _describe -t commands 'task command' _task_zshcmds + _describe -t values 'task IDs' _task_zshids + _call_function ret _task_filter + + return ret } From 62a3ef643328a05c11a62cd42de12cf271ca1e69 Mon Sep 17 00:00:00 2001 From: "Steven G. Harms" Date: Sat, 21 Jan 2012 13:24:07 -0800 Subject: [PATCH 180/421] Grammar update --- README.textile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.textile b/README.textile index eca968089..bf6776665 100644 --- a/README.textile +++ b/README.textile @@ -56,7 +56,7 @@ the "refcard":http://www.bash2zsh.com/zsh_refcard/refcard.pdf is pretty tasty fo h3. Customization If you want to override any of the default behavior, just add a new file (ending in @.zsh@) into the @custom/@ directory. -If you have many functions which go good together you can put them as a *.plugin.zsh file in the @custom/plugins/@ directory and then enable this plugin. +If you have many functions which go well together you can put them as a *.plugin.zsh file in the @custom/plugins/@ directory and then enable this plugin. If you would like to override the functionality of a plugin distributed with oh-my-zsh, create a plugin of the same name in the @custom/plugins/@ directory and it will be loaded instead of the one in @plugins/@. From e0b235608032256f5b725676f7c6217480a52722 Mon Sep 17 00:00:00 2001 From: Tate Johnson Date: Sun, 22 Jan 2012 21:34:25 +1000 Subject: [PATCH 181/421] Add middleman to bundled commands --- plugins/bundler/bundler.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh index 12123eea6..74a3adaf8 100644 --- a/plugins/bundler/bundler.plugin.zsh +++ b/plugins/bundler/bundler.plugin.zsh @@ -6,7 +6,7 @@ alias bu="bundle update" # The following is based on https://github.com/gma/bundler-exec -bundled_commands=(annotate cap capify cucumber foreman guard heroku nanoc rackup rainbows rake rspec ruby shotgun spec spork thin thor unicorn unicorn_rails) +bundled_commands=(annotate cap capify cucumber foreman guard heroku middleman nanoc rackup rainbows rake rspec ruby shotgun spec spork thin thor unicorn unicorn_rails) ## Functions From 6496acf58bf8531809490b52e34811f74a27cc7c Mon Sep 17 00:00:00 2001 From: Brent Faulkner Date: Mon, 23 Jan 2012 20:42:54 -0500 Subject: [PATCH 182/421] adding rbenv support to all the rvm themes --- themes/alanpeabody.zsh-theme | 10 ++++++++-- themes/bira.zsh-theme | 9 ++++++++- themes/crunch.zsh-theme | 8 +++++++- themes/dallas.zsh-theme | 8 +++++++- themes/eastwood.zsh-theme | 4 ++++ themes/fino.zsh-theme | 9 ++++++++- themes/gallois.zsh-theme | 6 +++++- themes/jonathan.zsh-theme | 4 ++-- themes/josh.zsh-theme | 4 ++-- themes/macovsky-ruby.zsh-theme | 9 ++++++++- themes/macovsky.zsh-theme | 8 +++++++- themes/murilasso.zsh-theme | 2 +- themes/nebirhos.zsh-theme | 4 ++++ themes/superjarin.zsh-theme | 8 +++++++- themes/suvash.zsh-theme | 9 ++++++++- themes/wuffers.zsh-theme | 2 +- themes/zhann.zsh-theme | 10 +++++++++- 17 files changed, 96 insertions(+), 18 deletions(-) diff --git a/themes/alanpeabody.zsh-theme b/themes/alanpeabody.zsh-theme index 1f66f1ec3..4a1b1b386 100644 --- a/themes/alanpeabody.zsh-theme +++ b/themes/alanpeabody.zsh-theme @@ -1,7 +1,14 @@ local user='%{$fg[magenta]%}%n@%{$fg[magenta]%}%m%{$reset_color%}' local pwd='%{$fg[blue]%}%~%{$reset_color%}' -local rvm='%{$fg[green]%}‹$(rvm-prompt i v g)›%{$reset_color%}' +local rvm='' +if which rvm-prompt &> /dev/null; then + rvm='%{$fg[green]%}‹$(rvm-prompt i v g)›%{$reset_color%}' +else + if which rbenv &> /dev/null; then + rvm='%{$fg[green]%}‹$(rbenv version | sed -e "s/ (set.*$//")›%{$reset_color%}' + fi +fi local return_code='%(?..%{$fg[red]%}%? ↵%{$reset_color%})' local git_branch='$(git_prompt_status)%{$reset_color%}$(git_prompt_info)%{$reset_color%}' @@ -19,4 +26,3 @@ ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[cyan]%} ✭" PROMPT="${user} ${pwd}$ " RPROMPT="${return_code} ${git_branch} ${rvm}" - diff --git a/themes/bira.zsh-theme b/themes/bira.zsh-theme index 5642eaeb8..215720477 100644 --- a/themes/bira.zsh-theme +++ b/themes/bira.zsh-theme @@ -3,7 +3,14 @@ local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})" local user_host='%{$terminfo[bold]$fg[green]%}%n@%m%{$reset_color%}' local current_dir='%{$terminfo[bold]$fg[blue]%} %~%{$reset_color%}' -local rvm_ruby='%{$fg[red]%}‹$(rvm-prompt i v g)›%{$reset_color%}' +local rvm_ruby='' +if which rvm-prompt &> /dev/null; then + rvm_ruby='%{$fg[red]%}‹$(rvm-prompt i v g)›%{$reset_color%}' +else + if which rbenv &> /dev/null; then + rvm_ruby='%{$fg[red]%}‹$(rbenv version | sed -e "s/ (set.*$//")›%{$reset_color%}' + fi +fi local git_branch='$(git_prompt_info)%{$reset_color%}' PROMPT="╭─${user_host} ${current_dir} ${rvm_ruby} ${git_branch} diff --git a/themes/crunch.zsh-theme b/themes/crunch.zsh-theme index 2473cd230..b2759a1b0 100644 --- a/themes/crunch.zsh-theme +++ b/themes/crunch.zsh-theme @@ -29,7 +29,13 @@ ZSH_THEME_GIT_PROMPT_DIRTY=" $CRUNCH_GIT_DIRTY_COLOR✗" # Our elements: CRUNCH_TIME_="$CRUNCH_BRACKET_COLOR{$CRUNCH_TIME_COLOR%T$CRUNCH_BRACKET_COLOR}%{$reset_color%}" -CRUNCH_RVM_="$CRUNCH_BRACKET_COLOR"["$CRUNCH_RVM_COLOR\${\$(~/.rvm/bin/rvm-prompt i v g)#ruby-}$CRUNCH_BRACKET_COLOR"]"%{$reset_color%}" +if which rvm-prompt &> /dev/null; then + CRUNCH_RVM_="$CRUNCH_BRACKET_COLOR"["$CRUNCH_RVM_COLOR\${\$(~/.rvm/bin/rvm-prompt i v g)#ruby-}$CRUNCH_BRACKET_COLOR"]"%{$reset_color%}" +else + if which rbenv &> /dev/null; then + CRUNCH_RVM_="$CRUNCH_BRACKET_COLOR"["$CRUNCH_RVM_COLOR\${\$(rbenv version | sed -e 's/ (set.*$//' -e 's/^ruby-//')}$CRUNCH_BRACKET_COLOR"]"%{$reset_color%}" + fi +fi CRUNCH_DIR_="$CRUNCH_DIR_COLOR%~\$(git_prompt_info) " CRUNCH_PROMPT="$CRUNCH_BRACKET_COLOR➭ " diff --git a/themes/dallas.zsh-theme b/themes/dallas.zsh-theme index eef32e998..e9b4f852a 100644 --- a/themes/dallas.zsh-theme +++ b/themes/dallas.zsh-theme @@ -3,7 +3,13 @@ # Grab the current date (%D) and time (%T) wrapped in {}: {%D %T} DALLAS_CURRENT_TIME_="%{$fg[white]%}{%{$fg[yellow]%}%D %T%{$fg[white]%}}%{$reset_color%}" # Grab the current version of ruby in use (via RVM): [ruby-1.8.7] -DALLAS_CURRENT_RUBY_="%{$fg[white]%}[%{$fg[magenta]%}\$(~/.rvm/bin/rvm-prompt i v)%{$fg[white]%}]%{$reset_color%}" +if which rvm-prompt &> /dev/null; then + DALLAS_CURRENT_RUBY_="%{$fg[white]%}[%{$fg[magenta]%}\$(~/.rvm/bin/rvm-prompt i v)%{$fg[white]%}]%{$reset_color%}" +else + if which rbenv &> /dev/null; then + DALLAS_CURRENT_RUBY_="%{$fg[white]%}[%{$fg[magenta]%}\$(rbenv version | sed -e 's/ (set.*$//')%{$fg[white]%}]%{$reset_color%}" + fi +fi # Grab the current machine name: muscato DALLAS_CURRENT_MACH_="%{$fg[green]%}%m%{$fg[white]%}:%{$reset_color%}" # Grab the current filepath, use shortcuts: ~/Desktop diff --git a/themes/eastwood.zsh-theme b/themes/eastwood.zsh-theme index 83664515a..db2529990 100644 --- a/themes/eastwood.zsh-theme +++ b/themes/eastwood.zsh-theme @@ -1,6 +1,10 @@ #RVM settings if [[ -s ~/.rvm/scripts/rvm ]] ; then RPS1="%{$fg[yellow]%}rvm:%{$reset_color%}%{$fg[red]%}\$(~/.rvm/bin/rvm-prompt)%{$reset_color%} $EPS1" +else + if which rbenv &> /dev/null; then + RPS1="%{$fg[yellow]%}rbenv:%{$reset_color%}%{$fg[red]%}\$(rbenv version | sed -e 's/ (set.*$//')%{$reset_color%} $EPS1" + fi fi ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[green]%}[" diff --git a/themes/fino.zsh-theme b/themes/fino.zsh-theme index 17cf59708..26e547176 100644 --- a/themes/fino.zsh-theme +++ b/themes/fino.zsh-theme @@ -25,7 +25,14 @@ function box_name { } -local rvm_ruby='‹$(rvm-prompt i v g)›%{$reset_color%}' +local rvm_ruby='' +if which rvm-prompt &> /dev/null; then + rvm_ruby='‹$(rvm-prompt i v g)›%{$reset_color%}' +else + if which rbenv &> /dev/null; then + rvm_ruby='‹$(rbenv version | sed -e "s/ (set.*$//")›%{$reset_color%}' + fi +fi local current_dir='${PWD/#$HOME/~}' local git_info='$(git_prompt_info)' diff --git a/themes/gallois.zsh-theme b/themes/gallois.zsh-theme index f9406dd96..3eac14867 100644 --- a/themes/gallois.zsh-theme +++ b/themes/gallois.zsh-theme @@ -15,7 +15,11 @@ git_custom_status() { 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' + if which rbenv &> /dev/null; then + RPS1='$(git_custom_status)%{$fg[red]%}[`rbenv version | sed -e "s/ (set.*$//"`]%{$reset_color%} $EPS1' + else + RPS1='$(git_custom_status) $EPS1' + fi fi PROMPT='%{$fg[cyan]%}[%~% ]%(?.%{$fg[green]%}.%{$fg[red]%})%B$%b ' diff --git a/themes/jonathan.zsh-theme b/themes/jonathan.zsh-theme index a170a13d0..2f0c4b917 100644 --- a/themes/jonathan.zsh-theme +++ b/themes/jonathan.zsh-theme @@ -10,7 +10,7 @@ function theme_precmd { PR_PWDLEN="" local promptsize=${#${(%):---(%n@%m:%l)---()--}} - local rubyprompt=`rvm_prompt_info` + local rubyprompt=`rvm_prompt_info || rbenv_prompt_info` local rubypromptsize=${#${rubyprompt}} local pwdsize=${#${(%):-%~}} @@ -113,7 +113,7 @@ setprompt () { PROMPT='$PR_SET_CHARSET$PR_STITLE${(e)PR_TITLEBAR}\ $PR_CYAN$PR_SHIFT_IN$PR_ULCORNER$PR_HBAR$PR_SHIFT_OUT$PR_GREY(\ $PR_GREEN%$PR_PWDLEN<...<%~%<<\ -$PR_GREY)`rvm_prompt_info`$PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_HBAR${(e)PR_FILLBAR}$PR_HBAR$PR_SHIFT_OUT$PR_GREY(\ +$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(\ $PR_CYAN%(!.%SROOT%s.%n)$PR_GREY@$PR_GREEN%m:%l\ $PR_GREY)$PR_CYAN$PR_SHIFT_IN$PR_HBAR$PR_URCORNER$PR_SHIFT_OUT\ diff --git a/themes/josh.zsh-theme b/themes/josh.zsh-theme index 6bed1a70e..142e76838 100644 --- a/themes/josh.zsh-theme +++ b/themes/josh.zsh-theme @@ -10,7 +10,7 @@ function josh_prompt { prompt=" " branch=$(current_branch) - ruby_version=$(rvm_prompt_info) + ruby_version=$(rvm_prompt_info || rbenv_prompt_info) path_size=${#PWD} branch_size=${#branch} ruby_size=${#ruby_version} @@ -31,7 +31,7 @@ function josh_prompt { prompt=" $prompt" done - prompt="%{%F{green}%}$PWD$prompt%{%F{red}%}$(rvm_prompt_info)%{$reset_color%} $(git_prompt_info)" + prompt="%{%F{green}%}$PWD$prompt%{%F{red}%}$(rvm_prompt_info || rbenv_prompt_info)%{$reset_color%} $(git_prompt_info)" echo $prompt } diff --git a/themes/macovsky-ruby.zsh-theme b/themes/macovsky-ruby.zsh-theme index 4eb410233..045376761 100644 --- a/themes/macovsky-ruby.zsh-theme +++ b/themes/macovsky-ruby.zsh-theme @@ -1,7 +1,14 @@ # ZSH Theme - Preview: http://gyazo.com/8becc8a7ed5ab54a0262a470555c3eed.png local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})" -PROMPT='%{$fg[green]%}%~%{$reset_color%} %{$fg[red]%}‹$(~/.rvm/bin/rvm-prompt i v)› %{$reset_color%} $(git_prompt_info)%{$reset_color%}%B$%b ' +if which rvm-prompt &> /dev/null; then + PROMPT='%{$fg[green]%}%~%{$reset_color%} %{$fg[red]%}‹$(~/.rvm/bin/rvm-prompt i v)› %{$reset_color%} $(git_prompt_info)%{$reset_color%}%B$%b ' +else + if which rbenv &> /dev/null; then + PROMPT='%{$fg[green]%}%~%{$reset_color%} %{$fg[red]%}‹$(rbenv version | sed -e "s/ (set.*$//")› %{$reset_color%} $(git_prompt_info)%{$reset_color%}%B$%b ' + fi +fi + RPS1="${return_code}" ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[yellow]%}‹" diff --git a/themes/macovsky.zsh-theme b/themes/macovsky.zsh-theme index 4eb410233..b6978b929 100644 --- a/themes/macovsky.zsh-theme +++ b/themes/macovsky.zsh-theme @@ -1,7 +1,13 @@ # ZSH Theme - Preview: http://gyazo.com/8becc8a7ed5ab54a0262a470555c3eed.png local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})" -PROMPT='%{$fg[green]%}%~%{$reset_color%} %{$fg[red]%}‹$(~/.rvm/bin/rvm-prompt i v)› %{$reset_color%} $(git_prompt_info)%{$reset_color%}%B$%b ' +if which rvm-prompt &> /dev/null; then + PROMPT='%{$fg[green]%}%~%{$reset_color%} %{$fg[red]%}‹$(~/.rvm/bin/rvm-prompt i v)› %{$reset_color%} $(git_prompt_info)%{$reset_color%}%B$%b ' +else + if which rbenv &> /dev/null; then + PROMPT='%{$fg[green]%}%~%{$reset_color%} %{$fg[red]%}‹$(rbenv version | sed -e "s/ (set.*$//")› %{$reset_color%} $(git_prompt_info)%{$reset_color%}%B$%b ' + fi +fi RPS1="${return_code}" ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[yellow]%}‹" diff --git a/themes/murilasso.zsh-theme b/themes/murilasso.zsh-theme index 310357b45..bc2b9b224 100644 --- a/themes/murilasso.zsh-theme +++ b/themes/murilasso.zsh-theme @@ -1,7 +1,7 @@ local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})" local user_host='%{$terminfo[bold]$fg[green]%}%n@%m%{$reset_color%}' local current_dir='%{$terminfo[bold]$fg[blue]%}%~%{$reset_color%}' -local rvm_ruby='%{$fg[red]%}$(rvm_prompt_info)%{$reset_color%}' +local rvm_ruby='%{$fg[red]%}$(rvm_prompt_info || rbenv_prompt_info)%{$reset_color%}' local git_branch='%{$fg[blue]%}$(git_prompt_info)%{$reset_color%}' PROMPT="${user_host}:${current_dir} ${rvm_ruby} diff --git a/themes/nebirhos.zsh-theme b/themes/nebirhos.zsh-theme index c49df972e..c5864d9b8 100644 --- a/themes/nebirhos.zsh-theme +++ b/themes/nebirhos.zsh-theme @@ -4,6 +4,10 @@ # Get the current ruby version in use with RVM: if [ -e ~/.rvm/bin/rvm-prompt ]; then RUBY_PROMPT_="%{$fg_bold[blue]%}rvm:(%{$fg[green]%}\$(~/.rvm/bin/rvm-prompt s i v g)%{$fg_bold[blue]%})%{$reset_color%} " +else + if which rbenv &> /dev/null; then + RUBY_PROMPT_="%{$fg_bold[blue]%}rvm:(%{$fg[green]%}\$(rbenv version | sed -e 's/ (set.*$//')%{$fg_bold[blue]%})%{$reset_color%} " + fi fi # Get the host name (first 4 chars) diff --git a/themes/superjarin.zsh-theme b/themes/superjarin.zsh-theme index 16eeb5316..0be816de0 100644 --- a/themes/superjarin.zsh-theme +++ b/themes/superjarin.zsh-theme @@ -1,5 +1,11 @@ # Grab the current version of ruby in use (via RVM): [ruby-1.8.7] -JARIN_CURRENT_RUBY_="%{$fg[white]%}[%{$fg[red]%}\$(~/.rvm/bin/rvm-prompt i v)%{$fg[white]%}]%{$reset_color%}" +if which rvm-prompt &> /dev/null; then + JARIN_CURRENT_RUBY_="%{$fg[white]%}[%{$fg[red]%}\$(~/.rvm/bin/rvm-prompt i v)%{$fg[white]%}]%{$reset_color%}" +else + if which rbenv &> /dev/null; then + JARIN_CURRENT_RUBY_="%{$fg[white]%}[%{$fg[red]%}\$(rbenv version | sed -e 's/ (set.*$//')%{$fg[white]%}]%{$reset_color%}" + fi +fi # Grab the current filepath, use shortcuts: ~/Desktop # Append the current git branch, if in a git repository diff --git a/themes/suvash.zsh-theme b/themes/suvash.zsh-theme index f50657db2..c87f64558 100644 --- a/themes/suvash.zsh-theme +++ b/themes/suvash.zsh-theme @@ -12,8 +12,15 @@ 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%} +if which rvm-prompt &> /dev/null; then + 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) ' +else + if which rbenv &> /dev/null; then + 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%} +$(virtualenv_info)$(prompt_char) ' + fi +fi ZSH_THEME_GIT_PROMPT_PREFIX=" on %{$fg[magenta]%}" diff --git a/themes/wuffers.zsh-theme b/themes/wuffers.zsh-theme index 182d8a34f..4019d0a51 100644 --- a/themes/wuffers.zsh-theme +++ b/themes/wuffers.zsh-theme @@ -2,4 +2,4 @@ ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}[" ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%} " ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg_bold[red]%} x%{$fg_bold[blue]%}" -PROMPT='%{$(git_prompt_info)%}%{$fg_bold[green]%}{%{$(rvm current)%}}%{$reset_color%} %{$fg[cyan]%}%c%{$reset_color%} ' +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%} ' diff --git a/themes/zhann.zsh-theme b/themes/zhann.zsh-theme index 3dff29c9c..574e0cec3 100644 --- a/themes/zhann.zsh-theme +++ b/themes/zhann.zsh-theme @@ -1,5 +1,13 @@ 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%}' + +if which rvm-prompt &> /dev/null; then + RPROMPT='%{$reset_color%} %{$fg[red]%}$(~/.rvm/bin/rvm-prompt i v g) %{$reset_color%}' +else + if which rbenv &> /dev/null; then + RPROMPT='%{$reset_color%} %{$fg[red]%}$(rbenv version | sed -e "s/ (set.*$//") %{$reset_color%}' + fi +fi + ZSH_THEME_GIT_PROMPT_PREFIX=" (%{$fg[red]%}" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" From a26f9b9948405a10d3c04280a0ad2e49e69ba6f8 Mon Sep 17 00:00:00 2001 From: Alexander Greim Date: Wed, 25 Jan 2012 06:56:09 +0100 Subject: [PATCH 183/421] adding engine yard command (ey) to bundler binstubs --- plugins/bundler/bundler.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh index 96c649664..5e9b82336 100644 --- a/plugins/bundler/bundler.plugin.zsh +++ b/plugins/bundler/bundler.plugin.zsh @@ -6,7 +6,7 @@ alias bu="bundle update" # The following is based on https://github.com/gma/bundler-exec -bundled_commands=(annotate cap capify cucumber foreman guard heroku middleman nanoc rackup rainbows rake rspec ruby shotgun spec spork thin thor unicorn unicorn_rails) +bundled_commands=(annotate cap capify cucumber ey foreman guard heroku middleman nanoc rackup rainbows rake rspec ruby shotgun spec spork thin thor unicorn unicorn_rails) ## Functions From 0da18650c6d8f63c230c36e92786855361f42ef3 Mon Sep 17 00:00:00 2001 From: Wim Griffioen Date: Thu, 26 Jan 2012 19:31:45 +0100 Subject: [PATCH 184/421] added rails to bundled_commands --- plugins/bundler/bundler.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh index 5e9b82336..e1f571237 100644 --- a/plugins/bundler/bundler.plugin.zsh +++ b/plugins/bundler/bundler.plugin.zsh @@ -6,7 +6,7 @@ alias bu="bundle update" # The following is based on https://github.com/gma/bundler-exec -bundled_commands=(annotate cap capify cucumber ey foreman guard heroku middleman nanoc rackup rainbows rake rspec ruby shotgun spec spork thin thor unicorn unicorn_rails) +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) ## Functions From 52733cb3bb0b1c85230c5c69e6c7231fb41c67fe Mon Sep 17 00:00:00 2001 From: Tadaya Tsuyukubo Date: Thu, 26 Jan 2012 15:20:08 -0800 Subject: [PATCH 185/421] prompt git-remove as deleted --- lib/git.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/git.zsh b/lib/git.zsh index defa062c6..9c89c3664 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -54,6 +54,8 @@ git_prompt_status() { fi if $(echo "$INDEX" | grep '^ D ' &> /dev/null); then STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS" + elif $(echo "$INDEX" | grep '^D ' &> /dev/null); then + STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS" elif $(echo "$INDEX" | grep '^AD ' &> /dev/null); then STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS" fi From 35d89ab85991e9a6dc055d0fd790b50c1aaa0cce Mon Sep 17 00:00:00 2001 From: szetobo Date: Fri, 27 Jan 2012 08:50:28 +0800 Subject: [PATCH 186/421] update rails runner alias to ru - avoid rr as it is mostly used for restart rails server --- plugins/rails3/rails3.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/rails3/rails3.plugin.zsh b/plugins/rails3/rails3.plugin.zsh index a817b483f..52fdf43e9 100644 --- a/plugins/rails3/rails3.plugin.zsh +++ b/plugins/rails3/rails3.plugin.zsh @@ -14,7 +14,7 @@ alias rdb='_rails_command dbconsole' alias rdbm='rake db:migrate db:test:clone' alias rg='_rails_command generate' alias rp='_rails_command plugin' -alias rr='_rails_command runner' +alias ru='_rails_command runner' alias rs='_rails_command server' alias rsd='_rails_command server --debugger' alias devlog='tail -f log/development.log' From 8769e5f8c959f3d3fc9e5b62ab48fc0f73aedb1f Mon Sep 17 00:00:00 2001 From: Carlos Rodriguez Date: Thu, 26 Jan 2012 23:19:50 -0800 Subject: [PATCH 187/421] Removed trailing spaces in Git files. Fixes #867 --- lib/git.zsh | 2 +- plugins/git/git.plugin.zsh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/git.zsh b/lib/git.zsh index defa062c6..4d1634e8b 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -61,4 +61,4 @@ git_prompt_status() { STATUS="$ZSH_THEME_GIT_PROMPT_UNMERGED$STATUS" fi echo $STATUS -} +} \ No newline at end of file diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 94af31202..e1d682508 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -60,4 +60,4 @@ compdef ggpull=git alias ggpush='git push origin $(current_branch)' compdef ggpush=git alias ggpnp='git pull origin $(current_branch) && git push origin $(current_branch)' -compdef ggpnp=git +compdef ggpnp=git \ No newline at end of file From 8f89d4d5a5d584bae288d8111d83a6489a1369dc Mon Sep 17 00:00:00 2001 From: Darren Clark Date: Fri, 27 Jan 2012 01:20:06 -0700 Subject: [PATCH 188/421] Fixed Mac OS X Terminal.app related issue with extra newlines being printed out sometimes --- lib/termsupport.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index 221989502..6601cbcb8 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -6,6 +6,8 @@ function title { [ "$DISABLE_AUTO_TITLE" != "true" ] || return if [[ "$TERM" == screen* ]]; then print -Pn "\ek$1:q\e\\" #set screen hardstatus, usually truncated at 20 chars + elif [[ "$TERM_PROGRAM" == "Apple_Terminal" ]]; then + print -Pn "\e]1;$1:q\a" #set icon (=tab) name (will override window name on broken terminal) elif [[ "$TERM" == xterm* ]] || [[ $TERM == rxvt* ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then print -Pn "\e]2;$2:q\a" #set window name print -Pn "\e]1;$1:q\a" #set icon (=tab) name (will override window name on broken terminal) From dc4d7a92c1a56509ed116a3ea44345f556c4f91b Mon Sep 17 00:00:00 2001 From: Aleksey Orekhov Date: Wed, 8 Feb 2012 15:19:12 -0500 Subject: [PATCH 189/421] fixed asterisk display for modified repos in git prior to 1.7.2 --- lib/git.zsh | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/lib/git.zsh b/lib/git.zsh index 4d1634e8b..c46aa608d 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -4,15 +4,21 @@ function git_prompt_info() { echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX" } + # Checks if working tree is dirty parse_git_dirty() { - if [[ -n $(git status -s --ignore-submodules=dirty 2> /dev/null) ]]; then + local SUBMODULE_SYNTAX='' + if [[ PRE_1_7_2_GIT -gt 0 ]]; then + SUBMODULE_SYNTAX="--ignore-submodules=dirty" + fi + if [[ -n $(git status -s ${SUBMODULE_SYNTAX} 2> /dev/null) ]]; then echo "$ZSH_THEME_GIT_PROMPT_DIRTY" else echo "$ZSH_THEME_GIT_PROMPT_CLEAN" fi } + # Checks if there are commits ahead from remote function git_prompt_ahead() { if $(echo "$(git log origin/$(current_branch)..HEAD 2> /dev/null)" | grep '^commit' &> /dev/null); then @@ -61,4 +67,30 @@ git_prompt_status() { STATUS="$ZSH_THEME_GIT_PROMPT_UNMERGED$STATUS" fi echo $STATUS -} \ No newline at end of file +} + +#this is unlikely to change so make it all statically assigned +PRE_1_7_2_GIT=$(git_compare_version "1.7.2") +#clean up the namespace slightly by removing the checker function +unset -f git_compare_version() + +#compare the provided version of git to the version installed and on path +#prints 1 if input version <= installed version +#prints -1 otherwise +function git_compare_version() { + local INPUT_GIT_VERSION=$1; + local INSTALLED_GIT_VERSION + INPUT_GIT_VERSION=(${(s/./)INPUT_GIT_VERSION}); + INSTALLED_GIT_VERSION=($(git --version)); + INSTALLED_GIT_VERSION=(${(s/./)INSTALLED_GIT_VERSION[3]}); + + for i in {1..3}; do + if [[ $INSTALLED_GIT_VERSION[$i] -lt $INPUT_GIT_VERSION[$i] ]]; then + echo -1 + return 0 + fi + done + echo 1 +} + + From 7ea758834baa2694c2e9301fed1a71faa9f12166 Mon Sep 17 00:00:00 2001 From: Aleksey Orekhov Date: Wed, 8 Feb 2012 15:25:12 -0500 Subject: [PATCH 190/421] changed variable PRE_1_7_2_GIT to POST_1_7_2_GIT to make it more accurate --- lib/git.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/git.zsh b/lib/git.zsh index c46aa608d..efaa943ff 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -8,7 +8,7 @@ function git_prompt_info() { # Checks if working tree is dirty parse_git_dirty() { local SUBMODULE_SYNTAX='' - if [[ PRE_1_7_2_GIT -gt 0 ]]; then + if [[ POST_1_7_2_GIT -gt 0 ]]; then SUBMODULE_SYNTAX="--ignore-submodules=dirty" fi if [[ -n $(git status -s ${SUBMODULE_SYNTAX} 2> /dev/null) ]]; then @@ -70,7 +70,7 @@ git_prompt_status() { } #this is unlikely to change so make it all statically assigned -PRE_1_7_2_GIT=$(git_compare_version "1.7.2") +POST_1_7_2_GIT=$(git_compare_version "1.7.2") #clean up the namespace slightly by removing the checker function unset -f git_compare_version() From a9f6aed307f128a58176b151bc36854c9d3899f7 Mon Sep 17 00:00:00 2001 From: Aleksey Orekhov Date: Wed, 8 Feb 2012 15:30:58 -0500 Subject: [PATCH 191/421] fixed introduced to parse_git_dirty --- lib/git.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/git.zsh b/lib/git.zsh index efaa943ff..d90f0f315 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -8,7 +8,7 @@ function git_prompt_info() { # Checks if working tree is dirty parse_git_dirty() { local SUBMODULE_SYNTAX='' - if [[ POST_1_7_2_GIT -gt 0 ]]; then + if [[ $POST_1_7_2_GIT -gt 0 ]]; then SUBMODULE_SYNTAX="--ignore-submodules=dirty" fi if [[ -n $(git status -s ${SUBMODULE_SYNTAX} 2> /dev/null) ]]; then From 5a5c93b33493b47d34dd470eb851aaf24fa87536 Mon Sep 17 00:00:00 2001 From: cruser42 Date: Tue, 21 Feb 2012 10:47:05 -0500 Subject: [PATCH 192/421] Fixed bug introduced when fixing issue 896 --- lib/git.zsh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/git.zsh b/lib/git.zsh index d90f0f315..fb4ad8ca6 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -69,11 +69,6 @@ git_prompt_status() { echo $STATUS } -#this is unlikely to change so make it all statically assigned -POST_1_7_2_GIT=$(git_compare_version "1.7.2") -#clean up the namespace slightly by removing the checker function -unset -f git_compare_version() - #compare the provided version of git to the version installed and on path #prints 1 if input version <= installed version #prints -1 otherwise @@ -93,4 +88,9 @@ function git_compare_version() { echo 1 } +#this is unlikely to change so make it all statically assigned +POST_1_7_2_GIT=$(git_compare_version "1.7.2") +#clean up the namespace slightly by removing the checker function +unset -f git_compare_version + From d693711f1419c4c4da1da8eca35c1d983bb42ab0 Mon Sep 17 00:00:00 2001 From: Alex Light Date: Tue, 28 Feb 2012 13:52:57 -0500 Subject: [PATCH 193/421] made the 'd' alias only show the directories that can be cd'ed to using the number aliases --- lib/directories.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/directories.zsh b/lib/directories.zsh index bb114f615..a787db9eb 100644 --- a/lib/directories.zsh +++ b/lib/directories.zsh @@ -36,9 +36,9 @@ cd () { alias md='mkdir -p' alias rd=rmdir -alias d='dirs -v' +alias d='dirs -v | head -10' # mkdir & cd to it function mcd() { mkdir -p "$1" && cd "$1"; -} \ No newline at end of file +} From f8802bd61216b7636b9065efe5441479d3e4f7fd Mon Sep 17 00:00:00 2001 From: Rotem Yaari Date: Thu, 26 Jan 2012 22:25:51 +0200 Subject: [PATCH 194/421] Add dircycle plugin: enables cycling through the directory stack --- plugins/dircycle/dircycle.plugin.zsh | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 plugins/dircycle/dircycle.plugin.zsh diff --git a/plugins/dircycle/dircycle.plugin.zsh b/plugins/dircycle/dircycle.plugin.zsh new file mode 100644 index 000000000..46a0ab268 --- /dev/null +++ b/plugins/dircycle/dircycle.plugin.zsh @@ -0,0 +1,10 @@ +## +# dircycle plugin: enables cycling through the directory +# stack using Ctrl+Shift+Left/Right + +eval "insert-cycledleft () { zle push-line; LBUFFER='pushd -q +1'; zle accept-line }" +zle -N insert-cycledleft +bindkey "\e[1;6D" insert-cycledleft +eval "insert-cycledright () { zle push-line; LBUFFER='pushd -q -0'; zle accept-line }" +zle -N insert-cycledright +bindkey "\e[1;6C" insert-cycledright From 19bf83e17d90d64b9bb40f8fd4c36e660e4b17e3 Mon Sep 17 00:00:00 2001 From: Rotem Yaari Date: Sun, 29 Jan 2012 16:41:40 +0200 Subject: [PATCH 195/421] Pager is 'less -R' to support colored outputs --- lib/misc.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/misc.zsh b/lib/misc.zsh index 88732e664..0f7e7e925 100644 --- a/lib/misc.zsh +++ b/lib/misc.zsh @@ -9,5 +9,5 @@ bindkey "^[m" copy-prev-shell-word setopt long_list_jobs ## pager -export PAGER=less +export PAGER="less -R" export LC_CTYPE=$LANG From b1e4ef17543d4a236ad35417ac36560917e6cadc Mon Sep 17 00:00:00 2001 From: pomaxa Date: Thu, 1 Mar 2012 16:57:00 +0200 Subject: [PATCH 196/421] current repository action --- plugins/git/git.plugin.zsh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index e1d682508..d3d3f702a 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -54,10 +54,16 @@ function current_branch() { echo ${ref#refs/heads/} } +function current_repository() { + + ref=$(git symbolic-ref HEAD 2> /dev/null) || return + echo $(git remote -v | cut -d':' -f 2) +} + # these aliases take advantage of the previous function alias ggpull='git pull origin $(current_branch)' compdef ggpull=git alias ggpush='git push origin $(current_branch)' compdef ggpush=git alias ggpnp='git pull origin $(current_branch) && git push origin $(current_branch)' -compdef ggpnp=git \ No newline at end of file +compdef ggpnp=git From 09c5996cd0528eb03a93dd464f3cbd755eafd624 Mon Sep 17 00:00:00 2001 From: Henry Yan Date: Mon, 5 Mar 2012 21:36:50 +0800 Subject: [PATCH 197/421] Added kafeitu theme it modified by robbyrussell --- kafeitu.zsh-theme | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 kafeitu.zsh-theme diff --git a/kafeitu.zsh-theme b/kafeitu.zsh-theme new file mode 100644 index 000000000..60c0303b9 --- /dev/null +++ b/kafeitu.zsh-theme @@ -0,0 +1,6 @@ +PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%n %{$fg[blue]%}%D{[%I:%M:%S]} %{$fg_bold[green]%}%p %{$fg[cyan]%}%~ %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' + +ZSH_THEME_GIT_PROMPT_PREFIX="git:(%{$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]%})" From c1e9d9226c106aaf973712b1a700dd045aeff9bc Mon Sep 17 00:00:00 2001 From: Henry Yan Date: Mon, 5 Mar 2012 21:39:09 +0800 Subject: [PATCH 198/421] move kafeitu.zsh-theme to themes folder --- kafeitu.zsh-theme => themes/kafeitu.zsh-theme | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename kafeitu.zsh-theme => themes/kafeitu.zsh-theme (100%) diff --git a/kafeitu.zsh-theme b/themes/kafeitu.zsh-theme similarity index 100% rename from kafeitu.zsh-theme rename to themes/kafeitu.zsh-theme From bd4f1eeca2d1430029153f7be0aa432ef5d2fce9 Mon Sep 17 00:00:00 2001 From: Henry Yan Date: Tue, 6 Mar 2012 14:09:11 +0800 Subject: [PATCH 199/421] =?UTF-8?q?add=20hostname=20behind=20username,=20e?= =?UTF-8?q?xample:=20henryyan=20[02:07:20]=20=20~/.oh-my-zsh=20git:(master?= =?UTF-8?q?)=20=E2=9C=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- themes/kafeitu.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/kafeitu.zsh-theme b/themes/kafeitu.zsh-theme index 60c0303b9..18e941601 100644 --- a/themes/kafeitu.zsh-theme +++ b/themes/kafeitu.zsh-theme @@ -1,4 +1,4 @@ -PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%n %{$fg[blue]%}%D{[%I:%M:%S]} %{$fg_bold[green]%}%p %{$fg[cyan]%}%~ %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' +PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%n%{$fg[blue]%}@%{$fg_bold[green]%}%m %{$fg[blue]%}%D{[%I:%M:%S]} %{$fg_bold[green]%}%p %{$fg[cyan]%}%~ %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' ZSH_THEME_GIT_PROMPT_PREFIX="git:(%{$fg[red]%}" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" From 7ffc3e745fa7ab020ec45e4ffe7a069c823e386a Mon Sep 17 00:00:00 2001 From: Henry Yan Date: Tue, 6 Mar 2012 14:14:17 +0800 Subject: [PATCH 200/421] change color of @ to cyan --- themes/kafeitu.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/kafeitu.zsh-theme b/themes/kafeitu.zsh-theme index 18e941601..a89a899aa 100644 --- a/themes/kafeitu.zsh-theme +++ b/themes/kafeitu.zsh-theme @@ -1,4 +1,4 @@ -PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%n%{$fg[blue]%}@%{$fg_bold[green]%}%m %{$fg[blue]%}%D{[%I:%M:%S]} %{$fg_bold[green]%}%p %{$fg[cyan]%}%~ %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' +PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%n%{$fg[cyan]%}@%{$fg_bold[green]%}%m %{$fg[blue]%}%D{[%I:%M:%S]} %{$fg_bold[green]%}%p %{$fg[cyan]%}%~ %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' ZSH_THEME_GIT_PROMPT_PREFIX="git:(%{$fg[red]%}" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" From c7105a53416866e8315c503546dc5bfe2b9da83f Mon Sep 17 00:00:00 2001 From: Jeffrey Dileo Date: Wed, 7 Mar 2012 07:47:34 -0500 Subject: [PATCH 201/421] Disabled title function for emacs term mode --- lib/termsupport.zsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index 221989502..e26fef6d3 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -3,7 +3,9 @@ #Fully support screen, iterm, and probably most modern xterm and rxvt #Limited support for Apple Terminal (Terminal can't set window or tab separately) function title { - [ "$DISABLE_AUTO_TITLE" != "true" ] || return + if [[ "$DISABLE_AUTO_TITLE" == "true" ]] || [[ "$EMACS" == *term* ]]; then + return + fi 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 From 814ecfc60daffc1eac250d41643d05fb1f43bd4c Mon Sep 17 00:00:00 2001 From: Henry Yan Date: Wed, 7 Mar 2012 23:52:51 +0800 Subject: [PATCH 202/421] delete time filed --- themes/kafeitu.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/kafeitu.zsh-theme b/themes/kafeitu.zsh-theme index a89a899aa..c4720b24d 100644 --- a/themes/kafeitu.zsh-theme +++ b/themes/kafeitu.zsh-theme @@ -1,4 +1,4 @@ -PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%n%{$fg[cyan]%}@%{$fg_bold[green]%}%m %{$fg[blue]%}%D{[%I:%M:%S]} %{$fg_bold[green]%}%p %{$fg[cyan]%}%~ %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' +PROMPT='%{$fg_bold[red]%}➜ %{$fg_bold[green]%}%n%{$fg[cyan]%}@%{$fg_bold[green]%}%m %{$fg_bold[green]%}%p %{$fg[cyan]%}%~ %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' ZSH_THEME_GIT_PROMPT_PREFIX="git:(%{$fg[red]%}" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" From db27635d8b4cb60f4d3594893e53777179d00d43 Mon Sep 17 00:00:00 2001 From: Vitaliy Yanchuk Date: Fri, 16 Mar 2012 14:10:37 +0200 Subject: [PATCH 203/421] Plugin for encoding strings into base64 and decoding them --- plugins/encode64/encode64.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 plugins/encode64/encode64.plugin.zsh diff --git a/plugins/encode64/encode64.plugin.zsh b/plugins/encode64/encode64.plugin.zsh new file mode 100644 index 000000000..cfb7c6a18 --- /dev/null +++ b/plugins/encode64/encode64.plugin.zsh @@ -0,0 +1,2 @@ +encode64(){ echo -n $1 | base64 } +decode64(){ echo -n $1 | base64 -D } \ No newline at end of file From 5f72c6313643f3e627394c540192b77781c08178 Mon Sep 17 00:00:00 2001 From: Mat Schaffer Date: Sat, 17 Mar 2012 22:03:01 -0300 Subject: [PATCH 204/421] Don't clobber standard Esc+. behavior Esc+. works as "last arg" on both bash and zsh. Seems like a shame to introduce a new standard. --- lib/key-bindings.zsh | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/key-bindings.zsh b/lib/key-bindings.zsh index 5c1b90bfa..5f499f3e8 100644 --- a/lib/key-bindings.zsh +++ b/lib/key-bindings.zsh @@ -3,7 +3,6 @@ bindkey -e bindkey '\ew' kill-region bindkey -s '\el' "ls\n" -bindkey -s '\e.' "..\n" bindkey '^r' history-incremental-search-backward bindkey "^[[5~" up-line-or-history bindkey "^[[6~" down-line-or-history From 605ad8725b06cc15f8523404f59060b6a71bb7a2 Mon Sep 17 00:00:00 2001 From: mapc Date: Tue, 20 Mar 2012 02:25:21 +0100 Subject: [PATCH 205/421] Add a cat smilie as alias for cat --- plugins/lol/lol.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/lol/lol.plugin.zsh b/plugins/lol/lol.plugin.zsh index e455527e7..e53688763 100644 --- a/plugins/lol/lol.plugin.zsh +++ b/plugins/lol/lol.plugin.zsh @@ -5,6 +5,7 @@ alias wtf='dmesg' alias onoz='cat /var/log/errors.log' alias rtfm='man' +alias :3='echo' alias visible='echo' alias invisible='cat' alias moar='more' From 60c3fa937120f38b1215a57889c8207989c9a7f1 Mon Sep 17 00:00:00 2001 From: dir01 Date: Thu, 22 Mar 2012 04:34:19 +0700 Subject: [PATCH 206/421] Python plugin: added pygrep command, simplified pyclean --- plugins/python/python.plugin.zsh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plugins/python/python.plugin.zsh b/plugins/python/python.plugin.zsh index 3ea34d718..8be3cd863 100644 --- a/plugins/python/python.plugin.zsh +++ b/plugins/python/python.plugin.zsh @@ -2,4 +2,7 @@ alias pyfind='find . -name "*.py"' # Remove python compiled byte-code -alias pyclean='find . -type f -name "*.py[co]" -exec rm -f \{\} \;' +alias pyclean='find . -type f -name "*.py[co]" -delete' + +# Grep among .py files +alias pygrep='grep --include="*.py"' From e9feccf6a94f9f5238ff0b3501f62575d14ae148 Mon Sep 17 00:00:00 2001 From: Henry Yan Date: Thu, 22 Mar 2012 09:33:55 +0800 Subject: [PATCH 207/421] add maven plugin --- plugins/mvn/mvn.plugin.zsh | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 plugins/mvn/mvn.plugin.zsh diff --git a/plugins/mvn/mvn.plugin.zsh b/plugins/mvn/mvn.plugin.zsh new file mode 100644 index 000000000..8c87d3afe --- /dev/null +++ b/plugins/mvn/mvn.plugin.zsh @@ -0,0 +1,6 @@ +function listMavenCompletions { +reply=( +cli:execute cli:execute-phase archetype:generate generate-sources compile clean install test test-compile deploy package cobertura:cobertura jetty:run gwt:run gwt:debug -DskipTests -Dmaven.test.skip=true -Dtest= `if [ -d ./src ] ; then find ./src -type f | grep -v svn | sed 's?.*/\([^/]*\)\..*?-Dtest=\1?' ; fi`); +} + +compctl -K listMavenCompletions mvn From 12e181c6f6167adabb688f63418037c8c1949335 Mon Sep 17 00:00:00 2001 From: Daniel Lockard Date: Wed, 4 Apr 2012 13:04:00 -0500 Subject: [PATCH 208/421] Added an if-statement to see if git is installed --- tools/install.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tools/install.sh b/tools/install.sh index aedb706da..8ca427d2c 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -5,7 +5,13 @@ then fi echo "\033[0;34mCloning Oh My Zsh...\033[0m" -/usr/bin/env git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh +which git > /dev/null +if [[ $? -eq 0 ]]; then + /usr/bin/env git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh +else + echo "git not installed" + exit +fi echo "\033[0;34mLooking for an existing zsh config...\033[0m" if [ -f ~/.zshrc ] || [ -h ~/.zshrc ] From e429a880e68982ce9ab0f35921174493fa3e4c03 Mon Sep 17 00:00:00 2001 From: ntpeters Date: Thu, 12 Apr 2012 06:04:24 -0300 Subject: [PATCH 209/421] Added yum aliases for: makecache, grouplist, groupinstall, and groupremove. --- plugins/yum/yum.plugin.zsh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/yum/yum.plugin.zsh b/plugins/yum/yum.plugin.zsh index d6ba7ed62..c9966f1b1 100644 --- a/plugins/yum/yum.plugin.zsh +++ b/plugins/yum/yum.plugin.zsh @@ -3,10 +3,14 @@ alias ys="yum search" # search package alias yp="yum info" # show package info alias yl="yum list" # list packages +alias ygl="yum grouplist" # list package groups alias yli="yum list installed" # print all installed packages +alias ymc="yum makecache # rebuilds the yum package list alias yu="sudo yum update" # upgrate packages alias yi="sudo yum install" # install package +alias ygi="sudo yum groupinstall" # install package group alias yr="sudo yum remove" # remove package +alias ygr="sudo yum groupremove" # remove pagage group alias yrl="sudo yum remove --remove-leaves" # remove package and leaves -alias yc="sudo yum clean all" # clean cache +alias yc="sudo yum clean all" # clean cache \ No newline at end of file From 5eb466a7886e1220584322a10964343a101ed1dc Mon Sep 17 00:00:00 2001 From: Dylan Hudson Date: Thu, 19 Apr 2012 00:14:55 -0700 Subject: [PATCH 210/421] added aliases for sublime text --- plugins/sublime/sublime.plugin.zsh | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 plugins/sublime/sublime.plugin.zsh diff --git a/plugins/sublime/sublime.plugin.zsh b/plugins/sublime/sublime.plugin.zsh new file mode 100644 index 000000000..e0f6e052c --- /dev/null +++ b/plugins/sublime/sublime.plugin.zsh @@ -0,0 +1,3 @@ +# Sublime Text 2 Aliases +alias st='open -a "/Applications/Sublime Text 2.app"' +alias stt='st .' From 99a3c3c5c85b7a72037022607f41d682b77db7d7 Mon Sep 17 00:00:00 2001 From: Dylan Hudson Date: Sun, 22 Apr 2012 08:36:37 -0700 Subject: [PATCH 211/421] changed the alias to use to cli provided by sublime text --- plugins/sublime/sublime.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/sublime/sublime.plugin.zsh b/plugins/sublime/sublime.plugin.zsh index e0f6e052c..c42c68df1 100644 --- a/plugins/sublime/sublime.plugin.zsh +++ b/plugins/sublime/sublime.plugin.zsh @@ -1,3 +1,3 @@ # Sublime Text 2 Aliases -alias st='open -a "/Applications/Sublime Text 2.app"' +alias st='/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl' alias stt='st .' From e2f7623534054645e849db42a0030a1642e5ba97 Mon Sep 17 00:00:00 2001 From: Mat Gadd Date: Thu, 3 May 2012 13:03:23 +0100 Subject: [PATCH 212/421] Don't drop everything after a trailing slash, as this breaks standard svn branches: ^/branches/featurename ^/releases/Release-vx.y ^/trunk --- plugins/svn/svn.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/svn/svn.plugin.zsh b/plugins/svn/svn.plugin.zsh index e2cf96ca3..4d5bfb8dd 100644 --- a/plugins/svn/svn.plugin.zsh +++ b/plugins/svn/svn.plugin.zsh @@ -16,7 +16,7 @@ function svn_get_repo_name { if [ $(in_svn) ]; then svn info | sed -n 's/Repository\ Root:\ .*\///p' | read SVN_ROOT - svn info | sed -n "s/URL:\ .*$SVN_ROOT\///p" | sed "s/\/.*$//" + svn info | sed -n "s/URL:\ .*$SVN_ROOT\///p" fi } From 51c55ad17e23db89e72424add0c34fa20654cd8f Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Sun, 6 May 2012 11:08:34 +0100 Subject: [PATCH 213/421] Suppress "zsh: no matches found" error when $ZSH_CUSTOM has no files The addition of `(.N)` enables the `NULL_GLOB` option which suppresses the error output in question. Reference: http://www.zsh.org/mla/users/2004/msg00621.html --- oh-my-zsh.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index 732a403b7..e360344b0 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -51,7 +51,7 @@ for plugin ($plugins); do done # Load all of your custom configurations from custom/ -for config_file ($ZSH_CUSTOM/*.zsh) source $config_file +for config_file ($ZSH_CUSTOM/*.zsh(.N)) source $config_file # Load the theme if [ "$ZSH_THEME" = "random" ] From f9018c5efbb6cf164139009eff1863837d72b412 Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Sun, 6 May 2012 11:10:16 +0100 Subject: [PATCH 214/421] Load themes from `$ZSH_CUSTOM` instead of `$ZSH/custom` This seems like a simple oversight, everything else uses `$ZSH_CUSTOM` rather than `$ZSH/custom`. --- oh-my-zsh.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index e360344b0..c2b6049cb 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -65,12 +65,11 @@ then else if [ ! "$ZSH_THEME" = "" ] then - if [ -f "$ZSH/custom/$ZSH_THEME.zsh-theme" ] + if [ -f "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme" ] then - source "$ZSH/custom/$ZSH_THEME.zsh-theme" + source "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme" else source "$ZSH/themes/$ZSH_THEME.zsh-theme" fi fi fi - From adab18f1616956beb10419dc52b8d713d6b6c9e0 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Sun, 25 Mar 2012 00:00:05 +0200 Subject: [PATCH 215/421] Added suse plugins --- plugins/suse/suse.plugin.zsh | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 plugins/suse/suse.plugin.zsh diff --git a/plugins/suse/suse.plugin.zsh b/plugins/suse/suse.plugin.zsh new file mode 100644 index 000000000..d79308caf --- /dev/null +++ b/plugins/suse/suse.plugin.zsh @@ -0,0 +1,5 @@ +alias zi='sudo zypper install' +alias zrf='sudo zypper refresh' +alias zs='zypper search' +alias zup='sudo zypper dist-upgrade' +alias zrm='sudo zypper remove' From b4380aacb0a0a89618430b2bbb1221c602d43d62 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Thu, 19 Apr 2012 13:49:15 +0300 Subject: [PATCH 216/421] Added zp and zps aliases for the SUSE plugin --- plugins/suse/suse.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/suse/suse.plugin.zsh b/plugins/suse/suse.plugin.zsh index d79308caf..d46286948 100644 --- a/plugins/suse/suse.plugin.zsh +++ b/plugins/suse/suse.plugin.zsh @@ -3,3 +3,5 @@ alias zrf='sudo zypper refresh' alias zs='zypper search' alias zup='sudo zypper dist-upgrade' alias zrm='sudo zypper remove' +alias zp='sudo zypper patch' +alias zps='sudo zypper ps' From 6f859c5837753a87544b2672678e36bcf167cc82 Mon Sep 17 00:00:00 2001 From: Varun Vijayaraghavan Date: Mon, 21 May 2012 10:42:12 -0400 Subject: [PATCH 217/421] Add Sublime Text 2 alias for Linux. Detects the platform using "uname", and sets the alias accordingly. If you are using Linux, this assumes that you have created a symbolic link to /usr/bin/sublime_text. --- plugins/sublime/sublime.plugin.zsh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/sublime/sublime.plugin.zsh b/plugins/sublime/sublime.plugin.zsh index c42c68df1..6825d6c08 100644 --- a/plugins/sublime/sublime.plugin.zsh +++ b/plugins/sublime/sublime.plugin.zsh @@ -1,3 +1,8 @@ # Sublime Text 2 Aliases -alias st='/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl' +#unamestr = 'uname' +if [[ uname == 'Linux' ]]; then + alias st='open -a /usr/bin/sublime_text' +elif [[ uname == 'Darwin' ]]; then + alias st='open -a "/Applications/Sublime Text 2.app' +fi alias stt='st .' From 61c39b50390a7869f22001a6cd65b7e8cd977e88 Mon Sep 17 00:00:00 2001 From: natsumesou Date: Wed, 23 May 2012 13:49:21 +0900 Subject: [PATCH 218/421] Load symlink custom files `(.)` search only real files. The deletion of it enables searching symlink *.zsh files --- oh-my-zsh.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index c2b6049cb..ddef1ad6c 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -51,7 +51,7 @@ for plugin ($plugins); do done # Load all of your custom configurations from custom/ -for config_file ($ZSH_CUSTOM/*.zsh(.N)) source $config_file +for config_file ($ZSH_CUSTOM/*.zsh(N)) source $config_file # Load the theme if [ "$ZSH_THEME" = "random" ] From 0f9fff8aecb154627b42a57cede37f7bd7b6c3ba Mon Sep 17 00:00:00 2001 From: Alexander Berezovsky Date: Wed, 23 May 2012 16:47:06 -0700 Subject: [PATCH 219/421] add fasd plugin --- plugins/fasd/fasd.plugin.zsh | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 plugins/fasd/fasd.plugin.zsh diff --git a/plugins/fasd/fasd.plugin.zsh b/plugins/fasd/fasd.plugin.zsh new file mode 100644 index 000000000..d42584f1a --- /dev/null +++ b/plugins/fasd/fasd.plugin.zsh @@ -0,0 +1,6 @@ +if [ $commands[fasd] ]; then # check if fasd is installed + eval "$(fasd --init auto)" + alias v='f -e vim' + alias o='a -e open' +fi + From 548f68d7f028acc70f4a9026a28161a604edc405 Mon Sep 17 00:00:00 2001 From: Alexander Berezovsky Date: Wed, 23 May 2012 17:03:18 -0700 Subject: [PATCH 220/421] fino-time theme --- themes/fino-time.zsh-theme | 39 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 themes/fino-time.zsh-theme diff --git a/themes/fino-time.zsh-theme b/themes/fino-time.zsh-theme new file mode 100644 index 000000000..22c7a0981 --- /dev/null +++ b/themes/fino-time.zsh-theme @@ -0,0 +1,39 @@ +# Fino-time theme by Aexander Berezovsky (http://berezovsky.me) based on Fino by Max Masnick (http://max.masnick.me) + +# Use with a dark background and 256-color terminal! +# Meant for people with RVM and git. Tested only on OS X 10.7. + +# You can set your computer name in the ~/.box-name file if you want. + +# Borrowing shamelessly from these oh-my-zsh themes: +# bira +# robbyrussell +# +# Also borrowing from http://stevelosh.com/blog/2010/02/my-extravagant-zsh-prompt/ + +function virtualenv_info { + [ $VIRTUAL_ENV ] && echo '('`basename $VIRTUAL_ENV`') ' +} + +function prompt_char { + git branch >/dev/null 2>/dev/null && echo '±' && return + echo '○' +} + +function box_name { + [ -f ~/.box-name ] && cat ~/.box-name || hostname -s +} + + +local rvm_ruby='‹$(rvm-prompt i v g)›%{$reset_color%}' +local current_dir='${PWD/#$HOME/~}' +local git_info='$(git_prompt_info)' + + +PROMPT="╭─%{$FG[040]%}%n%{$reset_color%} %{$FG[239]%}at%{$reset_color%} %{$FG[033]%}$(box_name)%{$reset_color%} %{$FG[239]%}in%{$reset_color%} %{$terminfo[bold]$FG[226]%}${current_dir}%{$reset_color%}${git_info} %{$FG[239]%}using%{$FG[243]%} ${rvm_ruby} %D - %* +╰─$(virtualenv_info)$(prompt_char) " + +ZSH_THEME_GIT_PROMPT_PREFIX=" %{$FG[239]%}on%{$reset_color%} %{$fg[255]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$FG[202]%}✘✘✘" +ZSH_THEME_GIT_PROMPT_CLEAN="%{$FG[040]%}✔" From 8923694fb42393d063487203e803199b394bbb47 Mon Sep 17 00:00:00 2001 From: Varun Vijayaraghavan Date: Thu, 24 May 2012 11:33:19 -0400 Subject: [PATCH 221/421] Fixed a bug in checking the platform --- plugins/sublime/sublime.plugin.zsh | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) mode change 100644 => 100755 plugins/sublime/sublime.plugin.zsh diff --git a/plugins/sublime/sublime.plugin.zsh b/plugins/sublime/sublime.plugin.zsh old mode 100644 new mode 100755 index 6825d6c08..0035b1b26 --- a/plugins/sublime/sublime.plugin.zsh +++ b/plugins/sublime/sublime.plugin.zsh @@ -1,8 +1,9 @@ # Sublime Text 2 Aliases #unamestr = 'uname' -if [[ uname == 'Linux' ]]; then - alias st='open -a /usr/bin/sublime_text' -elif [[ uname == 'Darwin' ]]; then - alias st='open -a "/Applications/Sublime Text 2.app' + +if [[ $('uname') == 'Linux' ]]; then + alias st='/usr/bin/sublime_text&' +elif [[ $('uname') == 'Darwin' ]]; then + alias st='open -a /Applications/Sublime Text 2.app' fi alias stt='st .' From 8de877d63222ed4effad7d52d68fccca2c01b6dd Mon Sep 17 00:00:00 2001 From: Amar Raja Date: Tue, 29 May 2012 10:20:49 +0200 Subject: [PATCH 222/421] Prevent the heroku command from being automatically bundle-exec'ed The heroku command should not be executed via bundler, see: https://github.com/heroku/heroku/issues/173 --- plugins/bundler/bundler.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh index e1f571237..2b80b76e6 100644 --- a/plugins/bundler/bundler.plugin.zsh +++ b/plugins/bundler/bundler.plugin.zsh @@ -6,7 +6,7 @@ alias bu="bundle update" # The following is based on https://github.com/gma/bundler-exec -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) +bundled_commands=(annotate cap capify cucumber ey foreman guard middleman nanoc rackup rainbows rails rake rspec ruby shotgun spec spork thin thor unicorn unicorn_rails) ## Functions From 3dd3c1f4158365b98e0754de9f0c1cbcb33d026c Mon Sep 17 00:00:00 2001 From: mapc Date: Tue, 29 May 2012 01:07:36 +0200 Subject: [PATCH 223/421] Add aliases for git-remote: gr... --- plugins/git/git.plugin.zsh | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index e1d682508..11808f8e0 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -18,6 +18,18 @@ compdef _git gca=git-commit alias gco='git checkout' compdef _git gco=git-checkout alias gcm='git checkout master' +alias gr='git remote' +compdef _git gr=git-remote +alias grv='git remote -v' +compdef _git grv=git-remote +alias grmv='git remote rename' +compdef _git grmv=git-remote +alias grrm='git remote remove' +compdef _git grrm=git-remote +alias grset='git remote set-url' +compdef _git grset=git-remote +alias grup='git remote update' +compdef _git grset=git-remote alias gb='git branch' compdef _git gb=git-branch alias gba='git branch -a' From 1876f1d5581e7b6907ead46a8371826db5eded49 Mon Sep 17 00:00:00 2001 From: mapc Date: Mon, 28 May 2012 23:14:51 +0200 Subject: [PATCH 224/421] Make the $apt_pref variable evaluatet at alias expansion by using single-quotes instad of double quotes --- plugins/debian/debian.plugin.zsh | 36 ++++++++++++++++---------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/plugins/debian/debian.plugin.zsh b/plugins/debian/debian.plugin.zsh index 16a5d54ca..5b6e5cfd4 100644 --- a/plugins/debian/debian.plugin.zsh +++ b/plugins/debian/debian.plugin.zsh @@ -40,20 +40,20 @@ alias ap='apt-cache policy' # superuser operations ###################################################### if [[ $use_sudo -eq 1 ]]; then # commands using sudo ####### - alias aac="sudo $apt_pref autoclean" - alias abd="sudo $apt_pref build-dep" - alias ac="sudo $apt_pref clean" - alias ad="sudo $apt_pref update" - alias adg="sudo $apt_pref update && sudo $apt_pref upgrade" - alias adu="sudo $apt_pref update && sudo $apt_pref dist-upgrade" + alias aac='sudo $apt_pref autoclean' + alias abd='sudo $apt_pref build-dep' + alias ac='sudo $apt_pref clean' + alias ad='sudo $apt_pref update' + alias adg='sudo $apt_pref update && sudo $apt_pref upgrade' + alias adu='sudo $apt_pref update && sudo $apt_pref dist-upgrade' alias afu='sudo apt-file update' - alias ag="sudo $apt_pref upgrade" - alias ai="sudo $apt_pref install" - alias ap="sudo $apt_pref purge" - alias ar="sudo $apt_pref remove" + alias ag='sudo $apt_pref upgrade' + alias ai='sudo $apt_pref install' + alias ap='sudo $apt_pref purge' + alias ar='sudo $apt_pref remove' # apt-get only - alias ads="sudo $apt_pref dselect-upgrade" + 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: @@ -67,18 +67,18 @@ if [[ $use_sudo -eq 1 ]]; then # commands using su ######### else - alias aac='su -ls "'"$apt_pref"' autoclean" root' + alias aac='su -ls \'$apt_pref autoclean\' root' abd() { cmd="su -lc '$apt_pref build-dep $@' root" print "$cmd" eval "$cmd" } - alias ac='su -ls "'"$apt_pref"' clean" root' - alias ad='su -lc "'"$apt_pref"' update" root' - alias adg='su -lc "'"$apt_pref"' update && aptitude safe-upgrade" root' - alias adu='su -lc "'"$apt_pref"' update && aptitude dist-upgrade" root' + alias ac='su -ls \'$apt_pref clean\' root' + alias ad='su -lc \'$apt_pref update\' root' + alias adg='su -lc \'$apt_pref update && aptitude safe-upgrade\' root' + alias adu='su -lc \'$apt_pref update && aptitude dist-upgrade\' root' alias afu='su -lc "apt-file update"' - alias ag='su -lc "'"$apt_pref"' safe-upgrade" root' + alias ag='su -lc \'$apt_pref safe-upgrade\' root' ai() { cmd="su -lc 'aptitude -P install $@' root" print "$cmd" @@ -118,7 +118,7 @@ alias mydeb='time dpkg-buildpackage -rfakeroot -us -uc' apt-copy() { print '#!/bin/sh'"\n" > apt-copy.sh - cmd="$apt_pref install " + cmd='$apt_pref install' for p in ${(f)"$(aptitude search -F "%p" --disable-columns \~i)"}; { cmd="${cmd} ${p}" From 0673425331fe997224bab9f90579c40cd14934f1 Mon Sep 17 00:00:00 2001 From: mapc Date: Mon, 28 May 2012 23:17:38 +0200 Subject: [PATCH 225/421] Add command to directly install the output of acs --- plugins/debian/debian.plugin.zsh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/debian/debian.plugin.zsh b/plugins/debian/debian.plugin.zsh index 5b6e5cfd4..39d3ef36a 100644 --- a/plugins/debian/debian.plugin.zsh +++ b/plugins/debian/debian.plugin.zsh @@ -49,6 +49,9 @@ if [[ $use_sudo -eq 1 ]]; then alias afu='sudo apt-file update' alias ag='sudo $apt_pref upgrade' alias ai='sudo $apt_pref install' + # Install all packages given on the command line while using only the first word of each line: + # acs ... | ail + alias ail="sed -e 's/ */ /g' -e 's/ *//' | cut -s -d ' ' -f 1 | "' xargs sudo $apt_pref install' alias ap='sudo $apt_pref purge' alias ar='sudo $apt_pref remove' From 91b4758d8f5a910a60de783f15acb66acda68d7f Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Thu, 31 May 2012 09:52:53 -0700 Subject: [PATCH 226/421] Now with 50% less auto-updates. --- tools/check_for_upgrade.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/check_for_upgrade.sh b/tools/check_for_upgrade.sh index 524aa509d..bbd705a1e 100644 --- a/tools/check_for_upgrade.sh +++ b/tools/check_for_upgrade.sh @@ -23,7 +23,7 @@ then fi epoch_diff=$(($(_current_epoch) - $LAST_EPOCH)) - if [ $epoch_diff -gt 6 ] + if [ $epoch_diff -gt 13 ] then if [ "$DISABLE_UPDATE_PROMPT" = "true" ] then From c4608ba281147af564fc0979b63bc8b23f1e55fb Mon Sep 17 00:00:00 2001 From: Tim Littlemore Date: Fri, 1 Jun 2012 15:26:22 +0100 Subject: [PATCH 227/421] Removing ey command from bundled_commands. It is not usually bundled. --- plugins/bundler/bundler.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh index 2b80b76e6..1ca48089e 100644 --- a/plugins/bundler/bundler.plugin.zsh +++ b/plugins/bundler/bundler.plugin.zsh @@ -6,7 +6,7 @@ alias bu="bundle update" # The following is based on https://github.com/gma/bundler-exec -bundled_commands=(annotate cap capify cucumber ey foreman guard middleman nanoc rackup rainbows rails rake rspec ruby shotgun spec spork thin thor unicorn unicorn_rails) +bundled_commands=(annotate cap capify cucumber foreman guard middleman nanoc rackup rainbows rails rake rspec ruby shotgun spec spork thin thor unicorn unicorn_rails) ## Functions From a04484e546e330a9cd2130ee160a53ec4580a844 Mon Sep 17 00:00:00 2001 From: Weston Platter Date: Fri, 1 Jun 2012 19:11:53 -0400 Subject: [PATCH 228/421] rails3, added rgm = 'rails generate migration' --- plugins/rails3/rails3.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/rails3/rails3.plugin.zsh b/plugins/rails3/rails3.plugin.zsh index d4c7df654..237d0594b 100644 --- a/plugins/rails3/rails3.plugin.zsh +++ b/plugins/rails3/rails3.plugin.zsh @@ -13,6 +13,7 @@ alias rd='_rails_command destroy' alias rdb='_rails_command dbconsole' alias rdbm='rake db:migrate db:test:clone' alias rg='_rails_command generate' +alias rgm='_rails_command generate migration' alias rp='_rails_command plugin' alias ru='_rails_command runner' alias rs='_rails_command server' From df30eae4121802f8ac800cb3e92c7d08356217a6 Mon Sep 17 00:00:00 2001 From: Erich Menge Date: Sun, 3 Jun 2012 12:44:14 -0500 Subject: [PATCH 229/421] Add a couple of options for git-flow. --- plugins/git-flow/git-flow.plugin.zsh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/git-flow/git-flow.plugin.zsh b/plugins/git-flow/git-flow.plugin.zsh index 270bcbe38..71b343884 100644 --- a/plugins/git-flow/git-flow.plugin.zsh +++ b/plugins/git-flow/git-flow.plugin.zsh @@ -110,6 +110,8 @@ __git-flow-release () -u'[Use the given GPG-key for the digital signature (implies -s)]'\ -m'[Use the given tag message]'\ -p'[Push to $ORIGIN after performing finish]'\ + -k'[Keep branch after performing finish]'\ + -n"[Don't tag this release]"\ ':version:__git_flow_version_list' ;; @@ -162,6 +164,8 @@ __git-flow-hotfix () -u'[Use the given GPG-key for the digital signature (implies -s)]'\ -m'[Use the given tag message]'\ -p'[Push to $ORIGIN after performing finish]'\ + -k'[Keep branch after performing finish]'\ + -n"[Don't tag this release]"\ ':hotfix:__git_flow_hotfix_list' ;; From 083cff4a577f8889db4ec201d2309b126a65e894 Mon Sep 17 00:00:00 2001 From: westonplatter Date: Fri, 8 Jun 2012 12:18:26 -0400 Subject: [PATCH 230/421] checking if airport allows git protocol --- README.textile | 1 + 1 file changed, 1 insertion(+) diff --git a/README.textile b/README.textile index bf6776665..875d02f86 100644 --- a/README.textile +++ b/README.textile @@ -1,5 +1,6 @@ A handful of functions, auto-complete helpers, and stuff that makes you shout... + bq. "OH MY ZSHELL!" h2. Setup From 61ceec528533bdc2865cf3d04a9214dda6f0f173 Mon Sep 17 00:00:00 2001 From: Jaiden Mispy <^_^@mispy.me> Date: Sat, 9 Jun 2012 11:04:58 +1000 Subject: [PATCH 231/421] Plugin which loads Python virtualenvwrapper and activates virtualenvs on cd into git repos --- .../virtualenvwrapper.plugin.zsh | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh diff --git a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh new file mode 100644 index 000000000..afdad1bea --- /dev/null +++ b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh @@ -0,0 +1,47 @@ +WRAPPER_FOUND=0 +for wrapsource in "/usr/local/bin/virtualenvwrapper.sh" "/etc/bash_completion.d/virtualenvwrapper" ; do + if [[ -e $wrapsource ]] ; then + WRAPPER_FOUND=1 + source $wrapsource + + if [[ ! $DISABLE_VENV_CD -eq 1 ]]; then + # Automatically activate Git projects' virtual environments based on the + # directory name of the project. Virtual environment name can be overridden + # by placing a .venv file in the project root with a virtualenv name in it + function workon_cwd { + # Check that this is a Git repo + GIT_DIR=`git rev-parse --git-dir 2> /dev/null` + if (( $? == 0 )); then + # Find the repo root and check for virtualenv name override + GIT_DIR=`readlink -f $GIT_DIR` + PROJECT_ROOT=`dirname "$GIT_DIR"` + ENV_NAME=`basename "$PROJECT_ROOT"` + if [[ -f "$PROJECT_ROOT/.venv" ]]; then + ENV_NAME=`cat "$PROJECT_ROOT/.venv"` + fi + # Activate the environment only if it is not already active + if [[ "$VIRTUAL_ENV" != "$WORKON_HOME/$ENV_NAME" ]]; then + if [[ -e "$WORKON_HOME/$ENV_NAME/bin/activate" ]]; then + workon "$ENV_NAME" && export CD_VIRTUAL_ENV="$ENV_NAME" + fi + fi + elif [ $CD_VIRTUAL_ENV ]; then + # We've just left the repo, deactivate the environment + # Note: this only happens if the virtualenv was activated automatically + deactivate && unset CD_VIRTUAL_ENV + fi + } + + # New cd function that does the virtualenv magic + function cd { + builtin cd "$@" && workon_cwd + } + fi + + break + fi +done + +if [ $WRAPPER_FOUND -eq 0 ] ; then + print "zsh virtualenvwrapper plugin: Couldn't activate virtualenvwrapper. Please run \`pip install virtualenvwrapper\`." +fi From 1bb715965c1dde1ed6f4456b462ae59e1b3769da Mon Sep 17 00:00:00 2001 From: s3 Date: Tue, 12 Jun 2012 10:18:02 +0200 Subject: [PATCH 232/421] Change hardcoded ~/.oh-my-zsh to $ZSH. --- lib/completion.zsh | 2 +- plugins/dirpersist/dirpersist.plugin.zsh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/completion.zsh b/lib/completion.zsh index b964595ed..f31e101d5 100644 --- a/lib/completion.zsh +++ b/lib/completion.zsh @@ -46,7 +46,7 @@ zstyle ':completion:*:hosts' hosts $hosts # Use caching so that commands like apt and dpkg complete are useable zstyle ':completion::complete:*' use-cache 1 -zstyle ':completion::complete:*' cache-path ~/.oh-my-zsh/cache/ +zstyle ':completion::complete:*' cache-path $ZSH/cache/ # Don't complete uninteresting users zstyle ':completion:*:*:*:users' ignored-patterns \ diff --git a/plugins/dirpersist/dirpersist.plugin.zsh b/plugins/dirpersist/dirpersist.plugin.zsh index 6a2b289a2..0f6d9f435 100644 --- a/plugins/dirpersist/dirpersist.plugin.zsh +++ b/plugins/dirpersist/dirpersist.plugin.zsh @@ -12,7 +12,7 @@ dirpersistinstall () { if grep 'dirpersiststore' ~/.zlogout > /dev/null; then else if read -q \?"Would you like to set up your .zlogout file for use with dirspersist? (y/n) "; then - echo "# Store dirs stack\n# See ~/.oh-my-zsh/plugins/dirspersist.plugin.zsh\ndirpersiststore" >> ~/.zlogout + echo "# Store dirs stack\n# See $ZSH/plugins/dirspersist.plugin.zsh\ndirpersiststore" >> ~/.zlogout else echo "If you don't want this message to appear, remove dirspersist from \$plugins" fi From 37bce2b51a528c6be5dc4605c81aab70c949a3a3 Mon Sep 17 00:00:00 2001 From: thackoun Date: Tue, 12 Jun 2012 15:48:00 +0300 Subject: [PATCH 233/421] fix a very minor bug with colors of parenthesis in the terminalparty theme --- themes/terminalparty.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/terminalparty.zsh-theme b/themes/terminalparty.zsh-theme index 73653aca8..216ce37eb 100644 --- a/themes/terminalparty.zsh-theme +++ b/themes/terminalparty.zsh-theme @@ -2,7 +2,7 @@ PROMPT='%{$fg[green]%} %% ' # RPS1='%{$fg[blue]%}%~%{$reset_color%} ' RPS1='%{$fg[white]%}%2~$(git_prompt_info) %{$fg_bold[blue]%}%m%{$reset_color%}' -ZSH_THEME_GIT_PROMPT_PREFIX=" (%{$fg[yellow]%}" +ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[yellow]%}(" ZSH_THEME_GIT_PROMPT_SUFFIX=")%{$reset_color%}" ZSH_THEME_GIT_PROMPT_CLEAN="" ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%} ⚡%{$fg[yellow]%}" From dee54a2477d2a5be5d6cced7497f539ecfc2e05f Mon Sep 17 00:00:00 2001 From: Kristi Date: Wed, 13 Jun 2012 12:57:15 -0700 Subject: [PATCH 234/421] Use grep to detect if untracked files exist instead of storing all the output of ls-files. --- themes/steeef.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/steeef.zsh-theme b/themes/steeef.zsh-theme index a2583b028..f22ce2719 100644 --- a/themes/steeef.zsh-theme +++ b/themes/steeef.zsh-theme @@ -81,7 +81,7 @@ add-zsh-hook chpwd steeef_chpwd function steeef_precmd { if [[ -n "$PR_GIT_UPDATE" ]] ; then # check for untracked files or updated submodules, since vcs_info doesn't - if [[ ! -z $(git ls-files --other --exclude-standard 2> /dev/null) ]]; then + if git ls-files --other --exclude-standard 2> /dev/null | grep -q "."; then PR_GIT_UPDATE=1 FMT_BRANCH="(%{$turquoise%}%b%u%c%{$hotpink%}●${PR_RST})" else From 4199c1a6f77f1605157b1cfa6baa47c14c68a6c9 Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Wed, 13 Jun 2012 13:14:23 -0700 Subject: [PATCH 235/421] Updating README to ask people to stop sending themes for now --- README.textile | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.textile b/README.textile index 875d02f86..a38e2d7cf 100644 --- a/README.textile +++ b/README.textile @@ -69,9 +69,13 @@ h2. Help out! I'm far from being a zsh-expert and suspect there are many ways to improve. If you have ideas on how to make the configuration easier to maintain (and faster), don't hesitate to fork and send pull requests! -h3. Send us your theme! +h3. (Don't) Send us your theme! (for now) + +-I'm hoping to collect a bunch of themes for our command prompts. You can see existing ones in the @themes/@ directory.- + +We have enough themes for the time being. Please fork the project and add on in there, you can let people know how to grab it from there. + -I'm hoping to collect a bunch of themes for our command prompts. You can see existing ones in the @themes/@ directory. h2. Contributors From 4d6b532248fce0e71d762eb1ec3ef2ec8fcd5289 Mon Sep 17 00:00:00 2001 From: Kristi Date: Wed, 13 Jun 2012 13:14:31 -0700 Subject: [PATCH 236/421] add --directory flag --- themes/steeef.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/steeef.zsh-theme b/themes/steeef.zsh-theme index f22ce2719..312229e9f 100644 --- a/themes/steeef.zsh-theme +++ b/themes/steeef.zsh-theme @@ -81,7 +81,7 @@ add-zsh-hook chpwd steeef_chpwd function steeef_precmd { if [[ -n "$PR_GIT_UPDATE" ]] ; then # check for untracked files or updated submodules, since vcs_info doesn't - if git ls-files --other --exclude-standard 2> /dev/null | grep -q "."; then + if git ls-files --other --exclude-standard --directory 2> /dev/null | grep -q "."; then PR_GIT_UPDATE=1 FMT_BRANCH="(%{$turquoise%}%b%u%c%{$hotpink%}●${PR_RST})" else From c65a53df811953b9f4117ff0b8014d869565bf9d Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Fri, 15 Jun 2012 10:07:22 +0300 Subject: [PATCH 237/421] Fixed unmached " in yum plugin --- plugins/yum/yum.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/yum/yum.plugin.zsh b/plugins/yum/yum.plugin.zsh index c9966f1b1..69abfc4ce 100644 --- a/plugins/yum/yum.plugin.zsh +++ b/plugins/yum/yum.plugin.zsh @@ -5,7 +5,7 @@ alias yp="yum info" # show package info alias yl="yum list" # list packages alias ygl="yum grouplist" # list package groups alias yli="yum list installed" # print all installed packages -alias ymc="yum makecache # rebuilds the yum package list +alias ymc="yum makecache" # rebuilds the yum package list alias yu="sudo yum update" # upgrate packages alias yi="sudo yum install" # install package From 823cc9180c21c0520713b39fe3e3590645c76ad2 Mon Sep 17 00:00:00 2001 From: Thomas Dippel Date: Sat, 16 Jun 2012 12:41:44 +0200 Subject: [PATCH 238/421] Explicitly tell rbenv to use zsh According to @graywh's comment on: https://github.com/sstephenson/rbenv/issues/185 --- plugins/rbenv/rbenv.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/rbenv/rbenv.plugin.zsh b/plugins/rbenv/rbenv.plugin.zsh index ae37404cd..4c4647b32 100644 --- a/plugins/rbenv/rbenv.plugin.zsh +++ b/plugins/rbenv/rbenv.plugin.zsh @@ -4,7 +4,7 @@ for rbenvdir in "$HOME/.rbenv" "/usr/local/rbenv" "/opt/rbenv" ; do FOUND_RBENV=1 export RBENV_ROOT=$rbenvdir export PATH=${rbenvdir}/bin:$PATH - eval "$(rbenv init -)" + eval "$(rbenv init - zsh)" alias rubies="rbenv versions" alias gemsets="rbenv gemset list" From 82f785bc6751dc7c199b5d1ea068567120b92511 Mon Sep 17 00:00:00 2001 From: James Walker Date: Mon, 18 Jun 2012 10:41:19 -0400 Subject: [PATCH 239/421] remove readlink call and clean up --- plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh index afdad1bea..a93c8e863 100644 --- a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh +++ b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh @@ -10,11 +10,9 @@ for wrapsource in "/usr/local/bin/virtualenvwrapper.sh" "/etc/bash_completion.d/ # by placing a .venv file in the project root with a virtualenv name in it function workon_cwd { # Check that this is a Git repo - GIT_DIR=`git rev-parse --git-dir 2> /dev/null` + PROJECT_ROOT=`git rev-parse --show-toplevel 2> /dev/null` if (( $? == 0 )); then - # Find the repo root and check for virtualenv name override - GIT_DIR=`readlink -f $GIT_DIR` - PROJECT_ROOT=`dirname "$GIT_DIR"` + # Check for virtualenv name override ENV_NAME=`basename "$PROJECT_ROOT"` if [[ -f "$PROJECT_ROOT/.venv" ]]; then ENV_NAME=`cat "$PROJECT_ROOT/.venv"` @@ -30,6 +28,7 @@ for wrapsource in "/usr/local/bin/virtualenvwrapper.sh" "/etc/bash_completion.d/ # Note: this only happens if the virtualenv was activated automatically deactivate && unset CD_VIRTUAL_ENV fi + unset PROJECT_ROOT } # New cd function that does the virtualenv magic From e9a9deacb09196a48a39adc827d861e1896f4c59 Mon Sep 17 00:00:00 2001 From: Tima Maslyuchenko Date: Mon, 18 Jun 2012 20:15:57 +0300 Subject: [PATCH 240/421] rbenv plugin now uses 'brew --prefix rbenv' command to find rbenv folder --- plugins/rbenv/rbenv.plugin.zsh | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/plugins/rbenv/rbenv.plugin.zsh b/plugins/rbenv/rbenv.plugin.zsh index ae37404cd..a0a64c7e4 100644 --- a/plugins/rbenv/rbenv.plugin.zsh +++ b/plugins/rbenv/rbenv.plugin.zsh @@ -1,5 +1,18 @@ +function is_homebrew_installed() { + type brew &> /dev/null +} + +function is_rbenv_installed() { + brew --prefix rbenv &> /dev/null +} + FOUND_RBENV=0 -for rbenvdir in "$HOME/.rbenv" "/usr/local/rbenv" "/opt/rbenv" ; do +rbenvdirs=("$HOME/.rbenv" "/usr/local/rbenv" "/opt/rbenv") +if is_homebrew_installed && is_rbenv_installed ; then + rbenvdirs=($(brew --prefix rbenv) "${rbenvdirs[@]}") +fi + +for rbenvdir in "${rbenvdirs[@]}" ; do if [ -d $rbenvdir/bin -a $FOUND_RBENV -eq 0 ] ; then FOUND_RBENV=1 export RBENV_ROOT=$rbenvdir From 5931f64308cbf4b0a8ef740a6b4eda5834479bd7 Mon Sep 17 00:00:00 2001 From: Tima Maslyuchenko Date: Mon, 18 Jun 2012 21:29:24 +0300 Subject: [PATCH 241/421] sanitized code according to coding style --- plugins/rbenv/rbenv.plugin.zsh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/rbenv/rbenv.plugin.zsh b/plugins/rbenv/rbenv.plugin.zsh index a0a64c7e4..a62dd5602 100644 --- a/plugins/rbenv/rbenv.plugin.zsh +++ b/plugins/rbenv/rbenv.plugin.zsh @@ -1,14 +1,14 @@ -function is_homebrew_installed() { +_homebrew-installed() { type brew &> /dev/null } -function is_rbenv_installed() { +_rbenv-from-homebrew-installed() { brew --prefix rbenv &> /dev/null } FOUND_RBENV=0 rbenvdirs=("$HOME/.rbenv" "/usr/local/rbenv" "/opt/rbenv") -if is_homebrew_installed && is_rbenv_installed ; then +if _homebrew-installed && _rbenv-from-homebrew-installed ; then rbenvdirs=($(brew --prefix rbenv) "${rbenvdirs[@]}") fi From b97cc939ec50cbd424beb4d9d5d61625b209ccac Mon Sep 17 00:00:00 2001 From: Andy Fleming Date: Wed, 20 Jun 2012 13:17:41 -0700 Subject: [PATCH 242/421] added first version of my theme af-magic --- themes/af-magic.zsh-theme | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 themes/af-magic.zsh-theme diff --git a/themes/af-magic.zsh-theme b/themes/af-magic.zsh-theme new file mode 100644 index 000000000..241393f1e --- /dev/null +++ b/themes/af-magic.zsh-theme @@ -0,0 +1,39 @@ +# af-magic.zsh-theme +# +# Author: Andy Fleming +# URL: http://andyfleming.com/ +# +# Created on: June 19, 2012 +# Last modified on: June 20, 2012 + + + +if [ $UID -eq 0 ]; then NCOLOR="red"; else NCOLOR="green"; fi +local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})" + + +PROMPT='$FG[237]------------------------------------------------------------%{$reset_color%} +$FG[032]%~\ +$(git_prompt_info) \ +$FG[105]%(!.#.»)%{$reset_color%} ' +PROMPT2='%{$fg[red]%}\ %{$reset_color%}' +RPS1='${return_code}' + + + +eval my_gray='$FG[237]' +eval my_orange='$FG[214]' +RPROMPT='$my_gray%n@%m%{$reset_color%}%' + + +ZSH_THEME_GIT_PROMPT_PREFIX="$FG[075](branch:" +ZSH_THEME_GIT_PROMPT_CLEAN="" +ZSH_THEME_GIT_PROMPT_DIRTY="$my_orange*%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="$FG[075])%{$reset_color%}" + + + +# LS colors, made with http://geoff.greer.fm/lscolors/ +#export LSCOLORS="exfxcxdxbxegedabagacad" +#export LS_COLORS='di=34;40:ln=35;40:so=32;40:pi=33;40:ex=31;40:bd=34;46:cd=34;43:su=0;41:sg=0;46:tw=0;42:ow=0;43:' + From 98d7a010994cd39758e4a1599cefe9e130a346db Mon Sep 17 00:00:00 2001 From: Andy Fleming Date: Wed, 20 Jun 2012 13:26:05 -0700 Subject: [PATCH 243/421] theme cleanup --- themes/af-magic.zsh-theme | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/themes/af-magic.zsh-theme b/themes/af-magic.zsh-theme index 241393f1e..c1b00c62b 100644 --- a/themes/af-magic.zsh-theme +++ b/themes/af-magic.zsh-theme @@ -2,6 +2,8 @@ # # Author: Andy Fleming # URL: http://andyfleming.com/ +# Repo: https://github.com/andyfleming/oh-my-zsh +# Direct Link: https://github.com/andyfleming/oh-my-zsh/blob/master/themes/af-magic.zsh-theme # # Created on: June 19, 2012 # Last modified on: June 20, 2012 @@ -11,7 +13,7 @@ if [ $UID -eq 0 ]; then NCOLOR="red"; else NCOLOR="green"; fi local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})" - +# primary prompt PROMPT='$FG[237]------------------------------------------------------------%{$reset_color%} $FG[032]%~\ $(git_prompt_info) \ @@ -20,20 +22,15 @@ PROMPT2='%{$fg[red]%}\ %{$reset_color%}' RPS1='${return_code}' - +# color vars eval my_gray='$FG[237]' eval my_orange='$FG[214]' + +# right prompt RPROMPT='$my_gray%n@%m%{$reset_color%}%' - +# git settings ZSH_THEME_GIT_PROMPT_PREFIX="$FG[075](branch:" ZSH_THEME_GIT_PROMPT_CLEAN="" ZSH_THEME_GIT_PROMPT_DIRTY="$my_orange*%{$reset_color%}" ZSH_THEME_GIT_PROMPT_SUFFIX="$FG[075])%{$reset_color%}" - - - -# LS colors, made with http://geoff.greer.fm/lscolors/ -#export LSCOLORS="exfxcxdxbxegedabagacad" -#export LS_COLORS='di=34;40:ln=35;40:so=32;40:pi=33;40:ex=31;40:bd=34;46:cd=34;43:su=0;41:sg=0;46:tw=0;42:ow=0;43:' - From 8088e8ac7935e9289d049278e117befd87f48809 Mon Sep 17 00:00:00 2001 From: Paul McKellar Date: Mon, 18 Jun 2012 01:01:05 -0700 Subject: [PATCH 244/421] add git remote branch autocomplete --- .../git-remote-branch.plugin.zsh | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 plugins/git-remote-branch/git-remote-branch.plugin.zsh diff --git a/plugins/git-remote-branch/git-remote-branch.plugin.zsh b/plugins/git-remote-branch/git-remote-branch.plugin.zsh new file mode 100644 index 000000000..ff98cbf87 --- /dev/null +++ b/plugins/git-remote-branch/git-remote-branch.plugin.zsh @@ -0,0 +1,18 @@ +_git_remote_branch() { + ref=$(git symbolic-ref HEAD 2> /dev/null) + if [[ -n $ref ]]; then + if (( CURRENT == 2 )); then + # first arg: operation + compadd create publish rename delete track + elif (( CURRENT == 3 )); then + # second arg: remote branch name + compadd `git branch -r | grep -v HEAD | sed "s/.*\///" | sed "s/ //g"` + elif (( CURRENT == 4 )); then + # third arg: remote name + compadd `git remote` + fi + else; + _files + fi +} +compdef _git_remote_branch grb From 7e1da28d27f42e4d873cdfc28ef362d59d8c2b07 Mon Sep 17 00:00:00 2001 From: jugyo Date: Thu, 21 Jun 2012 07:41:50 +0900 Subject: [PATCH 245/421] correct the ruby version label for rbenv --- themes/nebirhos.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/nebirhos.zsh-theme b/themes/nebirhos.zsh-theme index c5864d9b8..a5a226b69 100644 --- a/themes/nebirhos.zsh-theme +++ b/themes/nebirhos.zsh-theme @@ -6,7 +6,7 @@ if [ -e ~/.rvm/bin/rvm-prompt ]; then RUBY_PROMPT_="%{$fg_bold[blue]%}rvm:(%{$fg[green]%}\$(~/.rvm/bin/rvm-prompt s i v g)%{$fg_bold[blue]%})%{$reset_color%} " else if which rbenv &> /dev/null; then - RUBY_PROMPT_="%{$fg_bold[blue]%}rvm:(%{$fg[green]%}\$(rbenv version | sed -e 's/ (set.*$//')%{$fg_bold[blue]%})%{$reset_color%} " + RUBY_PROMPT_="%{$fg_bold[blue]%}rbenv:(%{$fg[green]%}\$(rbenv version | sed -e 's/ (set.*$//')%{$fg_bold[blue]%})%{$reset_color%} " fi fi From 8ba97c36443d8551a28de194a3da4b7c4d6c7949 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Fri, 22 Jun 2012 15:30:51 +0300 Subject: [PATCH 246/421] Added history plugin --- plugins/history/history.plugin.zsh | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 plugins/history/history.plugin.zsh diff --git a/plugins/history/history.plugin.zsh b/plugins/history/history.plugin.zsh new file mode 100644 index 000000000..0f4aa4b10 --- /dev/null +++ b/plugins/history/history.plugin.zsh @@ -0,0 +1,8 @@ +alias h='history' + +function hs +{ + history | grep $* +} + +alias hsi='hs -i' From 62a436bb95144b00f0ef8ba8906a4044b4be4d9c Mon Sep 17 00:00:00 2001 From: Peter Mounce Date: Fri, 22 Jun 2012 17:12:44 +0100 Subject: [PATCH 247/421] Fix mismatched quote in yum plugin --- plugins/yum/yum.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/yum/yum.plugin.zsh b/plugins/yum/yum.plugin.zsh index c9966f1b1..69abfc4ce 100644 --- a/plugins/yum/yum.plugin.zsh +++ b/plugins/yum/yum.plugin.zsh @@ -5,7 +5,7 @@ alias yp="yum info" # show package info alias yl="yum list" # list packages alias ygl="yum grouplist" # list package groups alias yli="yum list installed" # print all installed packages -alias ymc="yum makecache # rebuilds the yum package list +alias ymc="yum makecache" # rebuilds the yum package list alias yu="sudo yum update" # upgrate packages alias yi="sudo yum install" # install package From 3aa0cb74d0a19a8053889a976404a7915585466e Mon Sep 17 00:00:00 2001 From: Volker Pacher Date: Fri, 22 Jun 2012 18:27:21 +0100 Subject: [PATCH 248/421] added plugin for jruby --- plugins/jruby/jruby.plugin.zsh | 3 +++ 1 file changed, 3 insertions(+) create mode 100755 plugins/jruby/jruby.plugin.zsh diff --git a/plugins/jruby/jruby.plugin.zsh b/plugins/jruby/jruby.plugin.zsh new file mode 100755 index 000000000..58781fc72 --- /dev/null +++ b/plugins/jruby/jruby.plugin.zsh @@ -0,0 +1,3 @@ +# Aliases +alias jrspec='jruby --debug -S rspec --debug' +alias jprofile='jruby --profile.api -S rspec' From 5c37c85fb49a377b59115efc2aa132665982ac06 Mon Sep 17 00:00:00 2001 From: Volker Pacher Date: Fri, 22 Jun 2012 18:33:11 +0100 Subject: [PATCH 249/421] added jexec --- plugins/jruby/jruby.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/jruby/jruby.plugin.zsh b/plugins/jruby/jruby.plugin.zsh index 58781fc72..bb7975b10 100755 --- a/plugins/jruby/jruby.plugin.zsh +++ b/plugins/jruby/jruby.plugin.zsh @@ -1,3 +1,4 @@ # Aliases alias jrspec='jruby --debug -S rspec --debug' alias jprofile='jruby --profile.api -S rspec' +alias jexec='jruby -S' From 5e9a16b88a5cffe015101f992e29fa0d50027f5d Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Fri, 22 Jun 2012 20:25:44 +0300 Subject: [PATCH 250/421] Added themes plugin --- plugins/themes/themes.plugin.zsh | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 plugins/themes/themes.plugin.zsh diff --git a/plugins/themes/themes.plugin.zsh b/plugins/themes/themes.plugin.zsh new file mode 100644 index 000000000..8bab257ea --- /dev/null +++ b/plugins/themes/themes.plugin.zsh @@ -0,0 +1,24 @@ +function theme +{ + if [ "$1" = "random" ]; then + themes=($ZSH/themes/*zsh-theme) + N=${#themes[@]} + ((N=(RANDOM%N)+1)) + RANDOM_THEME=${themes[$N]} + source "$RANDOM_THEME" + echo "[oh-my-zsh] Random theme '$RANDOM_THEME' loaded..." + else + if [ -f "$ZSH_CUSTOM/$1.zsh-theme" ] + then + source "$ZSH_CUSTOM/$1.zsh-theme" + else + source "$ZSH/themes/$1.zsh-theme" + fi + fi +} + +function lstheme +{ + cd $ZSH/themes + ls *zsh-theme | sed 's,\.zsh-theme$,,' +} From f7b1615b7cd6cd2088050a29f43650098eaba514 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Fri, 22 Jun 2012 20:42:59 +0300 Subject: [PATCH 251/421] Added completion to the theme selection plugin --- plugins/themes/_theme | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 plugins/themes/_theme diff --git a/plugins/themes/_theme b/plugins/themes/_theme new file mode 100644 index 000000000..8214ddb0d --- /dev/null +++ b/plugins/themes/_theme @@ -0,0 +1,3 @@ +#compdef theme + +_arguments "1: :($(lstheme | tr "\n" " "))" From a39c9ffe5b7236b6e4dc78efa80b478cc411af7f Mon Sep 17 00:00:00 2001 From: Renan Cakirerk Date: Sat, 23 Jun 2012 14:53:40 +0300 Subject: [PATCH 252/421] Fix finding git issue. http://stackoverflow.com/questions/592620/check-if-a-program-exists-from-a-bash-script --- tools/install.sh | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/tools/install.sh b/tools/install.sh index 8ca427d2c..b080be3a1 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -5,13 +5,10 @@ then fi echo "\033[0;34mCloning Oh My Zsh...\033[0m" -which git > /dev/null -if [[ $? -eq 0 ]]; then - /usr/bin/env git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh -else +hash git >/dev/null && /usr/bin/env git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh || { echo "git not installed" exit -fi +} echo "\033[0;34mLooking for an existing zsh config...\033[0m" if [ -f ~/.zshrc ] || [ -h ~/.zshrc ] From d15ec4bf248cf091fb31dd10da066c040abcd744 Mon Sep 17 00:00:00 2001 From: David Barragan Date: Mon, 25 Jun 2012 10:55:23 +0200 Subject: [PATCH 253/421] Added another path --- plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh index a93c8e863..5d0860400 100644 --- a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh +++ b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh @@ -1,5 +1,5 @@ WRAPPER_FOUND=0 -for wrapsource in "/usr/local/bin/virtualenvwrapper.sh" "/etc/bash_completion.d/virtualenvwrapper" ; do +for wrapsource in "/usr/bin/virtualenvwrapper.sh" "/usr/local/bin/virtualenvwrapper.sh" "/etc/bash_completion.d/virtualenvwrapper" ; do if [[ -e $wrapsource ]] ; then WRAPPER_FOUND=1 source $wrapsource From e2ddf1ef8c1147586a11c25007b201e9cbcfe278 Mon Sep 17 00:00:00 2001 From: Eustachy Kapusta Date: Sun, 1 Jul 2012 19:57:32 +0200 Subject: [PATCH 254/421] Remove bogus "-" from nomz="ps -aux" alias. Info from http://procps.sourceforge.net/faq.html . --- plugins/lol/lol.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/lol/lol.plugin.zsh b/plugins/lol/lol.plugin.zsh index e455527e7..697f98d66 100644 --- a/plugins/lol/lol.plugin.zsh +++ b/plugins/lol/lol.plugin.zsh @@ -29,7 +29,7 @@ alias iminurbase='finger' alias btw='nice' alias obtw='nohup' -alias nomz='ps -aux' +alias nomz='ps aux' alias nomnom='killall' alias byes='exit' From e3ff4b58c6b0012c616ea7a1dc44cde7a2ecfb57 Mon Sep 17 00:00:00 2001 From: lukas Date: Tue, 3 Jul 2012 09:59:42 +0200 Subject: [PATCH 255/421] provide plugin for rbfu the ruby version switcher Evaluates $(rbfu --init --auto) if rbfu is installed on the system, also has a custom rbfu-rubies method which lists the installed rubies which are available to rbfu. For compatibility with themes, also creates the rvm_prompt_info function, so existing themes should work out of the box. --- plugins/rbfu/rbfu.plugin.zsh | 42 ++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 plugins/rbfu/rbfu.plugin.zsh diff --git a/plugins/rbfu/rbfu.plugin.zsh b/plugins/rbfu/rbfu.plugin.zsh new file mode 100644 index 000000000..008485205 --- /dev/null +++ b/plugins/rbfu/rbfu.plugin.zsh @@ -0,0 +1,42 @@ +# Enables rbfu with --auto option, if available. +# +# Also provides a command to list all installed/available +# rubies. To ensure compatibility with themes, creates the +# rvm_prompt_info function to return the $RBFU_RUBY_VERSION +# version. + +command -v rbfu &>/dev/null + +if [[ $? -eq 0 ]]; then + eval "$(rbfu --init --auto)" + + # Internal: Print ruby version details, if it's currently + # active etc. + function _rbfu_rubies_print() { + local rb rb_out + rb=$(basename $1) + rb_out="$rb" + [[ -h $1 ]] && rb_out="$rb_out${fg[green]}@${reset_color}" + [[ "x$rb" == "x$2" ]] && rb_out="${fg[red]}$rb_out ${fg[red]}*${reset_color}" + echo $rb_out + } + + # Public: Provide a list with all available rubies, this basically depends + # on `ls -1` and .rfbu/rubies. Highlights the currently active ruby version + # and aliases. + function rbfu-rubies() { + local rbfu_dir active_rb + rbfu_dir=$RBFU_RUBIES + active_rb=$RBFU_RUBY_VERSION + [[ -z "$rbfu_dir" ]] && rbfu_dir="${HOME}/.rbfu/rubies" + [[ -z "$active_rb" ]] && active_rb="system" + _rbfu_rubies_print "${rbfu_dir}/system" $active_rb + for rb in $(ls -1 $rbfu_dir); do + _rbfu_rubies_print "${rbfu_dir}/${rb}" $active_rb + done + } + + # Public: Create rvm_prompt_info command for themes compatibility, unless + # it has already been defined. + [ ! -x rvm_prompt_info ] && function rvm_prompt_info() { echo "${RBFU_RUBY_VERSION:=system}" } +fi From 92b6cae02638f644e6359e3f553805e2c3eba957 Mon Sep 17 00:00:00 2001 From: Josh Vermaire Date: Sun, 8 Jul 2012 23:34:27 -0700 Subject: [PATCH 256/421] escape whitespace --- plugins/sublime/sublime.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/sublime/sublime.plugin.zsh b/plugins/sublime/sublime.plugin.zsh index 0035b1b26..781c8f83f 100755 --- a/plugins/sublime/sublime.plugin.zsh +++ b/plugins/sublime/sublime.plugin.zsh @@ -4,6 +4,6 @@ if [[ $('uname') == 'Linux' ]]; then alias st='/usr/bin/sublime_text&' elif [[ $('uname') == 'Darwin' ]]; then - alias st='open -a /Applications/Sublime Text 2.app' + alias st='open -a /Applications/Sublime\ Text\ 2.app' fi alias stt='st .' From a15bcd6461b5b8237844c4e2968df0518dab5e9a Mon Sep 17 00:00:00 2001 From: Josh Vermaire Date: Mon, 9 Jul 2012 00:11:07 -0700 Subject: [PATCH 257/421] utilize sublime's embedded command line binary --- plugins/sublime/sublime.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/sublime/sublime.plugin.zsh b/plugins/sublime/sublime.plugin.zsh index 781c8f83f..91b0279c5 100755 --- a/plugins/sublime/sublime.plugin.zsh +++ b/plugins/sublime/sublime.plugin.zsh @@ -4,6 +4,6 @@ if [[ $('uname') == 'Linux' ]]; then alias st='/usr/bin/sublime_text&' elif [[ $('uname') == 'Darwin' ]]; then - alias st='open -a /Applications/Sublime\ Text\ 2.app' + alias st='/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl' fi alias stt='st .' From 87ab8771dac655272895e5904fcf93217ea4a64b Mon Sep 17 00:00:00 2001 From: Sebastian Nowak Date: Sun, 15 Jul 2012 21:26:30 +0200 Subject: [PATCH 258/421] 'rails' command should not be run with bundle exec http://blog.wyeworks.com/2011/12/27/bundle-exec-rails-executes-bundler-setup-3-times http://yehudakatz.com/2011/05/30/gem-versioning-and-bundler-doing-it-right/ --- plugins/bundler/bundler.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh index 1ca48089e..39b76ecdf 100644 --- a/plugins/bundler/bundler.plugin.zsh +++ b/plugins/bundler/bundler.plugin.zsh @@ -6,7 +6,7 @@ alias bu="bundle update" # The following is based on https://github.com/gma/bundler-exec -bundled_commands=(annotate cap capify cucumber foreman guard middleman nanoc rackup rainbows rails rake rspec ruby shotgun spec spork thin thor unicorn unicorn_rails) +bundled_commands=(annotate cap capify cucumber foreman guard middleman nanoc rackup rainbows rake rspec ruby shotgun spec spork thin thor unicorn unicorn_rails) ## Functions From 6a2e04fefbd794f050d45e7a717d009e39204431 Mon Sep 17 00:00:00 2001 From: clutton Date: Mon, 16 Jul 2012 02:59:30 +0300 Subject: [PATCH 259/421] =?UTF-8?q?modify=20themes/jnrowe.zsh-theme,=20add?= =?UTF-8?q?=20host=20directive=20"=CE=9E=20(mbsd)=20~=20=E2=86=92"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- themes/jnrowe.zsh-theme | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/themes/jnrowe.zsh-theme b/themes/jnrowe.zsh-theme index 7c8a7082e..0ade9cc60 100644 --- a/themes/jnrowe.zsh-theme +++ b/themes/jnrowe.zsh-theme @@ -1,3 +1,4 @@ +autoload -U colors && colors autoload -U add-zsh-hook autoload -Uz vcs_info @@ -8,9 +9,10 @@ zstyle ':vcs_info:*' formats \ zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{3}%r' zstyle ':vcs_info:*' enable git -add-zsh-hook precmd prompt_jnrowe_precmd +add-zsh-hook precmd prompt_vcs +add-zsh-hook precmd prompt_host -prompt_jnrowe_precmd () { +prompt_vcs () { vcs_info if [ "${vcs_info_msg_0_}" = "" ]; then @@ -24,8 +26,17 @@ prompt_jnrowe_precmd () { fi } +prompt_host () { + if [[ -n "$SSH_CLIENT" ]]; then + host=" ($HOST)" + else + host='' + fi +} + + local ret_status="%(?:%{$fg_bold[green]%}Ξ:%{$fg_bold[red]%}%S↑%s%?)" -PROMPT='${ret_status}%{$fg_bold[green]%}%p %{$fg_bold[yellow]%}%2~ ${vcs_info_msg_0_}${dir_status}%{$reset_color%} ' +PROMPT='${ret_status}%{$fg[blue]%}${host}%{$fg_bold[green]%}%p %{$fg_bold[yellow]%}%2~ ${vcs_info_msg_0_}${dir_status}%{$reset_color%} ' # vim: set ft=zsh ts=4 sw=4 et: From bb34abd5186c0d87126b13af8643614d0aa50367 Mon Sep 17 00:00:00 2001 From: Mugen Kenichi Date: Wed, 18 Jul 2012 12:07:16 +0200 Subject: [PATCH 260/421] check for knife.rb in cwd this is useful when managing multiple chef servers --- plugins/knife/_knife | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/knife/_knife b/plugins/knife/_knife index 8453af5be..dec491257 100644 --- a/plugins/knife/_knife +++ b/plugins/knife/_knife @@ -170,7 +170,11 @@ _chef_environments_remote() { # The chef_x_local functions use the knife config to find the paths of relevant objects x to be uploaded to the server _chef_cookbooks_local() { - (for i in $( grep cookbook_path $HOME/.chef/knife.rb | awk 'BEGIN {FS = "[" }; {print $2}' | sed 's/\,//g' | sed "s/'//g" | sed 's/\(.*\)]/\1/' ); do ls $i; done) + local knife_rb="$HOME/.chef/knife.rb" + if [ -f ./.chef/knife.rb ]; then + knife_rb="./.chef/knife.rb" + fi + (for i in $( grep cookbook_path $knife_rb | awk 'BEGIN {FS = "[" }; {print $2}' | sed 's/\,//g' | sed "s/'//g" | sed 's/\(.*\)]/\1/' ); do ls $i; done) } # This function extracts the available cookbook versions on the chef server From 3fe1e5c78760b81335eef501ef7f89875ae7753a Mon Sep 17 00:00:00 2001 From: Henry Yan Date: Wed, 18 Jul 2012 23:37:21 +0800 Subject: [PATCH 261/421] add maven zsh autocomplete plugin, copy from juvenxu's bash maven autocomplete plugin --- plugins/mvn/mvn.plugin.zsh | 117 +++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 plugins/mvn/mvn.plugin.zsh diff --git a/plugins/mvn/mvn.plugin.zsh b/plugins/mvn/mvn.plugin.zsh new file mode 100644 index 000000000..7131893c9 --- /dev/null +++ b/plugins/mvn/mvn.plugin.zsh @@ -0,0 +1,117 @@ +function listMavenCompletions { + reply=( + # common lifecycle + clean process-resources compile process-test-resources test-compile test package verify install deploy site + + # common plugins + deploy failsafe install site surefire checkstyle javadoc jxr pmd ant antrun archetype assembly dependency enforcer gpg help release repository source eclipse idea jetty cargo jboss tomcat tomcat6 tomcat7 exec versions war ear ejb android scm buildnumber nexus repository sonar license hibernate3 liquibase flyway gwt + + # deploy + deploy:deploy-file + # failsafe + failsafe:integration-test failsafe:verify + # install + install:install-file + # site + site:site site:deploy site:run site:stage site:stage-deploy + # surefire + surefire:test + + # checkstyle + checkstyle:checkstyle checkstyle:check + # javadoc + javadoc:javadoc javadoc:jar javadoc:aggregate + # jxr + jxr:jxr + # pmd + pmd:pmd pmd:cpd pmd:check pmd:cpd-check + + # ant + ant:ant ant:clean + # antrun + antrun:run + # archetype + archetype:generate archetype:create-from-project archetype:crawl + # assembly + assembly:single assembly:assembly + # dependency + dependency:analyze dependency:analyze-dep-mgt dependency:analyze-only dependency:analyze-report dependency:build-classpath dependency:copy dependency:copy-dependencies dependency:get dependency:go-offline dependency:list dependency:purge-local-repository dependency:resolve dependency:resolve-plugins dependency:sources dependency:tree dependency:unpack dependency:unpack-dependencies + # enforcer + enforcer:enforce + # gpg + gpg:sign gpg:sign-and-deploy-file + # help + help:active-profiles help:all-profiles help:describe help:effective-pom help:effective-settings help:evaluate help:expressions help:system + # release + release:clean release:prepare release:rollback release:perform release:stage release:branch release:update-versions + # repository + repository:bundle-create repository:bundle-pack + # source + source:aggregate source:jar source:jar-no-fork + + # eclipse + eclipse:clean eclipse:eclipse + # idea + idea:clean idea:idea + + # jetty + jetty:run jetty:run-exploded + # cargo + cargo:start cargo:run cargo:stop cargo:deploy cargo:undeploy cargo:help + # jboss + jboss:start jboss:stop jboss:deploy jboss:undeploy jboss:redeploy + # tomcat + tomcat:start tomcat:stop tomcat:deploy tomcat:undeploy tomcat:undeploy + # tomcat6 + tomcat6:run tomcat6:run-war tomcat6:run-war-only tomcat6:stop tomcat6:deploy tomcat6:undeploy + # tomcat7 + tomcat7:run tomcat7:run-war tomcat7:run-war-only tomcat7:deploy + # exec + exec:exec exec:java + # versions + versions:display-dependency-updates versions:display-plugin-updates versions:display-property-updates versions:update-parent versions:update-properties versions:update-child-modules versions:lock-snapshots versions:unlock-snapshots versions:resolve-ranges versions:set versions:use-releases versions:use-next-releases versions:use-latest-releases versions:use-next-snapshots versions:use-latest-snapshots versions:use-next-versions versions:use-latest-versions versions:commit versions:revert + # scm + scm:add scm:checkin scm:checkout scm:update scm:status + # buildnumber + buildnumber:create buildnumber:create-timestamp buildnumber:help buildnumber:hgchangeset + + # war + war:war war:exploded war:inplace war:manifest + # ear + ear:ear ear:generate-application-xml + # ejb + ejb:ejb + # android + android:apk android:apklib android:deploy android:deploy-dependencies android:dex android:emulator-start android:emulator-stop android:emulator-stop-all android:generate-sources android:help android:instrument android:manifest-update android:pull android:push android:redeploy android:run android:undeploy android:unpack android:version-update android:zipalign android:devices + # nexus + nexus:staging-list nexus:staging-close nexus:staging-drop nexus:staging-release nexus:staging-build-promotion nexus:staging-profiles-list nexus:settings-download + # repository + repository:bundle-create repository:bundle-pack repository:help + + # sonar + sonar:sonar + # license + license:format license:check + # hibernate3 + hibernate3:hbm2ddl hibernate3:help + # liquibase + liquibase:changelogSync liquibase:changelogSyncSQL liquibase:clearCheckSums liquibase:dbDoc liquibase:diff liquibase:dropAll liquibase:help liquibase:migrate liquibase:listLocks liquibase:migrateSQL liquibase:releaseLocks liquibase:rollback liquibase:rollbackSQL liquibase:status liquibase:tag liquibase:update liquibase:updateSQL liquibase:updateTestingRollback + # flyway + flyway:clean flyway:history flyway:init flyway:migrate flyway:status flyway:validate + # gwt + gwt:browser gwt:clean gwt:compile gwt:compile-report gwt:css gwt:debug gwt:eclipse gwt:eclipseTest gwt:generateAsync gwt:help gwt:i18n gwt:mergewebxml gwt:resources gwt:run gwt:sdkInstall gwt:source-jar gwt:soyc gwt:test + + # options + -Dmaven.test.skip=true -DskipTests -Dmaven.surefire.debug -DenableCiProfile -Dpmd.skip=true -Dcheckstyle.skip=true -Dtycho.mode=maven + + # arguments + -am -amd -B -C -c -cpu -D -e -emp -ep -f -fae -ff -fn -gs -h -l -N -npr -npu -nsu -o -P -pl -q -rf -s -T -t -U -up -V -v -X + + cli:execute cli:execute-phase + archetype:generate generate-sources + cobertura:cobertura + -Dtest= `if [ -d ./src ] ; then find ./src/test/java -type f -name '*.java' | grep -v svn | sed 's?.*/\([^/]*\)\..*?-Dtest=\1?' ; fi` + ); +} + +compctl -K listMavenCompletions mvn From 98ecfa4c7769226432075edec8f2f3de275a81ff Mon Sep 17 00:00:00 2001 From: Andrew Vit Date: Sun, 6 Nov 2011 04:24:33 -0800 Subject: [PATCH 262/421] Bwana plugin for reading man pages in Safari --- plugins/bwana/bwana.plugin.zsh | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 plugins/bwana/bwana.plugin.zsh diff --git a/plugins/bwana/bwana.plugin.zsh b/plugins/bwana/bwana.plugin.zsh new file mode 100644 index 000000000..455da8621 --- /dev/null +++ b/plugins/bwana/bwana.plugin.zsh @@ -0,0 +1,13 @@ +# +# Requires http://www.bruji.com/bwana/ +# +if [[ -e /Applications/Bwana.app ]] || + ( system_profiler -detailLevel mini SPApplicationsDataType | grep -q Bwana ) +then + function man() { + open "man:$1" + } +else + echo "Bwana lets you read man files in Safari through a man: URI scheme" + echo "To use it within Zsh, install it from http://www.bruji.com/bwana/" +fi From 0b757825a2c23af6fcf17f540cbfacd390321fa8 Mon Sep 17 00:00:00 2001 From: Alexis GRIMALDI Date: Thu, 19 Jul 2012 12:50:53 +0200 Subject: [PATCH 263/421] Added git-extras completion --- plugins/git-extras/git-extras.plugin.zsh | 265 +++++++++++++++++++++++ 1 file changed, 265 insertions(+) create mode 100644 plugins/git-extras/git-extras.plugin.zsh diff --git a/plugins/git-extras/git-extras.plugin.zsh b/plugins/git-extras/git-extras.plugin.zsh new file mode 100644 index 000000000..6adad124e --- /dev/null +++ b/plugins/git-extras/git-extras.plugin.zsh @@ -0,0 +1,265 @@ +#compdef git + + +__git_command_successful () { + if (( ${#pipestatus:#0} > 0 )); then + _message 'not a git repository' + return 1 + fi + return 0 +} + + +__git_tag_names() { + local expl + declare -a tag_names + tag_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/tags 2>/dev/null)"}#refs/tags/}) + __git_command_successful || return + _wanted tag-names expl tag-name compadd $* - $tag_names +} + + +__git_branch_names() { + local expl + declare -a branch_names + branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads 2>/dev/null)"}#refs/heads/}) + __git_command_successful || return + _wanted branch-names expl branch-name compadd $* - $branch_names +} + + +__git_feature_branch_names() { + local expl + declare -a branch_names + branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads/feature 2>/dev/null)"}#refs/heads/feature/}) + __git_command_successful || return + _wanted branch-names expl branch-name compadd $* - $branch_names +} + + +__git_refactor_branch_names() { + local expl + declare -a branch_names + branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads/refactor 2>/dev/null)"}#refs/heads/refactor/}) + __git_command_successful || return + _wanted branch-names expl branch-name compadd $* - $branch_names +} + + +__git_bug_branch_names() { + local expl + declare -a branch_names + branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads/bug 2>/dev/null)"}#refs/heads/bug/}) + __git_command_successful || return + _wanted branch-names expl branch-name compadd $* - $branch_names +} + + +__git_submodule_names() { + local expl + declare -a submodule_names + submodule_names=(${(f)"$(_call_program branchrefs git submodule status | awk '{print $2}')"}) + __git_command_successful || return + _wanted submodule-names expl submodule-name compadd $* - $submodule_names +} + + +__git_author_names() { + local expl + declare -a author_names + author_names=(${(f)"$(_call_program branchrefs git log --format='%aN' | sort -u)"}) + __git_command_successful || return + _wanted author-names expl author-name compadd $* - $author_names +} + + +_git-changelog() { + _arguments \ + '(-l --list)'{-l, --list}'[list commits]' \ +} + + +_git-effort() { + _arguments \ + '--above[ignore file with less than x commits]' \ +} + + +_git-contrib() { + _arguments \ + ':author:__git_author_names' +} + + +_git-count() { + _arguments \ + '--all[detailed commit count]' +} + + +_git-delete-branch() { + _arguments \ + ':branch-name:__git_branch_names' +} + + +_git-delete-submodule() { + _arguments \ + ':submodule-name:__git_submodule_names' +} + + +_git-delete-tag() { + _arguments \ + ':tag-name:__git_tag_names' +} + + +_git-extras() { + local curcontext=$curcontext state line ret=1 + declare -A opt_args + + _arguments -C \ + ': :->command' \ + '*:: :->option-or-argument' && ret=0 + + case $state in + (command) + declare -a commands + commands=( + 'update:update git-extras' + ) + _describe -t commands command commands && ret=0 + ;; + esac + + _arguments \ + '(-v --version)'{-v,--version}'[show current version]' \ +} + + +_git-graft() { + _arguments \ + ':src-branch-name:__git_branch_names' \ + ':dest-branch-name:__git_branch_names' +} + + +_git-squash() { + _arguments \ + ':branch-name:__git_branch_names' +} + + +_git-feature() { + local curcontext=$curcontext state line ret=1 + declare -A opt_args + + _arguments -C \ + ': :->command' \ + '*:: :->option-or-argument' && ret=0 + + case $state in + (command) + declare -a commands + commands=( + 'finish:merge feature into the current branch' + ) + _describe -t commands command commands && ret=0 + ;; + (option-or-argument) + curcontext=${curcontext%:*}-$line[1]: + case $line[1] in + (finish) + _arguments -C \ + ':branch-name:__git_feature_branch_names' + ;; + esac + esac +} + + +_git-refactor() { + local curcontext=$curcontext state line ret=1 + declare -A opt_args + + _arguments -C \ + ': :->command' \ + '*:: :->option-or-argument' && ret=0 + + case $state in + (command) + declare -a commands + commands=( + 'finish:merge refactor into the current branch' + ) + _describe -t commands command commands && ret=0 + ;; + (option-or-argument) + curcontext=${curcontext%:*}-$line[1]: + case $line[1] in + (finish) + _arguments -C \ + ':branch-name:__git_refactor_branch_names' + ;; + esac + esac +} + + +_git-bug() { + local curcontext=$curcontext state line ret=1 + declare -A opt_args + + _arguments -C \ + ': :->command' \ + '*:: :->option-or-argument' && ret=0 + + case $state in + (command) + declare -a commands + commands=( + 'finish:merge bug into the current branch' + ) + _describe -t commands command commands && ret=0 + ;; + (option-or-argument) + curcontext=${curcontext%:*}-$line[1]: + case $line[1] in + (finish) + _arguments -C \ + ':branch-name:__git_bug_branch_names' + ;; + esac + esac +} + + +zstyle ':completion:*:*:git:*' user-commands \ + changelog:'populate changelog file with commits since the previous tag' \ + contrib:'display author contributions' \ + count:'count commits' \ + delete-branch:'delete local and remote branch' \ + delete-submodule:'delete submodule' \ + delete-tag:'delete local and remote tag' \ + extras:'git-extras' \ + graft:'merge commits from source branch to destination branch' \ + squash:'merge commits from source branch into the current one as a single commit' \ + feature:'create a feature branch' \ + refactor:'create a refactor branch' \ + bug:'create a bug branch' \ + summary:'repository summary' \ + effort:'display effort statistics' \ + repl:'read-eval-print-loop' \ + commits-since:'list commits since a given date' \ + release:'release commit with the given tag' \ + alias:'define, search and show aliases' \ + ignore:'add patterns to .gitignore' \ + info:'show info about the repository' \ + create-branch:'create local and remote branch' \ + fresh-branch:'create empty local branch' \ + undo:'remove the latest commit' \ + setup:'setup a git repository' \ + touch:'one step creation of new files' \ + obliterate:'Completely remove a file from the repository, including past commits and tags' \ + local-commits:'list unpushed commits on the local branch' \ From 46b88b6a5a48f555c89a02d30e039758f4e3bfe7 Mon Sep 17 00:00:00 2001 From: Alexis GRIMALDI Date: Thu, 19 Jul 2012 13:01:32 +0200 Subject: [PATCH 264/421] Added credits --- plugins/git-extras/git-extras.plugin.zsh | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/plugins/git-extras/git-extras.plugin.zsh b/plugins/git-extras/git-extras.plugin.zsh index 6adad124e..0d7c2db7d 100644 --- a/plugins/git-extras/git-extras.plugin.zsh +++ b/plugins/git-extras/git-extras.plugin.zsh @@ -1,4 +1,24 @@ #compdef git +# ------------------------------------------------------------------------------ +# Description +# ----------- +# +# Completion script for git-extras (http://github.com/visionmedia/git-extras). +# +# ------------------------------------------------------------------------------ +# Authors +# ------- +# +# * Alexis GRIMALDI (https://github.com/agrimaldi) +# +# ------------------------------------------------------------------------------ +# Inspirations +# ----------- +# +# * git-extras (http://github.com/visionmedia/git-extras) +# * git-flow-completion (http://github.com/bobthecow/git-flow-completion) +# +# ------------------------------------------------------------------------------ __git_command_successful () { From 1e1e0fa44d8e97567f7a3ecd7f922c7ecca6e76f Mon Sep 17 00:00:00 2001 From: Alexis GRIMALDI Date: Fri, 20 Jul 2012 16:46:30 +0200 Subject: [PATCH 265/421] Fix changelog --list completion bug --- plugins/git-extras/git-extras.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/git-extras/git-extras.plugin.zsh b/plugins/git-extras/git-extras.plugin.zsh index 0d7c2db7d..8419166ab 100644 --- a/plugins/git-extras/git-extras.plugin.zsh +++ b/plugins/git-extras/git-extras.plugin.zsh @@ -95,7 +95,7 @@ __git_author_names() { _git-changelog() { _arguments \ - '(-l --list)'{-l, --list}'[list commits]' \ + '(-l --list)'{-l,--list}'[list commits]' \ } From 1c23a52f5744ef419e83733d18a6a698ddd14d1e Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Fri, 20 Jul 2012 15:07:51 -0700 Subject: [PATCH 266/421] auto-upadate feature will now reset the epoch so that if a user doesn't say yes, it won't ask them again for a while. fixes #1240 --- tools/check_for_upgrade.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/check_for_upgrade.sh b/tools/check_for_upgrade.sh index bbd705a1e..612901cbe 100644 --- a/tools/check_for_upgrade.sh +++ b/tools/check_for_upgrade.sh @@ -32,9 +32,10 @@ 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 ] - then + if [ "$line" = Y ] || [ "$line" = y ]; then _upgrade_zsh + else + _update_zsh_update fi fi fi From 73df0c8e93399c8281076d660aa48b1fc5203ce1 Mon Sep 17 00:00:00 2001 From: Dr Nic Williams Date: Wed, 2 May 2012 10:32:30 -0700 Subject: [PATCH 267/421] added 'gcl'for 'git config --list'; and gd for 'git diff' --- plugins/git/git.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index d3d3f702a..c970b4cfd 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -9,6 +9,7 @@ alias gup='git fetch && git rebase' compdef _git gup=git-fetch alias gp='git push' compdef _git gp=git-push +alias gd='git diff' gdv() { git diff -w "$@" | view - } compdef _git gdv=git-diff alias gc='git commit -v' @@ -24,6 +25,7 @@ alias gba='git branch -a' compdef _git gba=git-branch alias gcount='git shortlog -sn' compdef gcount=git +alias gcl='git config --list' alias gcp='git cherry-pick' compdef _git gcp=git-cherry-pick alias glg='git log --stat --max-count=5' From d5bfbf05d16634fa3c2834c7097edb1cf2487d96 Mon Sep 17 00:00:00 2001 From: clutton Date: Tue, 24 Jul 2012 05:36:18 +0300 Subject: [PATCH 268/421] improvement: define PROMPT_HOST once on startup --- themes/jnrowe.zsh-theme | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/themes/jnrowe.zsh-theme b/themes/jnrowe.zsh-theme index 0ade9cc60..a1478be31 100644 --- a/themes/jnrowe.zsh-theme +++ b/themes/jnrowe.zsh-theme @@ -1,16 +1,14 @@ -autoload -U colors && colors autoload -U add-zsh-hook autoload -Uz vcs_info +zstyle ':vcs_info:*' disable-patterns "/usr/(ports|src)(|/*)" zstyle ':vcs_info:*' actionformats \ - '%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{3}|%F{1}%a%F{5}]%f ' -zstyle ':vcs_info:*' formats \ - '%F{2}%s%F{7}:%F{2}(%F{1}%b%F{2})%f ' + '%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{3}|%F{1}%a%F{5}]%f ' +zstyle ':vcs_info:*' formats '%F{2}%s%F{7}:%F{2}(%F{1}%b%F{2})%f ' zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{3}%r' zstyle ':vcs_info:*' enable git add-zsh-hook precmd prompt_vcs -add-zsh-hook precmd prompt_host prompt_vcs () { vcs_info @@ -26,17 +24,16 @@ prompt_vcs () { fi } -prompt_host () { +function { if [[ -n "$SSH_CLIENT" ]]; then - host=" ($HOST)" + PROMPT_HOST=" ($HOST)" else - host='' + PROMPT_HOST='' fi } - local ret_status="%(?:%{$fg_bold[green]%}Ξ:%{$fg_bold[red]%}%S↑%s%?)" -PROMPT='${ret_status}%{$fg[blue]%}${host}%{$fg_bold[green]%}%p %{$fg_bold[yellow]%}%2~ ${vcs_info_msg_0_}${dir_status}%{$reset_color%} ' +PROMPT='${ret_status}%{$fg[blue]%}${PROMPT_HOST}%{$fg_bold[green]%}%p %{$fg_bold[yellow]%}%2~ ${vcs_info_msg_0_}${dir_status}%{$reset_color%} ' # vim: set ft=zsh ts=4 sw=4 et: From 61e708f91f36420e1c5ebe68c23d94738989c9d1 Mon Sep 17 00:00:00 2001 From: Graham Christensen Date: Mon, 23 Jul 2012 23:33:14 -0400 Subject: [PATCH 269/421] Adding a symfony plugin, for symfony 1 --- plugins/symfony/symfony.plugin.zsh | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 plugins/symfony/symfony.plugin.zsh diff --git a/plugins/symfony/symfony.plugin.zsh b/plugins/symfony/symfony.plugin.zsh new file mode 100644 index 000000000..9de767548 --- /dev/null +++ b/plugins/symfony/symfony.plugin.zsh @@ -0,0 +1,13 @@ +# symfony basic command completion + +_symfony_get_command_list () { + ./symfony | sed "1,/Available tasks/d" | awk 'BEGIN { cat=null; } /^[A-Za-z]+$/ { cat = $1; } /^ :[a-z]+/ { print cat $1; }' +} + +_symfony () { + if [ -f symfony ]; then + compadd `_symfony_get_command_list` + fi +} + +compdef _symfony symfony From decb9c82b5392d66e157ceef9c3b41466bdcbafd Mon Sep 17 00:00:00 2001 From: clutton Date: Tue, 24 Jul 2012 14:16:03 +0300 Subject: [PATCH 270/421] delete os specific disable-patterns --- themes/jnrowe.zsh-theme | 1 - 1 file changed, 1 deletion(-) diff --git a/themes/jnrowe.zsh-theme b/themes/jnrowe.zsh-theme index a1478be31..bae88f7ab 100644 --- a/themes/jnrowe.zsh-theme +++ b/themes/jnrowe.zsh-theme @@ -1,7 +1,6 @@ autoload -U add-zsh-hook autoload -Uz vcs_info -zstyle ':vcs_info:*' disable-patterns "/usr/(ports|src)(|/*)" zstyle ':vcs_info:*' actionformats \ '%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{3}|%F{1}%a%F{5}]%f ' zstyle ':vcs_info:*' formats '%F{2}%s%F{7}:%F{2}(%F{1}%b%F{2})%f ' From a8d795872989ddce5bbda0926f5ebca1d769ff6b Mon Sep 17 00:00:00 2001 From: apm Date: Wed, 25 Jul 2012 10:55:28 +0600 Subject: [PATCH 271/421] alias at=aptitude broke /usr/bin/at scheduler. Just an idea: change it to ap --- plugins/debian/debian.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/debian/debian.plugin.zsh b/plugins/debian/debian.plugin.zsh index 39d3ef36a..67e38bdf9 100644 --- a/plugins/debian/debian.plugin.zsh +++ b/plugins/debian/debian.plugin.zsh @@ -21,7 +21,7 @@ fi # These are for more obscure uses of apt-get and aptitude that aren't covered # below. alias ag='apt-get' -alias at='aptitude' +alias ap='aptitude' # Some self-explanatory aliases alias acs="apt-cache search" @@ -35,7 +35,7 @@ alias afs='apt-file search --regexp' # These are apt-get only alias asrc='apt-get source' -alias ap='apt-cache policy' +alias app='apt-cache policy' # superuser operations ###################################################### if [[ $use_sudo -eq 1 ]]; then From e709642f6f9e9e89cd95177b2867794b3183a43b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bjarki=20=C3=81g=C3=BAst=20Gu=C3=B0mundsson?= Date: Thu, 26 Jul 2012 17:50:56 +0000 Subject: [PATCH 272/421] Merge branch 'master', remote-tracking branch 'rr/master' From 75029cda2a52b656543ae5477328150654de8ccb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bjarki=20=C3=81g=C3=BAst=20Gu=C3=B0mundsson?= Date: Thu, 26 Jul 2012 17:54:15 +0000 Subject: [PATCH 273/421] Added a "please" alias for sudo --- lib/aliases.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/aliases.zsh b/lib/aliases.zsh index 0555be264..2eae3835a 100644 --- a/lib/aliases.zsh +++ b/lib/aliases.zsh @@ -8,6 +8,7 @@ alias -- -='cd -' # Super user alias _='sudo' +alias please='sudo' #alias g='grep -in' From aaf705c5faf3ebe27604277809ca1260705430c9 Mon Sep 17 00:00:00 2001 From: bwl Date: Sun, 29 Jul 2012 00:53:20 -0400 Subject: [PATCH 274/421] Adding logic for ~/Applications folder installs of Sublime Text 2 --- plugins/sublime/sublime.plugin.zsh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/plugins/sublime/sublime.plugin.zsh b/plugins/sublime/sublime.plugin.zsh index 91b0279c5..e43bf76f5 100755 --- a/plugins/sublime/sublime.plugin.zsh +++ b/plugins/sublime/sublime.plugin.zsh @@ -1,9 +1,16 @@ # Sublime Text 2 Aliases #unamestr = 'uname' +local _sublime_darwin_subl=/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl + if [[ $('uname') == 'Linux' ]]; then alias st='/usr/bin/sublime_text&' elif [[ $('uname') == 'Darwin' ]]; then - alias st='/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl' + # Check if Sublime is installed in user's home application directory + if [[ -a $HOME/${_sublime_darwin_subl} ]]; then + alias st='$HOME/${_sublime_darwin_subl}' + else + alias st='${_sublime_darwin_subl}' + fi fi alias stt='st .' From a3c2a2f6e8ff9db508070a905de056346386ef4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Caio=20Rom=C3=A3o?= Date: Sun, 29 Jul 2012 20:18:26 +0200 Subject: [PATCH 275/421] Add branch status support to git_prompt_status MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This patch makes git_prompt_status support three new status variables: - ZSH_THEME_GIT_PROMPT_AHEAD - ZSH_THEME_GIT_PROMPT_BEHIND - ZSH_THEME_GIT_PROMPT_DIVERGED With these extra variables it's easy to see (1) if you have commits in your local branch that weren't pushed to the remote (AHEAD), (2) if there are commits in the remote that you haven't merged/rebased yet (BEHIND) or (3) if you have local unpushed commits AND the remote has some commits you haven't merged yet (DIVERGED). Refer to the first line displayed on `git status -b --porcelain`. An example setup in a .zsh-theme file would be: ZSH_THEME_GIT_PROMPT_AHEAD="↑" ZSH_THEME_GIT_PROMPT_BEHIND="↓" ZSH_THEME_GIT_PROMPT_DIVERGED="↕" --- lib/git.zsh | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/git.zsh b/lib/git.zsh index fb4ad8ca6..bca8bdc96 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -38,7 +38,7 @@ function git_prompt_long_sha() { # Get the status of the working tree git_prompt_status() { - INDEX=$(git status --porcelain 2> /dev/null) + INDEX=$(git status --porcelain -b 2> /dev/null) STATUS="" if $(echo "$INDEX" | grep '^?? ' &> /dev/null); then STATUS="$ZSH_THEME_GIT_PROMPT_UNTRACKED$STATUS" @@ -66,6 +66,15 @@ git_prompt_status() { if $(echo "$INDEX" | grep '^UU ' &> /dev/null); then STATUS="$ZSH_THEME_GIT_PROMPT_UNMERGED$STATUS" fi + if $(echo "$INDEX" | grep '^## .*ahead' &> /dev/null); then + STATUS="$ZSH_THEME_GIT_PROMPT_AHEAD$STATUS" + fi + if $(echo "$INDEX" | grep '^## .*behind' &> /dev/null); then + STATUS="$ZSH_THEME_GIT_PROMPT_BEHIND$STATUS" + fi + if $(echo "$INDEX" | grep '^## .*diverged' &> /dev/null); then + STATUS="$ZSH_THEME_GIT_PROMPT_DIVERGED$STATUS" + fi echo $STATUS } From 027fcccc9256aaf63e0d1b812069a1a0880f46fa Mon Sep 17 00:00:00 2001 From: Ted Vessenes Date: Tue, 31 Jul 2012 13:27:40 -0400 Subject: [PATCH 276/421] Make git use sha when branch name is missing. --- lib/git.zsh | 3 ++- plugins/git/git.plugin.zsh | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/git.zsh b/lib/git.zsh index fb4ad8ca6..af8b153d9 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -1,6 +1,7 @@ # get the name of the branch we are on function git_prompt_info() { - ref=$(git symbolic-ref HEAD 2> /dev/null) || return + ref=$(git symbolic-ref HEAD 2> /dev/null) || \ + ref=$(git rev-parse --short HEAD 2> /dev/null) || return echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX" } diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index d3d3f702a..14237cebe 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -50,13 +50,14 @@ alias gsd='git svn dcommit' # Usage example: git pull origin $(current_branch) # function current_branch() { - ref=$(git symbolic-ref HEAD 2> /dev/null) || return + ref=$(git symbolic-ref HEAD 2> /dev/null) || \ + ref=$(git rev-parse --short HEAD 2> /dev/null) || return echo ${ref#refs/heads/} } function current_repository() { - - ref=$(git symbolic-ref HEAD 2> /dev/null) || return + ref=$(git symbolic-ref HEAD 2> /dev/null) || \ + ref=$(git rev-parse --short HEAD 2> /dev/null) || return echo $(git remote -v | cut -d':' -f 2) } From 9af7f862999c458525d1a5c0f2470757ffe2f1dc Mon Sep 17 00:00:00 2001 From: Alexis Letessier Date: Wed, 1 Aug 2012 23:58:09 +0200 Subject: [PATCH 277/421] Correct variable used for global ssh known host completion --- lib/completion.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/completion.zsh b/lib/completion.zsh index f31e101d5..ba839a067 100644 --- a/lib/completion.zsh +++ b/lib/completion.zsh @@ -32,7 +32,7 @@ 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)"$( Date: Sun, 5 Aug 2012 22:51:11 +0300 Subject: [PATCH 278/421] fix typo in cd-wrapper --- lib/directories.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/directories.zsh b/lib/directories.zsh index a787db9eb..1b92df6b3 100644 --- a/lib/directories.zsh +++ b/lib/directories.zsh @@ -26,9 +26,9 @@ cd () { elif [[ "x$*" == "x...." ]]; then cd ../../.. elif [[ "x$*" == "x....." ]]; then - cd ../../.. - elif [[ "x$*" == "x......" ]]; then cd ../../../.. + elif [[ "x$*" == "x......" ]]; then + cd ../../../../.. else builtin cd "$@" fi From 74faabbcabf6dc9a60737bfd54ba1b3a341c547d Mon Sep 17 00:00:00 2001 From: "Sean M. Collins" Date: Tue, 7 Aug 2012 14:38:48 -0400 Subject: [PATCH 279/421] Add shortcut for showing log of all branches --- plugins/git/git.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index d3d3f702a..23c598169 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -30,6 +30,8 @@ alias glg='git log --stat --max-count=5' compdef _git glg=git-log alias glgg='git log --graph --max-count=5' compdef _git glgg=git-log +alias glgga='git log --graph --decorate --all' +compdef _git glgga=git-log alias gss='git status -s' compdef _git gss=git-status alias ga='git add' From 36b42017aeda6629d487c080ff6b5c7d3650687d Mon Sep 17 00:00:00 2001 From: Bodo Tasche Date: Sun, 12 Aug 2012 09:13:02 +0200 Subject: [PATCH 280/421] new forklift plugin --- plugins/forklift/forklift.plugin.zsh | 44 ++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 plugins/forklift/forklift.plugin.zsh diff --git a/plugins/forklift/forklift.plugin.zsh b/plugins/forklift/forklift.plugin.zsh new file mode 100644 index 000000000..056069d36 --- /dev/null +++ b/plugins/forklift/forklift.plugin.zsh @@ -0,0 +1,44 @@ +# Open folder in ForkLift.app from console +# Author: Adam Strzelecki nanoant.com, modified by Bodo Tasche bitboxer.de +# +# Usage: +# fl [] +# +# Opens specified directory or current working directory in ForkLift.app +# +# Notes: +# It assumes Shift+Cmd+G launches go to folder panel and Cmd+N opens new +# app window. +# +# https://gist.github.com/3313481 +function fl { + if [ ! -z "$1" ]; then + DIR=$1 + if [ ! -d "$DIR" ]; then + DIR=$(dirname $DIR) + fi + if [ "$DIR" != "." ]; then + PWD=`cd "$DIR";pwd` + fi + fi + osascript 2>&1 1>/dev/null < Date: Tue, 14 Aug 2012 12:23:11 -0300 Subject: [PATCH 281/421] new 3den theme with RVM and GIT --- themes/3den.zsh-theme | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 themes/3den.zsh-theme diff --git a/themes/3den.zsh-theme b/themes/3den.zsh-theme new file mode 100644 index 000000000..1d2c7db7f --- /dev/null +++ b/themes/3den.zsh-theme @@ -0,0 +1,7 @@ +PROMPT=$'%{$fg[white]%}$(~/.rvm/bin/rvm-prompt) %{$fg_bold[cyan]%}%~%{$reset_color%}$(git_prompt_info) %{$fg[cyan]%}%D{[%I:%M:%S]}\ +%{$fg_bold[green]%}%n$%{$reset_color%} ' + +ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[white]%}(" +ZSH_THEME_GIT_PROMPT_SUFFIX=")%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY="*" +ZSH_THEME_GIT_PROMPT_CLEAN="" From d3f6507a2e432efe48a3b8ac8f45c32e7d2ab656 Mon Sep 17 00:00:00 2001 From: Graeme Coupar Date: Fri, 17 Aug 2012 16:58:35 +0100 Subject: [PATCH 282/421] Debian plugin now pipes which stderr to stdout The debian plugin calls which to determine whether aptitude & sudo are installed. However, if these are not installed then the error output from which will be output. Since this isn't really an error condition, this commit updates the which calls to pipe stderr to stdout, thus hiding the error messages. --- plugins/debian/debian.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/debian/debian.plugin.zsh b/plugins/debian/debian.plugin.zsh index 39d3ef36a..da86b1711 100644 --- a/plugins/debian/debian.plugin.zsh +++ b/plugins/debian/debian.plugin.zsh @@ -6,14 +6,14 @@ # Use aptitude if installed, or apt-get if not. # You can just set apt_pref='apt-get' to override it. -if [[ -e $( which aptitude ) ]]; then +if [[ -e $( which aptitude 2>&1 ) ]]; then apt_pref='aptitude' else apt_pref='apt-get' fi # Use sudo by default if it's installed -if [[ -e $( which sudo ) ]]; then +if [[ -e $( which sudo 2>&1 ) ]]; then use_sudo=1 fi From b2c1af91d3e70ea442ae5353cf7f140d89491c73 Mon Sep 17 00:00:00 2001 From: John Hamelink Date: Sun, 19 Aug 2012 14:03:23 +0100 Subject: [PATCH 283/421] Added laravel plugin which gives aliases to artisan and bob, and provides autocompletion for artisan. --- plugins/laravel/_artisan | 40 ++++++++++++++++++++++++++++++ plugins/laravel/laravel.plugin.zsh | 3 +++ 2 files changed, 43 insertions(+) create mode 100644 plugins/laravel/_artisan create mode 100644 plugins/laravel/laravel.plugin.zsh diff --git a/plugins/laravel/_artisan b/plugins/laravel/_artisan new file mode 100644 index 000000000..8637514cf --- /dev/null +++ b/plugins/laravel/_artisan @@ -0,0 +1,40 @@ +#compdef artisan + +# Laravel autocompletion +# Author: John Hamelink +# +# This plugin does the following: +# - Adds aliases and autocompletion for artisan +# - Adds aliases and autocompletion for bob + +local curcontext="$curcontext" state line _opts _bundles ret=1 +_arguments -C \ + '1: :->cmds' \ + '*:: :->args' && ret=0 + +case $state in + cmds) + + _values "Artisan command" \ + 'session\:install[Create a session table]' \ + 'migrate[Manage Migrations]' \ + 'test[Run a test]' \ + 'route\:\:call[Call a route in the CLI]' \ + 'key\:\:generate[Generate a key]' + ret=0 + ;; + args) + case $line[1] in + migrate) + _values \ + 'install[Create the Laravel migration table' \ + 'make[Create a migration]' \ + 'rollback[Roll back to the last migration operation]' \ + 'reset[Roll back all migrations that have ever run]' + ret=0 + ;; + esac + ;; +esac + +return ret diff --git a/plugins/laravel/laravel.plugin.zsh b/plugins/laravel/laravel.plugin.zsh new file mode 100644 index 000000000..ed932ee89 --- /dev/null +++ b/plugins/laravel/laravel.plugin.zsh @@ -0,0 +1,3 @@ +#!zsh +alias artisan='php artisan' +alias bob='php artisan bob::build' From f995218d081ac66b86d40a0141db5d445147b50d Mon Sep 17 00:00:00 2001 From: "jamie sa (jsa)" Date: Fri, 10 Aug 2012 23:01:55 +0800 Subject: [PATCH 284/421] Add keep branch option. --- plugins/git-flow/git-flow.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/git-flow/git-flow.plugin.zsh b/plugins/git-flow/git-flow.plugin.zsh index 71b343884..d9d288b8e 100644 --- a/plugins/git-flow/git-flow.plugin.zsh +++ b/plugins/git-flow/git-flow.plugin.zsh @@ -221,6 +221,7 @@ __git-flow-feature () _arguments \ -F'[Fetch from origin before performing finish]' \ -r'[Rebase instead of merge]'\ + -k'[Keep branch after performing finish]'\ ':feature:__git_flow_feature_list' ;; From 6f92745761afc000b54bd782c7f3bcc0733302f7 Mon Sep 17 00:00:00 2001 From: Cenk Alti Date: Sat, 25 Aug 2012 09:51:58 +0300 Subject: [PATCH 285/421] Added another path for virtualenvwrapper plugin MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When you install python via brew on OSX, pip is installed into /usr/local/share/python/ and all packages installed with this pip are installed here. --- plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh index 5d0860400..8506624b5 100644 --- a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh +++ b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh @@ -1,5 +1,5 @@ WRAPPER_FOUND=0 -for wrapsource in "/usr/bin/virtualenvwrapper.sh" "/usr/local/bin/virtualenvwrapper.sh" "/etc/bash_completion.d/virtualenvwrapper" ; do +for wrapsource in "/usr/bin/virtualenvwrapper.sh" "/usr/local/bin/virtualenvwrapper.sh" "/usr/local/share/python/virtualenvwrapper.sh" "/etc/bash_completion.d/virtualenvwrapper" ; do if [[ -e $wrapsource ]] ; then WRAPPER_FOUND=1 source $wrapsource From d5e5b7ee5adaf74afa96cae00260c50581d8f46f Mon Sep 17 00:00:00 2001 From: Cenk Alti Date: Sat, 25 Aug 2012 10:26:00 +0300 Subject: [PATCH 286/421] search virtualenvwrapper.sh in PATH --- .../virtualenvwrapper.plugin.zsh | 76 +++++++++---------- 1 file changed, 35 insertions(+), 41 deletions(-) diff --git a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh index 8506624b5..a5abb77c3 100644 --- a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh +++ b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh @@ -1,46 +1,40 @@ -WRAPPER_FOUND=0 -for wrapsource in "/usr/bin/virtualenvwrapper.sh" "/usr/local/bin/virtualenvwrapper.sh" "/usr/local/share/python/virtualenvwrapper.sh" "/etc/bash_completion.d/virtualenvwrapper" ; do - if [[ -e $wrapsource ]] ; then - WRAPPER_FOUND=1 - source $wrapsource +wrapsource=`which virtualenvwrapper.sh` - if [[ ! $DISABLE_VENV_CD -eq 1 ]]; then - # Automatically activate Git projects' virtual environments based on the - # directory name of the project. Virtual environment name can be overridden - # by placing a .venv file in the project root with a virtualenv name in it - function workon_cwd { - # Check that this is a Git repo - PROJECT_ROOT=`git rev-parse --show-toplevel 2> /dev/null` - if (( $? == 0 )); then - # Check for virtualenv name override - ENV_NAME=`basename "$PROJECT_ROOT"` - if [[ -f "$PROJECT_ROOT/.venv" ]]; then - ENV_NAME=`cat "$PROJECT_ROOT/.venv"` - fi - # Activate the environment only if it is not already active - if [[ "$VIRTUAL_ENV" != "$WORKON_HOME/$ENV_NAME" ]]; then - if [[ -e "$WORKON_HOME/$ENV_NAME/bin/activate" ]]; then - workon "$ENV_NAME" && export CD_VIRTUAL_ENV="$ENV_NAME" - fi - fi - elif [ $CD_VIRTUAL_ENV ]; then - # We've just left the repo, deactivate the environment - # Note: this only happens if the virtualenv was activated automatically - deactivate && unset CD_VIRTUAL_ENV - fi - unset PROJECT_ROOT - } +if [[ -f "$wrapsource" ]]; then + source $wrapsource - # New cd function that does the virtualenv magic - function cd { - builtin cd "$@" && workon_cwd - } - fi + if [[ ! $DISABLE_VENV_CD -eq 1 ]]; then + # Automatically activate Git projects' virtual environments based on the + # directory name of the project. Virtual environment name can be overridden + # by placing a .venv file in the project root with a virtualenv name in it + function workon_cwd { + # Check that this is a Git repo + PROJECT_ROOT=`git rev-parse --show-toplevel 2> /dev/null` + if (( $? == 0 )); then + # Check for virtualenv name override + ENV_NAME=`basename "$PROJECT_ROOT"` + if [[ -f "$PROJECT_ROOT/.venv" ]]; then + ENV_NAME=`cat "$PROJECT_ROOT/.venv"` + fi + # Activate the environment only if it is not already active + if [[ "$VIRTUAL_ENV" != "$WORKON_HOME/$ENV_NAME" ]]; then + if [[ -e "$WORKON_HOME/$ENV_NAME/bin/activate" ]]; then + workon "$ENV_NAME" && export CD_VIRTUAL_ENV="$ENV_NAME" + fi + fi + elif [ $CD_VIRTUAL_ENV ]; then + # We've just left the repo, deactivate the environment + # Note: this only happens if the virtualenv was activated automatically + deactivate && unset CD_VIRTUAL_ENV + fi + unset PROJECT_ROOT + } - break + # New cd function that does the virtualenv magic + function cd { + builtin cd "$@" && workon_cwd + } fi -done - -if [ $WRAPPER_FOUND -eq 0 ] ; then - print "zsh virtualenvwrapper plugin: Couldn't activate virtualenvwrapper. Please run \`pip install virtualenvwrapper\`." +else + print "zsh virtualenvwrapper plugin: Cannot find virtualenvwrapper.sh. Please install with \`pip install virtualenvwrapper\`." fi From 28d3b80db1d5d976a809bc01da191be5b1768fcb Mon Sep 17 00:00:00 2001 From: Xavier Lacoste Date: Thu, 30 Aug 2012 16:25:36 +0200 Subject: [PATCH 287/421] Add empty function rbenv_prompt_info() if doesn't exists --- themes/jonathan.zsh-theme | 2 ++ 1 file changed, 2 insertions(+) diff --git a/themes/jonathan.zsh-theme b/themes/jonathan.zsh-theme index 2f0c4b917..9f0f30271 100644 --- a/themes/jonathan.zsh-theme +++ b/themes/jonathan.zsh-theme @@ -1,3 +1,5 @@ +functions rbenv_prompt_info >& /dev/null || rbenv_prompt_info(){} + function theme_precmd { local TERMWIDTH (( TERMWIDTH = ${COLUMNS} - 1 )) From fbf82ae62fe03f69af0114011c0d6848a83d4fb3 Mon Sep 17 00:00:00 2001 From: everbird Date: Sat, 1 Sep 2012 23:11:47 +0800 Subject: [PATCH 288/421] add new plugin to autocomplete supervisor commands --- plugins/supervisor/_supervisorctl | 136 +++++++++++++++++++++++ plugins/supervisor/_supervisord | 32 ++++++ plugins/supervisor/supervisor.plugin.zsh | 1 + 3 files changed, 169 insertions(+) create mode 100644 plugins/supervisor/_supervisorctl create mode 100644 plugins/supervisor/_supervisord create mode 100644 plugins/supervisor/supervisor.plugin.zsh diff --git a/plugins/supervisor/_supervisorctl b/plugins/supervisor/_supervisorctl new file mode 100644 index 000000000..d159f20e0 --- /dev/null +++ b/plugins/supervisor/_supervisorctl @@ -0,0 +1,136 @@ +#compdef supervisorctl + +typeset -A opt_args +local context state line + +_supervisorctl() { + _arguments -s -S \ + {--configuration,-c}"[configuration file path (default /etc/supervisor.conf)]:FILENAME:_files" \ + {--help,-h}"[print usage message and exit]:" \ + {--interactive,-i}"[start an interactive shell after executing commands]" \ + {--serverurl,-s}"[URL on which supervisord server is listening (default "http://localhost:9001").]" \ + {--username,-u}"[username to use for authentication with server]:USERNAME:_users" \ + {--password,-p}"[password to use for authentication with server]:PASSWORD:" \ + {--history-file,-r}"[keep a readline history (if readline is available)]:FILENAME:_files" \ + "*::supervisorctl commands:_supervisorctl_command" +} + +(( $+functions[_supervisorctl_command] )) || +_supervisorctl_command() { + local cmd ret=1 + + (( $+supervisorctl_cmds )) || _supervisorctl_cmds=( + "add:Activates any updates in config for process/group" \ + "avail:Display all configured processes" \ + "clear:Clear process/multiple-process/all-process log files" \ + "exit:Exit the supervisor shell." \ + "fg:Connect to a process in foreground mode" \ + "maintail:tail of supervisor main log file" \ + "open:Connect to a remote supervisord process. (for UNIX domain socket, use unix:///socket/path)" \ + "pid:Get the PID of supervisord." \ + "quit:Exit the supervisor shell." \ + "reload:Restart the remote supervisord." \ + "remove:Removes process/group from active config" \ + "reread:Reload the daemon's configuration files" \ + "restart:Restart process or group." \ + "shutdown:Shut the remote supervisord down." \ + "start:Start process or groups." \ + "status:Get process status info." \ + "stop:Stop process or group." \ + "tail:tail of process stdout" \ + "update:Reload config and add/remove as necessary" \ + "version:Show the version of the remote supervisord process" \ + "help:Show help" \ + ) + + if (( CURRENT == 1 )); then + _describe -t commands 'supervisorctl subcommand' _supervisorctl_cmds \ + || compadd "$@" - ${(s.:.)${(j.:.)_supervisorctl_syns}} + else + local curcontext="$curcontext" + + cmd="${${_supervisorctl_cmds[(r)$words[1]:*]%%:*}:-${(k)_supervisorctl_syns[(r)(*:|)$words[1](:*|)]}}" + if (( $#cmd )); then + curcontext="${curcontext%:*:*}:supervisorctl-${cmd}:" + _call_function ret _supervisorctl_$cmd || _message 'no more arguments' + else + _message "unknown supervisorctl command: $words[1]" + fi + return ret + fi +} + +# get supervisor contoroll processes +(( $+functions[_get_supervisor_procs] )) || +_get_supervisor_procs() { + local cache_policy + zstyle -s ":completion:${curcontext}:" cache-policy cache_policy + if [[ -z "$cache_policy" ]]; then + zstyle ":completion:${curcontext}:" cache-policy _supervisor_procs_caching_policy + fi + + if ( [[ ${+_supervisor_procs} -eq 0 ]] || _cache_invalid supervisor_procs ) \ + && ! _retrieve_cache supervisor_procs; then + + _supervisor_procs=(${${(f)"$(supervisorctl status >/dev/null 2>&1 | awk -F' ' '{print $1}')"}}) + _store_cache supervisor_procs _supervisor_procs + fi + + local expl + _wanted supervisor_procs expl 'supervisor processes' compadd -a _supervisor_procs +} + +_supervisor_procs_caching_policy() { + local -a oldp + oldp=( "$1"(Nmw+1) ) + (( $#oldp )) +} + +(( $+functions[_supervisorctl_add] )) || +_supervisorctl_add() { + _arguments -s \ + "--help[use help system]" \ + "*::supervisorctl commands:_supervisorctl" +} + +(( $+functions[_supervisorctl_help] )) || +_supervisorctl_help() { + _arguments -s \ + "*:supervisorctl commands:_supervisorctl" +} + +(( $+functions[_supervisorctl_maintail] )) || +_supervisorctl_maintail() { + _arguments -s \ + '-f[Continuous tail of supervisor main log file (Ctrl-C to exit)]' +} + +(( $+functions[_supervisorctl_start] )) || +_supervisorctl_start() { + # TODO: add 'all' + _arguments -s \ + '*::supvervisor process:_get_supervisor_procs' +} + +(( $+functions[_supervisorctl_status] )) || +_supervisorctl_status() { + _arguments \ + '*::supvervisor process:_get_supervisor_procs' +} + +(( $+functions[_supervisorctl_stop] )) || +_supervisorctl_stop() { + # TODO: add 'all' + _arguments -s \ + '*::supvervisor process:_get_supervisor_procs' +} + +(( $+functions[_supervisorctl_tail] )) || +_supervisorctl_tail() { + # TODO: add 'stderr' + _arguments -s \ + '-f[Continuous tail of named process stdout Ctrl-C to exit.]' \ + '*::supvervisor process:_get_supervisor_procs' +} + +_supervisorctl "$@" diff --git a/plugins/supervisor/_supervisord b/plugins/supervisor/_supervisord new file mode 100644 index 000000000..34d27805d --- /dev/null +++ b/plugins/supervisor/_supervisord @@ -0,0 +1,32 @@ +#compdef supervisord + +typeset -A opt_args +local context state line + +_arguments \ + {--configuration,-c}"[configuration file]:FILENAME:_files" \ + {--nodaemon,-n}"[run in the foreground (same as 'nodaemon true' in config file)]" \ + {--help,-h}"[print this usage message and exit]:" \ + {--user,-u}"[run supervisord as this user]:USER:_users" \ + {--umask,-m}"[use this umask for daemon subprocess (default is 022)]" \ + {--directory,-d}"[directory to chdir to when daemonized]" \ + {--logfile,-l}"[use FILENAME as logfile path]:FILENAME:_files" \ + {--logfile_maxbytes,-y}"[use BYTES to limit the max size of logfile]" \ + {--logfile_backups,-z}"[number of backups to keep when max bytes reached]" \ + {--loglevel,-e}"[use LEVEL as log level (debug,info,warn,error,critical)]:level:->levels" \ + {--pidfile,-j}"[write a pid file for the daemon process to FILENAME]:FILENAME:_files" \ + {--identifier,-i}"[identifier used for this instance of supervisord]" \ + {--childlogdir,-q}"[the log directory for child process logs]:child log directory:_files -/" \ + {--nocleanup,-k}"[prevent the process from performing cleanup (removal of old automatic child log files) at startup.]" \ + {--minfds,-a}"[the minimum number of file descriptors for start success]" \ + {--strip_ansi,-t}"[strip ansi escape codes from process output]" \ + "--minprocs[the minimum number of processes available for start success]" \ + "--profile_options[run supervisord under profiler and output results based on OPTIONS, which is a comma-sep'd list of 'cumulative', 'calls', and/or 'callers', e.g. 'cumulative,callers')]" \ + "*::args:_gnu_generic" + +case $state in +levels) + levels=("debug" "info" "warn" "error" "critical") + _describe -t levels 'supervisord levels' levels && return 0 + ;; +esac diff --git a/plugins/supervisor/supervisor.plugin.zsh b/plugins/supervisor/supervisor.plugin.zsh new file mode 100644 index 000000000..cf1997c5b --- /dev/null +++ b/plugins/supervisor/supervisor.plugin.zsh @@ -0,0 +1 @@ +# DECLARION: This plugin was created by hhatto. What I did is just making a portal from https://bitbucket.org/hhatto/zshcompfunc4supervisor. From 2643ac975bff9513753b6e3d99a34164e48955f7 Mon Sep 17 00:00:00 2001 From: Nicholas Hutchinson Date: Sun, 2 Sep 2012 10:38:08 +1200 Subject: [PATCH 289/421] Update fishy theme to collapse working directory in PROMPT. For non-trailing path components, we show only the first character. So, as in Fish proper, we convert ~/some/really/really/really/long/path/name to ~/s/r/r/r/l/p/name. --- themes/fishy.zsh-theme | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/themes/fishy.zsh-theme b/themes/fishy.zsh-theme index f9e506cae..e9f78a54e 100644 --- a/themes/fishy.zsh-theme +++ b/themes/fishy.zsh-theme @@ -1,7 +1,11 @@ # ZSH Theme emulating the Fish shell's default prompt. +_fishy_collapsed_wd() { + echo $(pwd | perl -pe "s|^$HOME|~|g; s|/([^/])[^/]*(?=/)|/\$1|g") +} + local user_color='green'; [ $UID -eq 0 ] && user_color='red' -PROMPT='%n@%m %{$fg[$user_color]%}%~%{$reset_color%}%(!.#.>) ' +PROMPT='%n@%m %{$fg[$user_color]%}$(_fishy_collapsed_wd)%{$reset_color%}%(!.#.>) ' PROMPT2='%{$fg[red]%}\ %{$reset_color%}' local return_status="%{$fg_bold[red]%}%(?..%?)%{$reset_color%}" From fa859f90d2ba91be36c77520b1a23442c55d9cfe Mon Sep 17 00:00:00 2001 From: Ben Cao Date: Mon, 3 Sep 2012 11:51:28 +0800 Subject: [PATCH 290/421] fix rvm auto complete, pointing to $rvm_path --- plugins/rvm/_rvm | 147 ------------------------------------- plugins/rvm/rvm.plugin.zsh | 7 +- 2 files changed, 6 insertions(+), 148 deletions(-) delete mode 100644 plugins/rvm/_rvm diff --git a/plugins/rvm/_rvm b/plugins/rvm/_rvm deleted file mode 100644 index bba5304a0..000000000 --- a/plugins/rvm/_rvm +++ /dev/null @@ -1,147 +0,0 @@ -#compdef rvm - -local curcontext="$curcontext" state line cmds ret=1 - -_arguments -C \ - '(- 1 *)'{-v,--version}'[display version information]' \ - '(-l|--level)'{-l,--level}'+[patch level to use with rvm use / install]:number' \ - '(--prefix)--prefix[path for all rvm files (~/.rvm/), with trailing slash!]:path:_files' \ - '(--bin)--bin[path for binaries to be placed (~/.rvm/bin/)]:path:_files' \ - '(--source)--source[src directory to use (~/.rvm/src/)]:path:_files' \ - '(--archives)--archives[directory for downladed files (~/.rvm/archives/)]:path:_files' \ - '-S[Specify a script file to attempt to load and run (rubydo)]:file:_files' \ - '-e[Execute code from the command line]:code' \ - '(-G)-G[root gem path to use]:path:_files' \ - '(--gems)--gems[Used to set the gems_flag, use with remove to remove gems]' \ - '(--archive)--archive[Used to set the archive_flag, use with remove to remove archive]' \ - '(--patch)--patch[With MRI Rubies you may specify one or more full paths to patches]' \ - '(-C|--configure)'{-C,--configure}'=[custom configure options]' \ - '(--nice)--nice[process niceness (for slow computers, default 0)]:number' \ - '(--ree)--ree-options[Options passed directly to ree ./installer on the command line]:options' \ - '(--head)--head[with update, updates rvm to git head version]' \ - '(--rubygems)--rubygems[with update, updates rubygems for selected ruby]' \ - '(--default)--default[with ruby select, sets a default ruby for new shells]' \ - '(--debug)--debug[Toggle debug mode on for very verbose output]' \ - '(--trace)--trace[Toggle trace mode on to see EVERYTHING rvm is doing]' \ - '(--force)--force[Force install, removes old install & source before install]' \ - '(--summary)--summary[Used with rubydo to print out a summary of the commands run]' \ - '(--latest)--latest[with gemset --dump skips version strings for latest gem]' \ - '(--gems)--gems[with uninstall/remove removes gems with the interpreter]' \ - '(--docs)--docs[with install, attempt to generate ri after installation]' \ - '(--reconfigure)--reconfigure[Force ./configure on install even if Makefile already exists]' \ - '1: :->cmds' \ - '*: :->args' && ret=0 - -case $state in - cmds) - cmds=( - "version:show the rvm version installed in rvm_path" - "use:setup current shell to use a specific ruby version" - "reload:reload rvm source itself (useful after changing rvm source)" - "implode:(seppuku) removes the rvm installation completely. This means everything in $rvm_path (~/.rvm)." - "update:upgrades rvm to the latest version." - "reset:remove current and stored default & system settings." - "info :show the *current* environment information for current ruby" - "current:print the *current* ruby version and the name of any gemset being used." - "debug:show info plus additional information for common issues" - "install:install one or many ruby versions" - "uninstall:uninstall one or many ruby versions, leaves their sources" - "remove:uninstall one or many ruby versions and remove their sources" - "migrate:Lets you migrate all gemsets from one ruby to another." - "upgrade:Lets you upgrade from one version of a ruby to another, including migrating your gemsets semi-automatically." - "wrapper:generates a set of wrapper executables for a given ruby with the specified ruby and gemset combination. Used under the hood for passenger support and the like." - "cleanup:Lets you remove stale source folders / archives and other miscellaneous data associated with rvm." - "repair:Lets you repair parts of your environment e.g. wrappers, env files and and similar files (e.g. general maintenance)." - "snapshot:Lets your backup / restore an rvm installation in a lightweight manner." - "disk-usage:Tells you how much disk space rvm install is using." - "tools:Provides general information about the ruby environment, primarily useful when scripting rvm." - "docs:Tools to make installing ri and rdoc documentation easier." - "rvmrc:Tools related to managing rvmrc trust and loading." - "exec:runs an arbitrary command as a set operation." - "ruby:runs a named ruby file against specified and/or all rubies" - "gem:runs a gem command using selected ruby's 'gem'" - "rake:runs a rake task against specified and/or all rubies" - "tests:runs 'rake test' across selected ruby versions" - "specs:runs 'rake spec' across selected ruby versions" - "monitor:Monitor cwd for testing, run rake {spec,test} on changes." - "gemset:gemsets: http://rvm.beginrescueend.com/gemsets/" - "rubygems:Switches the installed version of rubygems for the current ruby." - "gemdir:display the path to the current gem directory (GEM_HOME)." - "srcdir:display the path to rvm source directory (may be yanked)" - "fetch:Performs an archive / src fetch only of the selected ruby." - "list:show currently installed rubies, interactive output." - "package:Install a dependency package {readline,iconv,zlib,openssl}" - "notes:Display notes, with operating system specifics." - "export:Temporarily set an environment variable in the current shell." - "unexport:Undo changes made to the environment by 'rvm export'." - ) - _describe -t commands 'rvm command' cmds && ret=0 - ;; - args) - case $line[1] in - (use|uninstall|remove|list) - _values -S , 'rubies' $(rvm list strings | sed -e 's/ruby-\([^) ]*\)-\([^) ]*\)/ruby-\1-\2 \1-\2 \1/g') default system && ret=0 - ;; - (install|fetch) - _values -S , 'rubies' $(rvm list known_strings) && ret=0 - ;; - gemset) - if (( CURRENT == 3 )); then - _values 'gemset_commands' \ - 'import' \ - 'export' \ - 'create' \ - 'copy' \ - 'rename' \ - 'empty' \ - 'delete' \ - 'name' \ - 'dir' \ - 'list' \ - 'list_all' \ - 'gemdir' \ - 'install' \ - 'pristine' \ - 'clear' \ - 'use' \ - 'update' \ - 'unpack' \ - 'globalcache' - else - _values -S , 'gemsets' $(rvm gemset list | grep -v gemset 2>/dev/null) - fi - ret=0 - ;; - package) - if (( CURRENT == 3 )); then - _values 'package_commands' \ - 'install' \ - 'uninstall' - else - _values 'packages' \ - 'readline' \ - 'iconv' \ - 'curl' \ - 'openssl' \ - 'zlib' \ - 'autoconf' \ - 'ncurses' \ - 'pkgconfig' \ - 'gettext' \ - 'glib' \ - 'mono' \ - 'llvm' \ - 'libxml2' \ - 'libxslt' \ - 'libyaml' - fi - ret=0 - ;; - *) - (( ret )) && _message 'no more arguments' - ;; - esac - ;; -esac - -return ret diff --git a/plugins/rvm/rvm.plugin.zsh b/plugins/rvm/rvm.plugin.zsh index 604c00713..e0c58ebda 100644 --- a/plugins/rvm/rvm.plugin.zsh +++ b/plugins/rvm/rvm.plugin.zsh @@ -2,7 +2,7 @@ alias rubies='rvm list rubies' alias gemsets='rvm gemset list' local ruby18='ruby-1.8.7-p334' -local ruby19='ruby-1.9.2-p180' +local ruby19='ruby-1.9.3-p194' function rb18 { if [ -z "$1" ]; then @@ -42,3 +42,8 @@ function gems { -Ee "s/$current_ruby@global/$fg[yellow]&$reset_color/g" \ -Ee "s/$current_ruby$current_gemset$/$fg[green]&$reset_color/g" } + +function _rvm_completion { + source $rvm_path"/scripts/zsh/Completion/_rvm" +} +compdef _rvm_completion rvm From cfeb57024d78d84521ea6676a49182dee9a98b52 Mon Sep 17 00:00:00 2001 From: Reza Date: Mon, 3 Sep 2012 21:20:45 +0430 Subject: [PATCH 291/421] Nuke _cap_does_task_list_need_generating Thanks @docwhat --- plugins/capistrano/_capistrano | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/plugins/capistrano/_capistrano b/plugins/capistrano/_capistrano index 2ae977fcd..cf6b50c7f 100644 --- a/plugins/capistrano/_capistrano +++ b/plugins/capistrano/_capistrano @@ -1,17 +1,8 @@ #compdef cap #autoload -_cap_does_task_list_need_generating () { - if [ ! -f .cap_tasks~ ]; then return 0; - else - accurate=$(stat -f%m .cap_tasks~) - changed=$(stat -f%m config/deploy.rb) - return $(expr $accurate '>=' $changed) - fi -} - if [ -f config/deploy.rb ]; then - if _cap_does_task_list_need_generating; then + if [[ ! -f .cap_tasks~ || config/deploy.rb -nt .cap_tasks~ ]]; then echo "\nGenerating .cap_tasks~..." > /dev/stderr cap --tasks | grep '#' | cut -d " " -f 2 > .cap_tasks~ fi From 061a4c006c83c9ddb2c8c693c2169d5be663763f Mon Sep 17 00:00:00 2001 From: Josh Parnham Date: Thu, 6 Sep 2012 19:59:18 +1000 Subject: [PATCH 292/421] Add new 'nanoc' plugin --- plugins/nanoc/_nanoc | 44 ++++++++++++++++++++++++++++++++++ plugins/nanoc/nanoc.plugin.zsh | 9 +++++++ 2 files changed, 53 insertions(+) create mode 100644 plugins/nanoc/_nanoc create mode 100644 plugins/nanoc/nanoc.plugin.zsh diff --git a/plugins/nanoc/_nanoc b/plugins/nanoc/_nanoc new file mode 100644 index 000000000..fde07c3fc --- /dev/null +++ b/plugins/nanoc/_nanoc @@ -0,0 +1,44 @@ +#compdef nanoc +#autoload + +# nanoc zsh completion - based on the homebrew zsh completion +# requires the 'nanoc' gem to be installed + +local -a _1st_arguments +_1st_arguments=( + 'autocompile:start the autocompiler' + 'compile:compile items of this site' + 'create-item:create an item' + 'create-layout:create a layout' + 'create-site:create a site' + 'deploy:deploy the compiled site' + 'help:show help' + 'prune:remove files not managed by nanoc from the output directory' + 'show-data:show data in this site' + 'show-plugins:show all available plugins' + 'show-rules:describe the rules for each item' + 'update:update the data stored by the data source to a newer version' + 'validate-css:validate the site’s CSS' + 'validate-html:validate the site’s HTML' + 'validate-links:validate links in site' + 'view:start the web server that serves static files' + 'watch:start the watcher' +) + +local expl +local -a pkgs installed_pkgs + +_arguments \ + '(--color)--color[enable color]' \ + '(--debug)--debug[enable debugging]' \ + '(--help)--help[show the help message and quit]' \ + '(--no-color)--no-color[disable color]' \ + '(--verbose)--verbose[make nanoc output more detailed]' \ + '(--version)--version[show version information and quit]' \ + '(--warn)--warn[enable warnings]' \ + '*:: :->subcmds' && return 0 + +if (( CURRENT == 1 )); then + _describe -t commands "nanoc subcommand" _1st_arguments + return +fi diff --git a/plugins/nanoc/nanoc.plugin.zsh b/plugins/nanoc/nanoc.plugin.zsh new file mode 100644 index 000000000..5a5064613 --- /dev/null +++ b/plugins/nanoc/nanoc.plugin.zsh @@ -0,0 +1,9 @@ +alias n='nanoc' +alias na='nanoc autocompile' +alias nco='nanoc compile' +alias nci='nanoc create_item' +alias ncl='nanoc create_layout' +alias ncs='nanoc create_site' +alias nd='nanoc deploy' +alias nv='nanoc view' +alias nw='nanoc watch' From 8d60a0c80039048b836205475dfcf258bd776912 Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Thu, 13 Sep 2012 11:38:58 +0200 Subject: [PATCH 293/421] updated cap plugin to use `cap -T` instead of `cap show_tasks` which didn't exist (sometimes?) --- plugins/cap/cap.plugin.zsh | 38 +++++++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/plugins/cap/cap.plugin.zsh b/plugins/cap/cap.plugin.zsh index 8336182d5..04479f46f 100644 --- a/plugins/cap/cap.plugin.zsh +++ b/plugins/cap/cap.plugin.zsh @@ -1,8 +1,30 @@ -function _cap_does_task_list_need_generating () { - if [ ! -f .cap_tasks~ ]; then return 0; +stat -f%m . > /dev/null 2>&1 +if [ "$?" = 0 ]; then + stat_cmd=(stat -f%m) +else + stat_cmd=(stat -L --format=%y) +fi + +# Cache filename +_cap_show_undescribed_tasks=0 + +# Cache filename +_cap_task_cache_file='.cap_task_cache' + +_cap_get_task_list () { + if [ ${_cap_show_undescribed_tasks} -eq 0 ] + cap -T | grep '^cap' | cut -d " " -f 2 else - accurate=$(stat -f%m .cap_tasks~) - changed=$(stat -f%m config/deploy.rb) + cap -vT | grep '^cap' | cut -d " " -f 2 + fi +} + +_cap_does_task_list_need_generating () { + + if [ ! -f ${_cap_task_cache_file} ]; then return 0; + else + accurate=$($stat_cmd $_cap_task_cache_file) + changed=$($stat_cmd config/deploy.rb) return $(expr $accurate '>=' $changed) fi } @@ -10,12 +32,10 @@ function _cap_does_task_list_need_generating () { function _cap () { if [ -f config/deploy.rb ]; then if _cap_does_task_list_need_generating; then - echo "\nGenerating .cap_tasks~..." > /dev/stderr - cap show_tasks -q | cut -d " " -f 1 | sed -e '/^ *$/D' -e '1,2D' -> .cap_tasks~ + _cap_get_task_list > ${_cap_task_cache_file} fi - compadd `cat .cap_tasks~` + compadd `cat ${_cap_task_cache_file}` fi } -compctl -K _cap cap +compdef _cap cap From 9a4fac184ea1aa7a2e86e50111548a0a98652aaf Mon Sep 17 00:00:00 2001 From: Koen Punt Date: Thu, 13 Sep 2012 12:20:44 +0200 Subject: [PATCH 294/421] fixed incorrect if/else --- plugins/cap/cap.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/cap/cap.plugin.zsh b/plugins/cap/cap.plugin.zsh index 04479f46f..d22d10401 100644 --- a/plugins/cap/cap.plugin.zsh +++ b/plugins/cap/cap.plugin.zsh @@ -12,7 +12,7 @@ _cap_show_undescribed_tasks=0 _cap_task_cache_file='.cap_task_cache' _cap_get_task_list () { - if [ ${_cap_show_undescribed_tasks} -eq 0 ] + if [ ${_cap_show_undescribed_tasks} -eq 0 ]; then cap -T | grep '^cap' | cut -d " " -f 2 else cap -vT | grep '^cap' | cut -d " " -f 2 From b11e28914139fb585c0a4de4ddb6a55f19a5493d Mon Sep 17 00:00:00 2001 From: Isaac Wolkerstorfer Date: Thu, 13 Sep 2012 14:02:09 +0200 Subject: [PATCH 295/421] Add agnoster.zsh-theme --- themes/agnoster.zsh-theme | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 themes/agnoster.zsh-theme diff --git a/themes/agnoster.zsh-theme b/themes/agnoster.zsh-theme new file mode 100644 index 000000000..15848979e --- /dev/null +++ b/themes/agnoster.zsh-theme @@ -0,0 +1,28 @@ +# Theme by [agnoster](https://github.com/agnoster) +# See https://gist.github.com/3712874 + +ZSH_THEME_GIT_PROMPT_DIRTY='±' + +function _git_prompt_info() { + ref=$(git symbolic-ref HEAD 2> /dev/null) || ref="➦ $(git show-ref --head -s --abbrev |head -n1 2> /dev/null)" + echo "${ref/refs\/heads\//⭠ }$(parse_git_dirty)" +} + +function _git_info() { + if $(git rev-parse --is-inside-work-tree >/dev/null 2>&1); then + local BG_COLOR=green + if [[ -n $(parse_git_dirty) ]]; then + BG_COLOR=yellow + fi + echo "%{%K{$BG_COLOR}%}⮀%{%F{black}%} $(_git_prompt_info) %{%F{$BG_COLOR}%K{blue}%}⮀" + else + echo "%{%K{blue}%}⮀" + fi +} + +PROMPT_HOST='%{%b%F{gray}%K{black}%} %(?.%{%F{green}%}✔.%{%F{red}%}✘)%{%F{gray}%} %m %{%F{black}%}' +PROMPT_DIR='%{%F{white}%} %1~ ' +PROMPT_SU='%(!.%{%k%F{blue}%K{black}%}⮀%{%F{yellow}%} ⚡ %{%k%F{black}%}.%{%k%F{blue}%})⮀%{%f%k%b%}' + +PROMPT='%{%f%b%k%} +$PROMPT_HOST$(_git_info)$PROMPT_DIR$PROMPT_SU ' From 28d28ee6f6128b3194ac6e28839aabb9a9018c4e Mon Sep 17 00:00:00 2001 From: Alexander Surma Date: Fri, 14 Sep 2012 13:57:13 +0200 Subject: [PATCH 296/421] git plugin: Add `gpoat` alias --- plugins/git/git.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index d3d3f702a..46a1419ba 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -38,6 +38,7 @@ alias gm='git merge' compdef _git gm=git-merge alias grh='git reset HEAD' alias grhh='git reset HEAD --hard' +alias gpoat='git push origin --all && git push origin --tags' # Git and svn mix alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk' From 11a4c67f340b400a3d9cc9913b4f49d708e01a57 Mon Sep 17 00:00:00 2001 From: Tyler Cipriani Date: Mon, 17 Sep 2012 10:19:37 -0600 Subject: [PATCH 297/421] Added junkfood theme --- themes/junkfood.zsh-theme | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 themes/junkfood.zsh-theme diff --git a/themes/junkfood.zsh-theme b/themes/junkfood.zsh-theme new file mode 100644 index 000000000..a265f29f1 --- /dev/null +++ b/themes/junkfood.zsh-theme @@ -0,0 +1,34 @@ +# ------------------------------------------------------------------------ +# Tyler Cipriani +# oh-my-zsh theme +# Totally ripped off Dallas theme +# ------------------------------------------------------------------------ + +# Grab the current date (%W) and time (%t): +JUNKFOOD_TIME_="%{$fg_bold[white]%}#%t%{$fg_bold[white]%} – %{$fg_bold[yellow]%}%W%{$fg_bold[white]%} – %{$reset_color%}" + +# Grab the current machine name +JUNKFOOD_MACHINE_="%{$fg_bold[blue]%}%m%{$fg[white]%}:%{$reset_color%}" + +# Grab the current username +JUNKFOOD_CURRENT_USER_="%{$fg_bold[green]%}%n%{$reset_color%}" + +# Grab the current filepath, use shortcuts: ~/Desktop +# Append the current git branch, if in a git repository: ~aw@master +JUNKFOOD_LOCA_="%{$fg[cyan]%}%~\$(git_prompt_info)%{$reset_color%}" + +# For the git prompt, use a white @ and blue text for the branch name +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[white]%}@%{$fg_bold[white]%}" + +# Close it all off by resetting the color and styles. +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" + +# Do nothing if the branch is clean (no changes). +ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg_bold[green]%}✔" + +# Add 3 cyan ✗s if this branch is diiirrrty! Dirty branch! +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg_bold[red]%}✗✗✗" + +# Put it all together! +PROMPT="$JUNKFOOD_TIME_$JUNKFOOD_CURRENT_USER_@$JUNKFOOD_MACHINE_$JUNKFOOD_LOCA_ + " From 00e11991e0fec9e4db783550a1c849c48920f02a Mon Sep 17 00:00:00 2001 From: Tyler Cipriani Date: Mon, 17 Sep 2012 10:25:19 -0600 Subject: [PATCH 298/421] Added space to prompt --- themes/junkfood.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/junkfood.zsh-theme b/themes/junkfood.zsh-theme index a265f29f1..bfe3913de 100644 --- a/themes/junkfood.zsh-theme +++ b/themes/junkfood.zsh-theme @@ -5,7 +5,7 @@ # ------------------------------------------------------------------------ # Grab the current date (%W) and time (%t): -JUNKFOOD_TIME_="%{$fg_bold[white]%}#%t%{$fg_bold[white]%} – %{$fg_bold[yellow]%}%W%{$fg_bold[white]%} – %{$reset_color%}" +JUNKFOOD_TIME_="%{$fg_bold[white]%}# %t%{$fg_bold[white]%} – %{$fg_bold[yellow]%}%W%{$fg_bold[white]%} – %{$reset_color%}" # Grab the current machine name JUNKFOOD_MACHINE_="%{$fg_bold[blue]%}%m%{$fg[white]%}:%{$reset_color%}" From bf4157514f8880ac04ba328f7f1b74c34f1b39d7 Mon Sep 17 00:00:00 2001 From: Isaac Wolkerstorfer Date: Mon, 17 Sep 2012 11:44:25 -0500 Subject: [PATCH 299/421] Refactored theme --- themes/agnoster.zsh-theme | 96 +++++++++++++++++++++++++++++++-------- 1 file changed, 77 insertions(+), 19 deletions(-) diff --git a/themes/agnoster.zsh-theme b/themes/agnoster.zsh-theme index 15848979e..9cfcff3d0 100644 --- a/themes/agnoster.zsh-theme +++ b/themes/agnoster.zsh-theme @@ -1,28 +1,86 @@ -# Theme by [agnoster](https://github.com/agnoster) -# See https://gist.github.com/3712874 +### Segment drawing +# A few utility functions to make it easy and re-usable to draw segmented prompts -ZSH_THEME_GIT_PROMPT_DIRTY='±' - -function _git_prompt_info() { - ref=$(git symbolic-ref HEAD 2> /dev/null) || ref="➦ $(git show-ref --head -s --abbrev |head -n1 2> /dev/null)" - echo "${ref/refs\/heads\//⭠ }$(parse_git_dirty)" +CURRENT_BG='' +SEGMENT_SEPARATOR='⮀' +function segment_start() { + local bg=$1 + local fg=$2 + if [[ -n $CURRENT_BG && $bg != $CURRENT_BG ]]; then + echo -n " %{%K{$bg}%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR" + else + echo -n "%{%K{$bg}%}" + fi + [[ -n $fg ]] && fg="%F{$fg}" || fg="%f" + echo -n "%{$fg%} " + CURRENT_BG=$bg } -function _git_info() { - if $(git rev-parse --is-inside-work-tree >/dev/null 2>&1); then - local BG_COLOR=green - if [[ -n $(parse_git_dirty) ]]; then - BG_COLOR=yellow - fi - echo "%{%K{$BG_COLOR}%}⮀%{%F{black}%} $(_git_prompt_info) %{%F{$BG_COLOR}%K{blue}%}⮀" +function segment_stop() { + if [[ -n $CURRENT_BG ]]; then + echo -n " %{%k%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR" else - echo "%{%K{blue}%}⮀" + echo -n "%{%k%}" + fi + echo -n "%{%f%}" + CURRENT_BG='' +} + +### Prompt components +# Each component will draw itself, and hide itself if no information needs to be shown + +function prompt_context() { + local user=`whoami` + + if [[ ("$user" != "$DEFAULT_USER") || (-n "$SSH_CLIENT") ]]; then + segment_start black + #echo -n "%{%F{yellow}%}$user%{%F{gray}%}@%{%F{green}%}%m%{%f%}" + echo -n "%(!.%{%F{yellow}%}.)$user@%m" fi } -PROMPT_HOST='%{%b%F{gray}%K{black}%} %(?.%{%F{green}%}✔.%{%F{red}%}✘)%{%F{gray}%} %m %{%F{black}%}' -PROMPT_DIR='%{%F{white}%} %1~ ' -PROMPT_SU='%(!.%{%k%F{blue}%K{black}%}⮀%{%F{yellow}%} ⚡ %{%k%F{black}%}.%{%k%F{blue}%})⮀%{%f%k%b%}' +function prompt_git() { + if $(git rev-parse --is-inside-work-tree >/dev/null 2>&1); then + ZSH_THEME_GIT_PROMPT_DIRTY='±' + local dirty=$(parse_git_dirty) + local ref + ref=$(git symbolic-ref HEAD 2> /dev/null) || ref="➦ $(git show-ref --head -s --abbrev |head -n1 2> /dev/null)" + if [[ -n $dirty ]]; then + segment_start yellow black + else + segment_start green black + fi + echo -n "${ref/refs\/heads\//⭠ }$dirty" + fi +} + +function prompt_dir() { + segment_start blue white + echo -n '%~' +} + +function prompt_status() { + local symbols + symbols=() + [[ $RETVAL -ne 0 ]] && symbols+="%{%F{red}%}✘" + [[ $UID -eq 0 ]] && symbols+="%{%F{yellow}%}⚡" + jobs=$(jobs -l | wc -l) + [[ $jobs -gt 0 ]] && symbols+="%{%F{cyan}%}⚙" + if [[ -n "$symbols" ]]; then + segment_start black white + echo -n "${symbols}" + fi +} + +## Main prompt +function build_prompt() { + RETVAL=$? + prompt_status + prompt_context + prompt_dir + prompt_git + segment_stop +} PROMPT='%{%f%b%k%} -$PROMPT_HOST$(_git_info)$PROMPT_DIR$PROMPT_SU ' +$(build_prompt) ' From b534b3806357492a19b25841c7c0ad6a416f33aa Mon Sep 17 00:00:00 2001 From: Tyler Cipriani Date: Mon, 17 Sep 2012 12:16:06 -0600 Subject: [PATCH 300/421] Added fat arrow the theme --- themes/junkfood.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/junkfood.zsh-theme b/themes/junkfood.zsh-theme index bfe3913de..a3631a2b0 100644 --- a/themes/junkfood.zsh-theme +++ b/themes/junkfood.zsh-theme @@ -5,7 +5,7 @@ # ------------------------------------------------------------------------ # Grab the current date (%W) and time (%t): -JUNKFOOD_TIME_="%{$fg_bold[white]%}# %t%{$fg_bold[white]%} – %{$fg_bold[yellow]%}%W%{$fg_bold[white]%} – %{$reset_color%}" +JUNKFOOD_TIME_="%{$fg_bold[red]%}#➜%{$fg_bold[white]%}%t – %{$fg_bold[yellow]%}%W%{$fg_bold[white]%} – %{$reset_color%}" # Grab the current machine name JUNKFOOD_MACHINE_="%{$fg_bold[blue]%}%m%{$fg[white]%}:%{$reset_color%}" From a8d426087bf5f79ee4c8c05e8debca01b4af5fd5 Mon Sep 17 00:00:00 2001 From: Tyler Cipriani Date: Mon, 17 Sep 2012 14:12:09 -0600 Subject: [PATCH 301/421] modified spacing on junkfood theme --- themes/junkfood.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/junkfood.zsh-theme b/themes/junkfood.zsh-theme index a3631a2b0..bb250e19b 100644 --- a/themes/junkfood.zsh-theme +++ b/themes/junkfood.zsh-theme @@ -31,4 +31,4 @@ ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg_bold[red]%}✗✗✗" # Put it all together! PROMPT="$JUNKFOOD_TIME_$JUNKFOOD_CURRENT_USER_@$JUNKFOOD_MACHINE_$JUNKFOOD_LOCA_ - " + " From 8510ac002f1dec92f6e9e62809f3dc5493d4b842 Mon Sep 17 00:00:00 2001 From: Trae Robrock Date: Mon, 17 Sep 2012 19:05:42 -0700 Subject: [PATCH 302/421] Bundle exec puma also http://puma.io --- plugins/bundler/bundler.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh index 39b76ecdf..2305c4979 100644 --- a/plugins/bundler/bundler.plugin.zsh +++ b/plugins/bundler/bundler.plugin.zsh @@ -6,7 +6,7 @@ alias bu="bundle update" # The following is based on https://github.com/gma/bundler-exec -bundled_commands=(annotate cap capify cucumber foreman guard middleman nanoc rackup rainbows rake rspec ruby shotgun spec spork thin thor unicorn unicorn_rails) +bundled_commands=(annotate cap capify cucumber foreman guard middleman nanoc rackup rainbows rake rspec ruby shotgun spec spork thin thor unicorn unicorn_rails puma) ## Functions From 55c69017c501e30c8aa5a89104575f2863a26663 Mon Sep 17 00:00:00 2001 From: SK Date: Tue, 18 Sep 2012 22:10:11 +0700 Subject: [PATCH 303/421] Replace cp verbose with rsync Rsync can help track progress while file is copying --- plugins/cp/cp.plugin.zsh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 plugins/cp/cp.plugin.zsh diff --git a/plugins/cp/cp.plugin.zsh b/plugins/cp/cp.plugin.zsh new file mode 100644 index 000000000..7355a9990 --- /dev/null +++ b/plugins/cp/cp.plugin.zsh @@ -0,0 +1,14 @@ +#Show progress while file is copying + +# Rsync options are: +# -p - preserve permissions +# -o - preserve owner +# -g - preserve group +# -h - output in human-readable format +# --progress - display progress +# -b - instead of just overwriting an existing file, save the original +# --backup-dir=/tmp/rsync - move backup copies to "/tmp/rsync" +# -e /dev/null - only work on local files +# -- - everything after this is an argument, even if it looks like an option + +alias cpv="rsync -poghb --backup-dir=/tmp/rsync -e /dev/null --progress --" From 9510eb0e5a2ae7526ac66bec8e01c39322a8b254 Mon Sep 17 00:00:00 2001 From: Tyler Cipriani Date: Tue, 18 Sep 2012 11:13:36 -0600 Subject: [PATCH 304/421] Modified spacing one last time --- themes/junkfood.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/junkfood.zsh-theme b/themes/junkfood.zsh-theme index bb250e19b..5022a8d98 100644 --- a/themes/junkfood.zsh-theme +++ b/themes/junkfood.zsh-theme @@ -5,7 +5,7 @@ # ------------------------------------------------------------------------ # Grab the current date (%W) and time (%t): -JUNKFOOD_TIME_="%{$fg_bold[red]%}#➜%{$fg_bold[white]%}%t – %{$fg_bold[yellow]%}%W%{$fg_bold[white]%} – %{$reset_color%}" +JUNKFOOD_TIME_="%{$fg_bold[red]%}#➜ %{$fg_bold[white]%}%t – %{$fg_bold[yellow]%}%W%{$fg_bold[white]%} – %{$reset_color%}" # Grab the current machine name JUNKFOOD_MACHINE_="%{$fg_bold[blue]%}%m%{$fg[white]%}:%{$reset_color%}" From 8ecc252f0cfd21281be4e4549a8c86248e85a700 Mon Sep 17 00:00:00 2001 From: Tyler Cipriani Date: Wed, 19 Sep 2012 09:34:45 -0600 Subject: [PATCH 305/421] Last spacing adjustment...I swear --- themes/junkfood.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/junkfood.zsh-theme b/themes/junkfood.zsh-theme index 5022a8d98..bb250e19b 100644 --- a/themes/junkfood.zsh-theme +++ b/themes/junkfood.zsh-theme @@ -5,7 +5,7 @@ # ------------------------------------------------------------------------ # Grab the current date (%W) and time (%t): -JUNKFOOD_TIME_="%{$fg_bold[red]%}#➜ %{$fg_bold[white]%}%t – %{$fg_bold[yellow]%}%W%{$fg_bold[white]%} – %{$reset_color%}" +JUNKFOOD_TIME_="%{$fg_bold[red]%}#➜%{$fg_bold[white]%}%t – %{$fg_bold[yellow]%}%W%{$fg_bold[white]%} – %{$reset_color%}" # Grab the current machine name JUNKFOOD_MACHINE_="%{$fg_bold[blue]%}%m%{$fg[white]%}:%{$reset_color%}" From b609aa0e6c981f2039d777687cb01a84587f6edc Mon Sep 17 00:00:00 2001 From: Jim Hester Date: Thu, 20 Sep 2012 08:03:09 -0400 Subject: [PATCH 306/421] Fix to restore bindings after switching to vi-mode the vi-mode plugin destroys any bindings made before it is sourced due to the 'bindkey -v' call to switch to using vi-mode. This patch saves the bindings before invoking 'bindkey -v' then rebinds them afterwards, this fixes a number of outstanding issues due to people using vi-mode and having things in oh-my-zsh break due to the bindings being destroyed --- plugins/vi-mode/vi-mode.plugin.zsh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/plugins/vi-mode/vi-mode.plugin.zsh b/plugins/vi-mode/vi-mode.plugin.zsh index c47ab7211..d29eb1dda 100644 --- a/plugins/vi-mode/vi-mode.plugin.zsh +++ b/plugins/vi-mode/vi-mode.plugin.zsh @@ -5,7 +5,12 @@ function zle-line-init zle-keymap-select { zle -N zle-line-init zle -N zle-keymap-select +#changing mode clobbers the keybinds, so store the keybinds before and execute +#them after +binds=`bindkey -L` bindkey -v +for bind in ${(@f)binds}; do eval $bind; done +unset binds # if mode indicator wasn't setup by theme, define default if [[ "$MODE_INDICATOR" == "" ]]; then From baa187e4b903f39422a84b580e6e617ec3738e09 Mon Sep 17 00:00:00 2001 From: Jim Hester Date: Thu, 20 Sep 2012 08:23:58 -0400 Subject: [PATCH 307/421] Per directory history plugin This is a implementation of per directory history for zsh, some implementations of which exist in bash[1,2]. It also implements a per-directory-history-toggle-history function to change from using the directory history to using the global history. In both cases the history is always saved to both the global history and the directory history, so the toggle state will not effect the saved histories. Being able to switch between global and directory histories on the fly is a novel feature as far as I am aware. [1]: http://www.compbiome.com/2010/07/bash-per-directory-bash-history.html [2]: http://dieter.plaetinck.be/per_directory_bash --- .../per-directory-history.plugin.zsh | 149 ++++++++++++++++++ 1 file changed, 149 insertions(+) create mode 100644 plugins/per-directory-history/per-directory-history.plugin.zsh diff --git a/plugins/per-directory-history/per-directory-history.plugin.zsh b/plugins/per-directory-history/per-directory-history.plugin.zsh new file mode 100644 index 000000000..ce36db6af --- /dev/null +++ b/plugins/per-directory-history/per-directory-history.plugin.zsh @@ -0,0 +1,149 @@ +#!/usr/bin/env zsh +# +# This is a implementation of per directory history for zsh, some +# implementations of which exist in bash[1,2]. It also implements +# a per-directory-history-toggle-history function to change from using the +# directory history to using the global history. In both cases the history is +# always saved to both the global history and the directory history, so the +# toggle state will not effect the saved histories. Being able to switch +# between global and directory histories on the fly is a novel feature as far +# as I am aware. +# +#------------------------------------------------------------------------------- +# Configuration +#------------------------------------------------------------------------------- +# +# HISTORY_BASE a global variable that defines the base directory in which the +# directory histories are stored +# +#------------------------------------------------------------------------------- +# History +#------------------------------------------------------------------------------- +# +# The idea/inspiration for a per directory history is from Stewart MacArthur[1] +# and Dieter[2], the implementation idea is from Bart Schaefer on the the zsh +# mailing list[3]. The implementation is by Jim Hester in September 2012. +# +# [1]: http://www.compbiome.com/2010/07/bash-per-directory-bash-history.html +# [2]: http://dieter.plaetinck.be/per_directory_bash +# [3]: http://www.zsh.org/mla/users/1997/msg00226.html +# +################################################################################ +# +# Copyright (c) 2012 Jim Hester +# +# This software is provided 'as-is', without any express or implied warranty. +# In no event will the authors be held liable for any damages arising from the +# use of this software. +# +# Permission is granted to anyone to use this software for any purpose, +# including commercial applications, and to alter it and redistribute it +# freely, subject to the following restrictions: +# +# 1. The origin of this software must not be misrepresented; you must not claim +# that you wrote the original software. If you use this software in a product, +# an acknowledgment in the product documentation would be appreciated but is +# not required. +# +# 2. Altered source versions must be plainly marked as such, and must not be +# misrepresented as being the original software. +# +# 3. This notice may not be removed or altered from any source distribution.. +# +################################################################################ + +#------------------------------------------------------------------------------- +# configuration, the base under which the directory histories are stored +#------------------------------------------------------------------------------- + +[[ -z $HISTORY_BASE ]] && HISTORY_BASE="$HOME/.directory_history" + +#------------------------------------------------------------------------------- +# toggle global/directory history used for searching - ctrl-G by default +#------------------------------------------------------------------------------- + +function per-directory-history-toggle-history() { + if [[ $_per_directory_history_is_global == true ]]; then + _per-directory-history-set-directory-history + echo "using local history\n" + else + _per-directory-history-set-global-history + echo "using global history\n" + fi + zle reset-prompt +} + +autoload per-directory-history-toggle-history +zle -N per-directory-history-toggle-history +bindkey '^G' per-directory-history-toggle-history + +#------------------------------------------------------------------------------- +# implementation details +#------------------------------------------------------------------------------- + +_per_directory_history_global=$HISTFILE +_per_directory_history_directory="$HISTORY_BASE${PWD:A}/history" + +function _per-directory-history-change-directory() { + _per_directory_history_directory="$HISTORY_BASE${PWD:A}/history" + mkdir -p ${_per_directory_history_directory:h} + if [[ $_per_directory_history_is_global == false ]]; then + #save to the global history + fc -AI $_per_directory_history_global + #save history to previous file + local prev="$HISTORY_BASE${OLDPWD:A}/history" + mkdir -p ${prev:h} + fc -AI $prev + + #discard previous directory's history + local original_histsize=$HISTSIZE + HISTSIZE=0 + HISTSIZE=$original_histsize + + #read history in new file + if [[ -e $_per_directory_history_directory ]]; then + fc -R $_per_directory_history_directory + fi + fi +} + +function _per-directory-history-addhistory() { + print -sr -- ${1%%$'\n'} + fc -p $_per_directory_history_directory +} + + +function _per-directory-history-set-directory-history() { + if [[ $_per_directory_history_is_global == true ]]; then + fc -AI $_per_directory_history_global + local original_histsize=$HISTSIZE + HISTSIZE=0 + HISTSIZE=$original_histsize + if [[ -e "$_per_directory_history_directory" ]]; then + fc -R "$_per_directory_history_directory" + fi + fi + _per_directory_history_is_global=false +} +function _per-directory-history-set-global-history() { + if [[ $_per_directory_history_is_global == false ]]; then + fc -AI $_per_directory_history_directory + local original_histsize=$HISTSIZE + HISTSIZE=0 + HISTSIZE=$original_histsize + if [[ -e "$_per_directory_history_global" ]]; then + fc -R "$_per_directory_history_global" + fi + fi + _per_directory_history_is_global=true +} + + +#add functions to the exec list for chpwd and zshaddhistory +chpwd_functions=(${chpwd_functions[@]} "_per-directory-history-change-directory") +zshaddhistory_functions=(${zshaddhistory_functions[@]} "_per-directory-history-addhistory") + +#start in directory mode +mkdir -p ${_per_directory_history_directory:h} +_per_directory_history_is_global=true +_per-directory-history-set-directory-history From aeadd7371b244468aadf81a48e6009a4aa612f23 Mon Sep 17 00:00:00 2001 From: Jim Hester Date: Thu, 20 Sep 2012 08:29:05 -0400 Subject: [PATCH 308/421] Colemak plugin a plugin for useing the colemak[1] keyboard layout and vi-mode in zsh, rotates some keys around in vi command mode so that the physical hjkl keys are still used for movement, all the rotated keys are either in colemak's location or qwerty's location, so it is easy to pick up [1] www.colemak.com --- plugins/colemak/colemak-less | 6 ++++++ plugins/colemak/colemak.plugin.zsh | 22 ++++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 plugins/colemak/colemak-less create mode 100644 plugins/colemak/colemak.plugin.zsh diff --git a/plugins/colemak/colemak-less b/plugins/colemak/colemak-less new file mode 100644 index 000000000..e4ca4facd --- /dev/null +++ b/plugins/colemak/colemak-less @@ -0,0 +1,6 @@ +n forw-line +e back-line +k repeat-search +\ek repeat-search-all +K reverse-search +\eK reverse-search-all diff --git a/plugins/colemak/colemak.plugin.zsh b/plugins/colemak/colemak.plugin.zsh new file mode 100644 index 000000000..34d42c280 --- /dev/null +++ b/plugins/colemak/colemak.plugin.zsh @@ -0,0 +1,22 @@ +# ctrl-j newline +bindkey '^n' accept-line +bindkey -a '^n' accept-line + +# another rotation to match qwerty +bindkey -a 'n' down-line-or-history +bindkey -a 'e' up-line-or-history +bindkey -a 'i' vi-forward-char + +# make qwerty +bindkey -a 'k' vi-repeat-search +bindkey -a 'K' vi-rev-repeat-search +bindkey -a 'u' vi-insert +bindkey -a 'U' vi-insert-bol +bindkey -a 'l' vi-undo-change +bindkey -a 'N' vi-join + +# spare +bindkey -a 'j' vi-forward-word-end +bindkey -a 'J' vi-forward-blank-word-end + +lesskey $ZSH_CUSTOM/plugins/colemak/colemak-less From 00bff0a9963d4b36e6afc968449781c727bfef3b Mon Sep 17 00:00:00 2001 From: James Smith Date: Thu, 20 Sep 2012 19:35:09 -0700 Subject: [PATCH 309/421] Red prompt for remote hosts --- themes/intheloop.zsh-theme | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/themes/intheloop.zsh-theme b/themes/intheloop.zsh-theme index c4736422d..85b4a4d95 100644 --- a/themes/intheloop.zsh-theme +++ b/themes/intheloop.zsh-theme @@ -3,10 +3,16 @@ local return_status="%{$fg[red]%}%(?..⏎)%{$reset_color%}" +local host_color="green" +if [ -n "$SSH_CLIENT" ]; then + local host_color="red" +fi + PROMPT=' -%{$fg_bold[grey]%}[%{$reset_color%}%{$fg_bold[green]%}%n@%m%{$reset_color%}%{$fg_bold[grey]%}]%{$reset_color%} %{$fg_bold[blue]%}%10c%{$reset_color%} $(git_prompt_info) $(git_remote_status) +%{$fg_bold[grey]%}[%{$reset_color%}%{$fg_bold[${host_color}]%}%n@%m%{$reset_color%}%{$fg_bold[grey]%}]%{$reset_color%} %{$fg_bold[blue]%}%10c%{$reset_color%} $(git_prompt_info) $(git_remote_status) %{$fg_bold[cyan]%}❯%{$reset_color%} ' + RPROMPT='${return_status}%{$reset_color%}' ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[grey]%}(%{$fg[red]%}" From 7284e6b397712dfff16a740ea12d1015b26f203d Mon Sep 17 00:00:00 2001 From: Aviad Reich Date: Fri, 21 Sep 2012 08:08:53 +0300 Subject: [PATCH 310/421] added autojump plugin support for mac os x + port --- plugins/autojump/autojump.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/autojump/autojump.plugin.zsh b/plugins/autojump/autojump.plugin.zsh index 6f0edb062..d367863b8 100644 --- a/plugins/autojump/autojump.plugin.zsh +++ b/plugins/autojump/autojump.plugin.zsh @@ -3,6 +3,8 @@ if [ $commands[autojump] ]; then # check if autojump is installed . /usr/share/autojump/autojump.zsh elif [ -f /etc/profile.d/autojump.zsh ]; then # manual installation . /etc/profile.d/autojump.zsh + elif [ -f /opt/local/etc/profile.d/autojump.zsh ]; then # mac os x with ports + . /opt/local/etc/profile.d/autojump.zsh elif [ $commands[brew] -a -f `brew --prefix`/etc/autojump ]; then # mac os x with brew . `brew --prefix`/etc/autojump fi From cc831508d7c2e839e1c4effe31ac2d92f2741f94 Mon Sep 17 00:00:00 2001 From: Jim Hester Date: Fri, 21 Sep 2012 10:19:39 -0400 Subject: [PATCH 311/421] Use HISTFILE evironment variable directly rather than copying it Use the HISTFILE environment variable in place of copying it to _per_directory_history_global so that users can change the environment variable after sourcing per-directory-history and have the global variable set correctly --- .../per-directory-history.plugin.zsh | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/plugins/per-directory-history/per-directory-history.plugin.zsh b/plugins/per-directory-history/per-directory-history.plugin.zsh index ce36db6af..22383b8b9 100644 --- a/plugins/per-directory-history/per-directory-history.plugin.zsh +++ b/plugins/per-directory-history/per-directory-history.plugin.zsh @@ -81,7 +81,6 @@ bindkey '^G' per-directory-history-toggle-history # implementation details #------------------------------------------------------------------------------- -_per_directory_history_global=$HISTFILE _per_directory_history_directory="$HISTORY_BASE${PWD:A}/history" function _per-directory-history-change-directory() { @@ -89,7 +88,7 @@ function _per-directory-history-change-directory() { mkdir -p ${_per_directory_history_directory:h} if [[ $_per_directory_history_is_global == false ]]; then #save to the global history - fc -AI $_per_directory_history_global + fc -AI $HISTFILE #save history to previous file local prev="$HISTORY_BASE${OLDPWD:A}/history" mkdir -p ${prev:h} @@ -115,7 +114,7 @@ function _per-directory-history-addhistory() { function _per-directory-history-set-directory-history() { if [[ $_per_directory_history_is_global == true ]]; then - fc -AI $_per_directory_history_global + fc -AI $HISTFILE local original_histsize=$HISTSIZE HISTSIZE=0 HISTSIZE=$original_histsize @@ -131,8 +130,8 @@ function _per-directory-history-set-global-history() { local original_histsize=$HISTSIZE HISTSIZE=0 HISTSIZE=$original_histsize - if [[ -e "$_per_directory_history_global" ]]; then - fc -R "$_per_directory_history_global" + if [[ -e "$HISTFILE" ]]; then + fc -R "$HISTFILE" fi fi _per_directory_history_is_global=true From 6e85ff5b44e81f5b9d743b6ba1df7ed7b62dc2df Mon Sep 17 00:00:00 2001 From: Isaac Wolkerstorfer Date: Tue, 25 Sep 2012 18:35:08 -0500 Subject: [PATCH 312/421] Updated documentation for agnoster theme --- themes/agnoster.zsh-theme | 99 +++++++++++++++++++++++++-------------- 1 file changed, 64 insertions(+), 35 deletions(-) diff --git a/themes/agnoster.zsh-theme b/themes/agnoster.zsh-theme index 9cfcff3d0..71bc25fc2 100644 --- a/themes/agnoster.zsh-theme +++ b/themes/agnoster.zsh-theme @@ -1,22 +1,51 @@ +# vim:ft=zsh ts=2 sw=2 sts=2 +# +# agnoster's Theme +# A Powerline-inspired theme for ZSH +# +# # README +# +# In order for this theme to render correctly, you will need a +# [Powerline-patched font](https://gist.github.com/1595572). +# +# In addition, I recommend the +# [Solarized theme](https://github.com/altercation/solarized/) and, if you're +# using it on Mac OS X, [iTerm 2](http://www.iterm2.com/) over Terminal.app - +# it has significantly better color fidelity. +# +# # Goals +# +# The aim of this theme is to only show you *relevant* information. Like most +# prompts, it will only show git information when in a git working directory. +# However, it goes a step further: everything from the current user and +# hostname to whether the last call exited with an error to whether background +# jobs are running in this shell will all be displayed automatically when +# appropriate. + ### Segment drawing # A few utility functions to make it easy and re-usable to draw segmented prompts -CURRENT_BG='' +CURRENT_BG='NONE' SEGMENT_SEPARATOR='⮀' -function segment_start() { - local bg=$1 - local fg=$2 - if [[ -n $CURRENT_BG && $bg != $CURRENT_BG ]]; then - echo -n " %{%K{$bg}%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR" + +# Begin a segment +# Takes two arguments, background and foreground. Both can be omitted, +# rendering default background/foreground. +prompt_segment() { + local bg fg + [[ -n $1 ]] && bg="%K{$1}" || bg="%k" + [[ -n $2 ]] && fg="%F{$2}" || fg="%f" + if [[ $CURRENT_BG != 'NONE' && $1 != $CURRENT_BG ]]; then + echo -n " %{$bg%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR%{$fg%} " else - echo -n "%{%K{$bg}%}" + echo -n "%{$bg%}%{$fg%} " fi - [[ -n $fg ]] && fg="%F{$fg}" || fg="%f" - echo -n "%{$fg%} " - CURRENT_BG=$bg + CURRENT_BG=$1 + [[ -n $3 ]] && echo -n $3 } -function segment_stop() { +# End the prompt, closing any open segments +prompt_end() { if [[ -n $CURRENT_BG ]]; then echo -n " %{%k%F{$CURRENT_BG}%}$SEGMENT_SEPARATOR" else @@ -29,58 +58,58 @@ function segment_stop() { ### Prompt components # Each component will draw itself, and hide itself if no information needs to be shown -function prompt_context() { +# Context: user@hostname (who am I and where am I) +prompt_context() { local user=`whoami` - if [[ ("$user" != "$DEFAULT_USER") || (-n "$SSH_CLIENT") ]]; then - segment_start black - #echo -n "%{%F{yellow}%}$user%{%F{gray}%}@%{%F{green}%}%m%{%f%}" - echo -n "%(!.%{%F{yellow}%}.)$user@%m" + if [[ "$user" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then + prompt_segment black default "%(!.%{%F{yellow}%}.)$user@%m" fi } -function prompt_git() { +# Git: branch/detached head, dirty status +prompt_git() { + local ref dirty if $(git rev-parse --is-inside-work-tree >/dev/null 2>&1); then ZSH_THEME_GIT_PROMPT_DIRTY='±' - local dirty=$(parse_git_dirty) - local ref + dirty=$(parse_git_dirty) ref=$(git symbolic-ref HEAD 2> /dev/null) || ref="➦ $(git show-ref --head -s --abbrev |head -n1 2> /dev/null)" if [[ -n $dirty ]]; then - segment_start yellow black + prompt_segment yellow black else - segment_start green black + prompt_segment green black fi echo -n "${ref/refs\/heads\//⭠ }$dirty" fi } -function prompt_dir() { - segment_start blue white - echo -n '%~' +# Dir: current working directory +prompt_dir() { + prompt_segment blue black '%~' } -function prompt_status() { +# Status: +# - was there an error +# - am I root +# - are there background jobs? +prompt_status() { local symbols symbols=() [[ $RETVAL -ne 0 ]] && symbols+="%{%F{red}%}✘" [[ $UID -eq 0 ]] && symbols+="%{%F{yellow}%}⚡" - jobs=$(jobs -l | wc -l) - [[ $jobs -gt 0 ]] && symbols+="%{%F{cyan}%}⚙" - if [[ -n "$symbols" ]]; then - segment_start black white - echo -n "${symbols}" - fi + [[ $(jobs -l | wc -l) -gt 0 ]] && symbols+="%{%F{cyan}%}⚙" + + [[ -n "$symbols" ]] && prompt_segment black default "$symbols" } ## Main prompt -function build_prompt() { +build_prompt() { RETVAL=$? prompt_status prompt_context prompt_dir prompt_git - segment_stop + prompt_end } -PROMPT='%{%f%b%k%} -$(build_prompt) ' +PROMPT='%{%f%b%k%}$(build_prompt) ' From b207792f30f523e2fc82a70e75893bf1124bf7a8 Mon Sep 17 00:00:00 2001 From: Isaac Wolkerstorfer Date: Tue, 25 Sep 2012 19:06:13 -0500 Subject: [PATCH 313/421] Add link to gist --- themes/agnoster.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/agnoster.zsh-theme b/themes/agnoster.zsh-theme index 71bc25fc2..c3107c06c 100644 --- a/themes/agnoster.zsh-theme +++ b/themes/agnoster.zsh-theme @@ -1,6 +1,6 @@ # vim:ft=zsh ts=2 sw=2 sts=2 # -# agnoster's Theme +# agnoster's Theme - https://gist.github.com/3712874 # A Powerline-inspired theme for ZSH # # # README From 5e0fd9bb9f8f11da1d7562f5e867a28706accb57 Mon Sep 17 00:00:00 2001 From: Martin Foot Date: Wed, 26 Sep 2012 14:16:15 +0100 Subject: [PATCH 314/421] Add user-local installation autojump zsh plugin source If you manually install autojump as advised by the autojump README by running the install.sh script, it will install by default to $HOME/.autojump. Add an extra case in the zsh autojump plugin to find the new file and stop a syntax error in the else clause every time a new zsh starts (running brew when brew does not exist). --- plugins/autojump/autojump.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/autojump/autojump.plugin.zsh b/plugins/autojump/autojump.plugin.zsh index d367863b8..ca0090560 100644 --- a/plugins/autojump/autojump.plugin.zsh +++ b/plugins/autojump/autojump.plugin.zsh @@ -3,6 +3,8 @@ if [ $commands[autojump] ]; then # check if autojump is installed . /usr/share/autojump/autojump.zsh elif [ -f /etc/profile.d/autojump.zsh ]; then # manual installation . /etc/profile.d/autojump.zsh + elif [ -f $HOME/.autojump/etc/profile.d/autojump.zsh ]; then # manual user-local installation + . $HOME/.autojump/etc/profile.d/autojump.zsh elif [ -f /opt/local/etc/profile.d/autojump.zsh ]; then # mac os x with ports . /opt/local/etc/profile.d/autojump.zsh elif [ $commands[brew] -a -f `brew --prefix`/etc/autojump ]; then # mac os x with brew From 3d1b788d8ad3b4c407d3c752de15318cf57cf03e Mon Sep 17 00:00:00 2001 From: Trae Robrock Date: Tue, 8 Nov 2011 12:24:14 -0800 Subject: [PATCH 315/421] Fixing the rvm_prompt_info command, now it will not show empty parens if no rvm is currently being used --- lib/rvm.zsh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/rvm.zsh b/lib/rvm.zsh index 597be1b33..dbfaf8796 100644 --- a/lib/rvm.zsh +++ b/lib/rvm.zsh @@ -1,6 +1,10 @@ # get the name of the branch we are on function rvm_prompt_info() { ruby_version=$(~/.rvm/bin/rvm-prompt 2> /dev/null) || return + if [ -z $ruby_version ] + then + return + fi echo "($ruby_version)" } From a7fb6680789c0a45c23539f9cce623a920ae143e Mon Sep 17 00:00:00 2001 From: Trae Robrock Date: Wed, 26 Sep 2012 13:57:38 -0700 Subject: [PATCH 316/421] Make rvm prompt function a bit cleaner --- lib/rvm.zsh | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/lib/rvm.zsh b/lib/rvm.zsh index dbfaf8796..cb870a9bb 100644 --- a/lib/rvm.zsh +++ b/lib/rvm.zsh @@ -1,11 +1,5 @@ # get the name of the branch we are on function rvm_prompt_info() { ruby_version=$(~/.rvm/bin/rvm-prompt 2> /dev/null) || return - if [ -z $ruby_version ] - then - return - fi - echo "($ruby_version)" + [[ ! -z $ruby_version ]] && echo "($ruby_version)" } - - From c7c647d8039987b802509519ffa631818cd1d194 Mon Sep 17 00:00:00 2001 From: Dominik Bamberger Date: Thu, 27 Sep 2012 11:51:16 +0200 Subject: [PATCH 317/421] Add zeus plugin Includes aliases for zeus (https://github.com/burke/zeus) Also there is a README.md that list all aliases, ready to copy into the wiki. --- plugins/zeus/README.md | 41 +++++++++++++++++++++++++ plugins/zeus/zeus.plugin.zsh | 58 ++++++++++++++++++++++++++++++++++++ 2 files changed, 99 insertions(+) create mode 100644 plugins/zeus/README.md create mode 100644 plugins/zeus/zeus.plugin.zsh diff --git a/plugins/zeus/README.md b/plugins/zeus/README.md new file mode 100644 index 000000000..2cb85cec8 --- /dev/null +++ b/plugins/zeus/README.md @@ -0,0 +1,41 @@ +## zeus +**Maintainer:** [b4mboo](https://github.com/b4mboo) + +* `zi` aliases `zeus init` +* `zinit` aliases `zeus init` + +* `zs` aliases `zeus start` +* `ztart` aliases `zeus start` + +* `zc` aliases `zeus console` +* `zonsole` aliases `zeus console` + +* `zsr` aliases `zeus server` +* `zerver` aliases `zeus server` + +* `zr` aliases `zeus rake` +* `zake` aliases `zeus rake` + +* `zg` aliases `zeus generate` +* `zenerate` aliases `zeus generate` + +* `zrn` aliases `zeus runner` +* `zunner` aliases `zeus runner` + +* `zcu` aliases `zeus cucumber` +* `zucumber` aliases `zeus cucumber` + +* `zt` aliases `zeus test` +* `zest` aliases `zeus test` + +* `zu` aliases `zeus test/units/*` +* `zunits` aliases `zeus test/units/*` + +* `zf` aliases `zeus test/functional/*` +* `zunctional` aliases `zeus test/functional/*` + +* `za` aliases `zeus test test/units/*; zeus test test/functional/; zeus cucumber` +* `zall` aliases `zeus test test/units/*; zeus test test/functional/; zeus cucumber` + +* `zsw` aliases `rm .zeus.sock` +* `zweep` aliases `rm .zeus.sock` diff --git a/plugins/zeus/zeus.plugin.zsh b/plugins/zeus/zeus.plugin.zsh new file mode 100644 index 000000000..48392f541 --- /dev/null +++ b/plugins/zeus/zeus.plugin.zsh @@ -0,0 +1,58 @@ +# Some aliases for zeus. (See: https://github.com/burke/zeus) +# Zeus preloads your Rails environment and forks that process whenever +# needed. This effectively speeds up Rails' boot process to under 1 sec. + +# Always use bundler. +# Rails depends on bundler, so we can be pretty sure, that there are no +# problems with this command. For all the other aliases I provided an +# alternative, in case people have conflicts with other plugins (e.g. suse). +alias zeus='bundle exec zeus' + +# Init +alias zi='zeus init' +alias zinit='zeus init' + +# Start +alias zs='zeus start' +alias ztart='zeus start' + +# Console +alias zc='zeus console' +alias zonsole='zeus console' + +# Server +alias zsr='zeus server' +alias zerver='zeus server' + +# Rake +alias zr='zeus rake' +alias zake='zeus rake' + +# Generate +alias zg='zeus generate' +alias zenerate='zeus generate' + +# Runner +alias zrn='zeus runner' +alias zunner='zeus runner' + +# Cucumber +alias zcu='zeus cucumber' +alias zucumber='zeus cucumber' + +# Test +alias zt='zeus test' +alias zest='zeus test' + +alias zu='zeus test/units/*' +alias zunits='zeus test/units/*' + +alias zf='zeus test/functional/*' +alias zunctional='zeus test/functional/*' + +alias za='zeus test test/units/*; zeus test test/functional/; zeus cucumber' +alias zall='zeus test test/units/*; zeus test test/functional/; zeus cucumber' + +# Clean up crashed zeus instances. +alias zsw='rm .zeus.sock' +alias zweep='rm .zeus.sock' From 2bbe6aba8f90dabdb3f7e2caaf12b6a3ecaf5f1f Mon Sep 17 00:00:00 2001 From: Paul Redmond Date: Fri, 28 Sep 2012 22:41:30 -0700 Subject: [PATCH 318/421] Jira ticket shortcut to browse existing issues or create a new issue. --- plugins/jira/jira.plugin.zsh | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 plugins/jira/jira.plugin.zsh diff --git a/plugins/jira/jira.plugin.zsh b/plugins/jira/jira.plugin.zsh new file mode 100644 index 000000000..c8b17d71f --- /dev/null +++ b/plugins/jira/jira.plugin.zsh @@ -0,0 +1,22 @@ +# To use: add a .jira-url file containing your +# Jira project's base url in the root of your project. +# Example: https://name.jira.com +# Usage: jira # opens a new issue +# jira ABC-123 # Opens an existing issue +open_jira_issue () { + if [ ! -f .jira-url ]; then + echo "There is no .jira-url file in the current directory or your home folder..." + return 0; + else + jira_url=$(cat .jira-url); + if [ -z "$1" ]; then + echo "Opening new issue"; + `open $jira_url/secure/CreateIssue!default.jspa`; + else + echo "Opening issue #$1"; + `open $jira_url/issues/$1`; + fi + fi +} + +alias jira='open_jira_issue' From 2d660161027a5c6a6876520dd264df7fdab7c044 Mon Sep 17 00:00:00 2001 From: Paul Redmond Date: Fri, 28 Sep 2012 22:48:18 -0700 Subject: [PATCH 319/421] Clean up doc --- plugins/jira/jira.plugin.zsh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/jira/jira.plugin.zsh b/plugins/jira/jira.plugin.zsh index c8b17d71f..d19296cb6 100644 --- a/plugins/jira/jira.plugin.zsh +++ b/plugins/jira/jira.plugin.zsh @@ -1,6 +1,6 @@ -# To use: add a .jira-url file containing your -# Jira project's base url in the root of your project. -# Example: https://name.jira.com +# To use: add a .jira-url file in the base of your project +# Setup: cd to/my/project + echo "https://name.jira.com" >> .jira-url # Usage: jira # opens a new issue # jira ABC-123 # Opens an existing issue open_jira_issue () { From b559f2f22127b3bf7f30dd5221fd8cb5ff3808fc Mon Sep 17 00:00:00 2001 From: Paul Redmond Date: Fri, 28 Sep 2012 23:00:15 -0700 Subject: [PATCH 320/421] Correct error message. --- plugins/jira/jira.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/jira/jira.plugin.zsh b/plugins/jira/jira.plugin.zsh index d19296cb6..f63743c9c 100644 --- a/plugins/jira/jira.plugin.zsh +++ b/plugins/jira/jira.plugin.zsh @@ -5,7 +5,7 @@ # jira ABC-123 # Opens an existing issue open_jira_issue () { if [ ! -f .jira-url ]; then - echo "There is no .jira-url file in the current directory or your home folder..." + echo "There is no .jira-url file in the current directory..." return 0; else jira_url=$(cat .jira-url); From b7383b097e2b1dc6aaec2c906e7d2031f9446fba Mon Sep 17 00:00:00 2001 From: Dominik Bamberger Date: Mon, 1 Oct 2012 16:24:50 +0200 Subject: [PATCH 321/421] look for test/unit instead of test/units. #typo --- plugins/zeus/zeus.plugin.zsh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/zeus/zeus.plugin.zsh b/plugins/zeus/zeus.plugin.zsh index 48392f541..65fd88d9f 100644 --- a/plugins/zeus/zeus.plugin.zsh +++ b/plugins/zeus/zeus.plugin.zsh @@ -44,14 +44,14 @@ alias zucumber='zeus cucumber' alias zt='zeus test' alias zest='zeus test' -alias zu='zeus test/units/*' -alias zunits='zeus test/units/*' +alias zu='zeus test/unit/*' +alias zunits='zeus test/unit/*' alias zf='zeus test/functional/*' alias zunctional='zeus test/functional/*' -alias za='zeus test test/units/*; zeus test test/functional/; zeus cucumber' -alias zall='zeus test test/units/*; zeus test test/functional/; zeus cucumber' +alias za='zeus test test/unit/*; zeus test test/functional/; zeus cucumber' +alias zall='zeus test test/unit/*; zeus test test/functional/; zeus cucumber' # Clean up crashed zeus instances. alias zsw='rm .zeus.sock' From 58d904a28960f6962eb27a6105e83d57cb553aba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Augusto=20Rocha=20Elesb=C3=A3o?= Date: Mon, 1 Oct 2012 11:29:06 -0300 Subject: [PATCH 322/421] Added systemd plugin with aliases for systemctl commands. --- plugins/systemd/systemd.plugin.zsh | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 plugins/systemd/systemd.plugin.zsh diff --git a/plugins/systemd/systemd.plugin.zsh b/plugins/systemd/systemd.plugin.zsh new file mode 100644 index 000000000..7d3db0f8e --- /dev/null +++ b/plugins/systemd/systemd.plugin.zsh @@ -0,0 +1,11 @@ +user_commands=( + list-units is-active status show help list-unit-files + is-enabled list-jobs show-environment) + +sudo_commands=( + start stop reload restart try-restart isolate kill + reset-failed enable disable reenable preset mask unmask + link load cancel set-environment unset-environment) + +for c in $user_commands; do; alias sc-$c="systemctl $c"; done +for c in $sudo_commands; do; alias sc-$c="sudo systemctl $c"; done From 9acfaee2567bcbe8dcd3dc73a8d40c0983766fb6 Mon Sep 17 00:00:00 2001 From: Paul Redmond Date: Mon, 1 Oct 2012 09:27:52 -0700 Subject: [PATCH 323/421] Missing comment line --- plugins/jira/jira.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/jira/jira.plugin.zsh b/plugins/jira/jira.plugin.zsh index f63743c9c..636e4619e 100644 --- a/plugins/jira/jira.plugin.zsh +++ b/plugins/jira/jira.plugin.zsh @@ -1,6 +1,6 @@ # To use: add a .jira-url file in the base of your project # Setup: cd to/my/project - echo "https://name.jira.com" >> .jira-url +# echo "https://name.jira.com" >> .jira-url # Usage: jira # opens a new issue # jira ABC-123 # Opens an existing issue open_jira_issue () { From b932312ab78b7f422f501d03aaa577440bcd3a0c Mon Sep 17 00:00:00 2001 From: Dominik Bamberger Date: Tue, 2 Oct 2012 18:10:40 +0200 Subject: [PATCH 324/421] fix test aliases --- plugins/zeus/zeus.plugin.zsh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/zeus/zeus.plugin.zsh b/plugins/zeus/zeus.plugin.zsh index 65fd88d9f..2fc7e1ebf 100644 --- a/plugins/zeus/zeus.plugin.zsh +++ b/plugins/zeus/zeus.plugin.zsh @@ -44,11 +44,11 @@ alias zucumber='zeus cucumber' alias zt='zeus test' alias zest='zeus test' -alias zu='zeus test/unit/*' -alias zunits='zeus test/unit/*' +alias zu='zeus test test/unit/*' +alias zunits='zeus test test/unit/*' -alias zf='zeus test/functional/*' -alias zunctional='zeus test/functional/*' +alias zf='zeus test test/functional/*' +alias zunctional='zeus test test/functional/*' alias za='zeus test test/unit/*; zeus test test/functional/; zeus cucumber' alias zall='zeus test test/unit/*; zeus test test/functional/; zeus cucumber' From 43bd46b780cdf60b318f452e40b893ae18e77c41 Mon Sep 17 00:00:00 2001 From: Markus Scherer Date: Wed, 3 Oct 2012 17:18:14 +0200 Subject: [PATCH 325/421] fix title setting bug in xterm and urxvt Before this patch, commands containing %-signs set the title wrong (urxvt and xterm) [1] and produce strange output in urxvt [2]. test for bug 1: > sleep 10 && echo % sets title to "sleep 10 && echo %<<" > sleep 10 && echo %f doesn't change the title at all test for bug 2 (only urxvt): > echo %f 39m%f ^^^^^----- output --- lib/termsupport.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index e26fef6d3..4701e46c5 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -27,7 +27,7 @@ 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%<<" + title "$CMD" "%100>...>${2:gs/%/%%}%<<" } autoload -U add-zsh-hook From e3de97ca89368bb433034431778a29f7f09db6c2 Mon Sep 17 00:00:00 2001 From: Daniel Gomes Date: Fri, 5 Oct 2012 21:12:40 +0100 Subject: [PATCH 326/421] added two aliases to Symfony2 Plugin --- plugins/symfony2/symfony2.plugin.zsh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/symfony2/symfony2.plugin.zsh b/plugins/symfony2/symfony2.plugin.zsh index 644266841..223401298 100644 --- a/plugins/symfony2/symfony2.plugin.zsh +++ b/plugins/symfony2/symfony2.plugin.zsh @@ -10,4 +10,8 @@ _symfony2 () { fi } -compdef _symfony2 app/console \ No newline at end of file +compdef _symfony2 app/console + +#Alias +alias sf2='php app/console' +alias sf2clear='php app/console cache:clear' \ No newline at end of file From 6630919bce0ec9eb5ad33c26a32cd5f06529d570 Mon Sep 17 00:00:00 2001 From: Daniel Gomes Date: Fri, 5 Oct 2012 21:13:10 +0100 Subject: [PATCH 327/421] added Composer completition and aliases --- plugins/composer/composer.plugin.zsh | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 plugins/composer/composer.plugin.zsh diff --git a/plugins/composer/composer.plugin.zsh b/plugins/composer/composer.plugin.zsh new file mode 100644 index 000000000..a054ae2c5 --- /dev/null +++ b/plugins/composer/composer.plugin.zsh @@ -0,0 +1,28 @@ +# ------------------------------------------------------------------------------ +# FILE: composer.plugin.zsh +# DESCRIPTION: oh-my-zsh composer plugin file. +# AUTHOR: Daniel Gomes (me@danielcsgomes.com) +# VERSION: 1.0.0 +# ------------------------------------------------------------------------------ + +# Composer basic command completion +_composer_get_command_list () { + composer --no-ansi | sed "1,/Available commands/d" | awk '/^ [a-z]+/ { print $1 }' +} + +_composer () { + if [ -f composer.json ]; then + compadd `_composer_get_command_list` + fi +} + +compdef _composer composer + +# Aliases +alias c='composer' +alias csu='composer self-update' +alias cu='composer update' +alias ci='composer install' +alias ccp='composer create-project' + +alias cget='curl -s https://getcomposer.org/installer | php' \ No newline at end of file From 9365fd03f62854c48bc06388542ba4933eb067db Mon Sep 17 00:00:00 2001 From: Daniel Gomes Date: Fri, 5 Oct 2012 21:14:44 +0100 Subject: [PATCH 328/421] added a comment to the composer installation alias --- plugins/composer/composer.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/composer/composer.plugin.zsh b/plugins/composer/composer.plugin.zsh index a054ae2c5..c9b762d07 100644 --- a/plugins/composer/composer.plugin.zsh +++ b/plugins/composer/composer.plugin.zsh @@ -25,4 +25,5 @@ alias cu='composer update' alias ci='composer install' alias ccp='composer create-project' +# install composer in the current directory alias cget='curl -s https://getcomposer.org/installer | php' \ No newline at end of file From a97e117281fa495bf13b7aa4179647cb9c7f5c01 Mon Sep 17 00:00:00 2001 From: Ian Chesal Date: Mon, 8 Oct 2012 15:42:27 -0400 Subject: [PATCH 329/421] URL Tools Plugin * Added urlencode -- alias to encode URLs from the command line using Python * Added urldecode -- alias to decode URLs from the command line using Python --- plugins/urltools/urltools.plugin.zsh | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 plugins/urltools/urltools.plugin.zsh diff --git a/plugins/urltools/urltools.plugin.zsh b/plugins/urltools/urltools.plugin.zsh new file mode 100644 index 000000000..0d29314d6 --- /dev/null +++ b/plugins/urltools/urltools.plugin.zsh @@ -0,0 +1,9 @@ +# URL Tools +# Adds handy command line aliases useful for dealing with URLs +# +# Taken from: +# http://ruslanspivak.com/2010/06/02/urlencode-and-urldecode-from-a-command-line/ + +alias urlencode='python -c "import sys, urllib as ul; print ul.quote_plus(sys.argv[1])"' + +alias urldecode='python -c "import sys, urllib as ul; print ul.unquote_plus(sys.argv[1])"' \ No newline at end of file From a0bcbfb111cc28c7e3e8320f001d28297614698e Mon Sep 17 00:00:00 2001 From: Dominik Bamberger Date: Tue, 9 Oct 2012 08:47:18 +0200 Subject: [PATCH 330/421] make README reflect latest changes --- plugins/zeus/README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/zeus/README.md b/plugins/zeus/README.md index 2cb85cec8..4409943fe 100644 --- a/plugins/zeus/README.md +++ b/plugins/zeus/README.md @@ -28,14 +28,14 @@ * `zt` aliases `zeus test` * `zest` aliases `zeus test` -* `zu` aliases `zeus test/units/*` -* `zunits` aliases `zeus test/units/*` +* `zu` aliases `zeus test test/unit/*` +* `zunits` aliases `zeus test test/unit/*` -* `zf` aliases `zeus test/functional/*` -* `zunctional` aliases `zeus test/functional/*` +* `zf` aliases `zeus test test/functional/*` +* `zunctional` aliases `zeus test test/functional/*` -* `za` aliases `zeus test test/units/*; zeus test test/functional/; zeus cucumber` -* `zall` aliases `zeus test test/units/*; zeus test test/functional/; zeus cucumber` +* `za` aliases `zeus test test/unit/*; zeus test test/functional/; zeus cucumber` +* `zall` aliases `zeus test test/unit/*; zeus test test/functional/; zeus cucumber` * `zsw` aliases `rm .zeus.sock` * `zweep` aliases `rm .zeus.sock` From af21abb134c023699b2d39db4463180ebdf81a83 Mon Sep 17 00:00:00 2001 From: Paul Redmond Date: Tue, 9 Oct 2012 09:02:45 -0700 Subject: [PATCH 331/421] Wrong URL :zap: --- plugins/jira/jira.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/jira/jira.plugin.zsh b/plugins/jira/jira.plugin.zsh index 636e4619e..de8d10529 100644 --- a/plugins/jira/jira.plugin.zsh +++ b/plugins/jira/jira.plugin.zsh @@ -14,7 +14,7 @@ open_jira_issue () { `open $jira_url/secure/CreateIssue!default.jspa`; else echo "Opening issue #$1"; - `open $jira_url/issues/$1`; + `open $jira_url/browse/$1`; fi fi } From 8d86bb298d51d619c88d2aad400007b67c4d438b Mon Sep 17 00:00:00 2001 From: Tyler Cipriani Date: Thu, 11 Oct 2012 09:26:39 -0600 Subject: [PATCH 332/421] moved spacing --- themes/junkfood.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/junkfood.zsh-theme b/themes/junkfood.zsh-theme index bb250e19b..1d574664d 100644 --- a/themes/junkfood.zsh-theme +++ b/themes/junkfood.zsh-theme @@ -5,7 +5,7 @@ # ------------------------------------------------------------------------ # Grab the current date (%W) and time (%t): -JUNKFOOD_TIME_="%{$fg_bold[red]%}#➜%{$fg_bold[white]%}%t – %{$fg_bold[yellow]%}%W%{$fg_bold[white]%} – %{$reset_color%}" +JUNKFOOD_TIME_="%{$fg_bold[red]%}#➜%{$fg_bold[white]%}%t–%{$fg_bold[yellow]%}%W%{$fg_bold[white]%}–%{$reset_color%}" # Grab the current machine name JUNKFOOD_MACHINE_="%{$fg_bold[blue]%}%m%{$fg[white]%}:%{$reset_color%}" From bb5db62314b0fb31b21326d8483c5e97405c07bb Mon Sep 17 00:00:00 2001 From: Tyler Cipriani Date: Thu, 11 Oct 2012 13:48:38 -0600 Subject: [PATCH 333/421] removed weird characters --- themes/junkfood.zsh-theme | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/themes/junkfood.zsh-theme b/themes/junkfood.zsh-theme index 1d574664d..f9bb28fad 100644 --- a/themes/junkfood.zsh-theme +++ b/themes/junkfood.zsh-theme @@ -5,10 +5,10 @@ # ------------------------------------------------------------------------ # Grab the current date (%W) and time (%t): -JUNKFOOD_TIME_="%{$fg_bold[red]%}#➜%{$fg_bold[white]%}%t–%{$fg_bold[yellow]%}%W%{$fg_bold[white]%}–%{$reset_color%}" +JUNKFOOD_TIME_="%{$fg_bold[red]%}#(%{$fg_bold[white]%}%t on %{$fg_bold[yellow]%}%W%{$fg_bold[white]%})%{$reset_color%}" # Grab the current machine name -JUNKFOOD_MACHINE_="%{$fg_bold[blue]%}%m%{$fg[white]%}:%{$reset_color%}" +JUNKFOOD_MACHINE_="%{$fg_bold[blue]%}%m%{$fg[white]%}):%{$reset_color%}" # Grab the current username JUNKFOOD_CURRENT_USER_="%{$fg_bold[green]%}%n%{$reset_color%}" From 2ba668b91ccfdf6dd273d5b1358ee9cafa302534 Mon Sep 17 00:00:00 2001 From: Tyler Cipriani Date: Thu, 11 Oct 2012 13:57:21 -0600 Subject: [PATCH 334/421] parens tweak --- themes/junkfood.zsh-theme | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/themes/junkfood.zsh-theme b/themes/junkfood.zsh-theme index f9bb28fad..835103532 100644 --- a/themes/junkfood.zsh-theme +++ b/themes/junkfood.zsh-theme @@ -5,10 +5,10 @@ # ------------------------------------------------------------------------ # Grab the current date (%W) and time (%t): -JUNKFOOD_TIME_="%{$fg_bold[red]%}#(%{$fg_bold[white]%}%t on %{$fg_bold[yellow]%}%W%{$fg_bold[white]%})%{$reset_color%}" +JUNKFOOD_TIME_="%{$fg_bold[red]%}#%{$fg_bold[white]%}( %t on %{$fg_bold[yellow]%}%W%{$fg_bold[white]%} )( %{$reset_color%}" # Grab the current machine name -JUNKFOOD_MACHINE_="%{$fg_bold[blue]%}%m%{$fg[white]%}):%{$reset_color%}" +JUNKFOOD_MACHINE_="%{$fg_bold[blue]%}%m%{$fg[white]%} ):%{$reset_color%}" # Grab the current username JUNKFOOD_CURRENT_USER_="%{$fg_bold[green]%}%n%{$reset_color%}" From 5872daea49104607efd64208a314aba10823af0b Mon Sep 17 00:00:00 2001 From: Tyler Cipriani Date: Thu, 11 Oct 2012 13:59:08 -0600 Subject: [PATCH 335/421] spacing makes me something --- themes/junkfood.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/junkfood.zsh-theme b/themes/junkfood.zsh-theme index 835103532..c2a96ed7b 100644 --- a/themes/junkfood.zsh-theme +++ b/themes/junkfood.zsh-theme @@ -31,4 +31,4 @@ ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg_bold[red]%}✗✗✗" # Put it all together! PROMPT="$JUNKFOOD_TIME_$JUNKFOOD_CURRENT_USER_@$JUNKFOOD_MACHINE_$JUNKFOOD_LOCA_ - " + " From 53412de75c982a07fac902e8deec929c4fe32abc Mon Sep 17 00:00:00 2001 From: Tyler Cipriani Date: Thu, 11 Oct 2012 14:02:55 -0600 Subject: [PATCH 336/421] Something to be said for symmetry --- themes/junkfood.zsh-theme | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/themes/junkfood.zsh-theme b/themes/junkfood.zsh-theme index c2a96ed7b..57b4070dc 100644 --- a/themes/junkfood.zsh-theme +++ b/themes/junkfood.zsh-theme @@ -5,7 +5,7 @@ # ------------------------------------------------------------------------ # Grab the current date (%W) and time (%t): -JUNKFOOD_TIME_="%{$fg_bold[red]%}#%{$fg_bold[white]%}( %t on %{$fg_bold[yellow]%}%W%{$fg_bold[white]%} )( %{$reset_color%}" +JUNKFOOD_TIME_="%{$fg_bold[red]%}#%{$fg_bold[white]%}( %{$fg_bold[yellow]%}%W%{$reset_color%}@%{$fg_bold[white]%}%t )( %{$reset_color%}" # Grab the current machine name JUNKFOOD_MACHINE_="%{$fg_bold[blue]%}%m%{$fg[white]%} ):%{$reset_color%}" @@ -31,4 +31,4 @@ ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg_bold[red]%}✗✗✗" # Put it all together! PROMPT="$JUNKFOOD_TIME_$JUNKFOOD_CURRENT_USER_@$JUNKFOOD_MACHINE_$JUNKFOOD_LOCA_ - " + " From 8f7b126d2f7369dde512f61f9351809ebf27649e Mon Sep 17 00:00:00 2001 From: Alexander Berezovsky Date: Sat, 13 Oct 2012 13:33:28 -0700 Subject: [PATCH 337/421] updated symbol --- themes/fino-time.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/fino-time.zsh-theme b/themes/fino-time.zsh-theme index 22c7a0981..7154e09f1 100644 --- a/themes/fino-time.zsh-theme +++ b/themes/fino-time.zsh-theme @@ -16,7 +16,7 @@ function virtualenv_info { } function prompt_char { - git branch >/dev/null 2>/dev/null && echo '±' && return + git branch >/dev/null 2>/dev/null && echo '⠠⠵' && return echo '○' } From daa6ecebc1034dab162c90b4fd7f4cb605d969d4 Mon Sep 17 00:00:00 2001 From: Felix Dreissig Date: Sat, 13 Oct 2012 22:53:34 +0200 Subject: [PATCH 338/421] Set the '-R' option for less not in $PAGER, but as $LESS. --- lib/misc.zsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/misc.zsh b/lib/misc.zsh index 0f7e7e925..a8678b8ec 100644 --- a/lib/misc.zsh +++ b/lib/misc.zsh @@ -9,5 +9,7 @@ bindkey "^[m" copy-prev-shell-word setopt long_list_jobs ## pager -export PAGER="less -R" +export PAGER="less" +export LESS="-R" + export LC_CTYPE=$LANG From 2fa02621b27fbb3b788ee8576717fa64b2cb0065 Mon Sep 17 00:00:00 2001 From: Henry Yan Date: Sun, 14 Oct 2012 22:07:38 +0800 Subject: [PATCH 339/421] add git-extras plugin --- plugins/git-extras/git-extras.plugin.zsh | 285 +++++++++++++++++++++++ 1 file changed, 285 insertions(+) create mode 100644 plugins/git-extras/git-extras.plugin.zsh diff --git a/plugins/git-extras/git-extras.plugin.zsh b/plugins/git-extras/git-extras.plugin.zsh new file mode 100644 index 000000000..8419166ab --- /dev/null +++ b/plugins/git-extras/git-extras.plugin.zsh @@ -0,0 +1,285 @@ +#compdef git +# ------------------------------------------------------------------------------ +# Description +# ----------- +# +# Completion script for git-extras (http://github.com/visionmedia/git-extras). +# +# ------------------------------------------------------------------------------ +# Authors +# ------- +# +# * Alexis GRIMALDI (https://github.com/agrimaldi) +# +# ------------------------------------------------------------------------------ +# Inspirations +# ----------- +# +# * git-extras (http://github.com/visionmedia/git-extras) +# * git-flow-completion (http://github.com/bobthecow/git-flow-completion) +# +# ------------------------------------------------------------------------------ + + +__git_command_successful () { + if (( ${#pipestatus:#0} > 0 )); then + _message 'not a git repository' + return 1 + fi + return 0 +} + + +__git_tag_names() { + local expl + declare -a tag_names + tag_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/tags 2>/dev/null)"}#refs/tags/}) + __git_command_successful || return + _wanted tag-names expl tag-name compadd $* - $tag_names +} + + +__git_branch_names() { + local expl + declare -a branch_names + branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads 2>/dev/null)"}#refs/heads/}) + __git_command_successful || return + _wanted branch-names expl branch-name compadd $* - $branch_names +} + + +__git_feature_branch_names() { + local expl + declare -a branch_names + branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads/feature 2>/dev/null)"}#refs/heads/feature/}) + __git_command_successful || return + _wanted branch-names expl branch-name compadd $* - $branch_names +} + + +__git_refactor_branch_names() { + local expl + declare -a branch_names + branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads/refactor 2>/dev/null)"}#refs/heads/refactor/}) + __git_command_successful || return + _wanted branch-names expl branch-name compadd $* - $branch_names +} + + +__git_bug_branch_names() { + local expl + declare -a branch_names + branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads/bug 2>/dev/null)"}#refs/heads/bug/}) + __git_command_successful || return + _wanted branch-names expl branch-name compadd $* - $branch_names +} + + +__git_submodule_names() { + local expl + declare -a submodule_names + submodule_names=(${(f)"$(_call_program branchrefs git submodule status | awk '{print $2}')"}) + __git_command_successful || return + _wanted submodule-names expl submodule-name compadd $* - $submodule_names +} + + +__git_author_names() { + local expl + declare -a author_names + author_names=(${(f)"$(_call_program branchrefs git log --format='%aN' | sort -u)"}) + __git_command_successful || return + _wanted author-names expl author-name compadd $* - $author_names +} + + +_git-changelog() { + _arguments \ + '(-l --list)'{-l,--list}'[list commits]' \ +} + + +_git-effort() { + _arguments \ + '--above[ignore file with less than x commits]' \ +} + + +_git-contrib() { + _arguments \ + ':author:__git_author_names' +} + + +_git-count() { + _arguments \ + '--all[detailed commit count]' +} + + +_git-delete-branch() { + _arguments \ + ':branch-name:__git_branch_names' +} + + +_git-delete-submodule() { + _arguments \ + ':submodule-name:__git_submodule_names' +} + + +_git-delete-tag() { + _arguments \ + ':tag-name:__git_tag_names' +} + + +_git-extras() { + local curcontext=$curcontext state line ret=1 + declare -A opt_args + + _arguments -C \ + ': :->command' \ + '*:: :->option-or-argument' && ret=0 + + case $state in + (command) + declare -a commands + commands=( + 'update:update git-extras' + ) + _describe -t commands command commands && ret=0 + ;; + esac + + _arguments \ + '(-v --version)'{-v,--version}'[show current version]' \ +} + + +_git-graft() { + _arguments \ + ':src-branch-name:__git_branch_names' \ + ':dest-branch-name:__git_branch_names' +} + + +_git-squash() { + _arguments \ + ':branch-name:__git_branch_names' +} + + +_git-feature() { + local curcontext=$curcontext state line ret=1 + declare -A opt_args + + _arguments -C \ + ': :->command' \ + '*:: :->option-or-argument' && ret=0 + + case $state in + (command) + declare -a commands + commands=( + 'finish:merge feature into the current branch' + ) + _describe -t commands command commands && ret=0 + ;; + (option-or-argument) + curcontext=${curcontext%:*}-$line[1]: + case $line[1] in + (finish) + _arguments -C \ + ':branch-name:__git_feature_branch_names' + ;; + esac + esac +} + + +_git-refactor() { + local curcontext=$curcontext state line ret=1 + declare -A opt_args + + _arguments -C \ + ': :->command' \ + '*:: :->option-or-argument' && ret=0 + + case $state in + (command) + declare -a commands + commands=( + 'finish:merge refactor into the current branch' + ) + _describe -t commands command commands && ret=0 + ;; + (option-or-argument) + curcontext=${curcontext%:*}-$line[1]: + case $line[1] in + (finish) + _arguments -C \ + ':branch-name:__git_refactor_branch_names' + ;; + esac + esac +} + + +_git-bug() { + local curcontext=$curcontext state line ret=1 + declare -A opt_args + + _arguments -C \ + ': :->command' \ + '*:: :->option-or-argument' && ret=0 + + case $state in + (command) + declare -a commands + commands=( + 'finish:merge bug into the current branch' + ) + _describe -t commands command commands && ret=0 + ;; + (option-or-argument) + curcontext=${curcontext%:*}-$line[1]: + case $line[1] in + (finish) + _arguments -C \ + ':branch-name:__git_bug_branch_names' + ;; + esac + esac +} + + +zstyle ':completion:*:*:git:*' user-commands \ + changelog:'populate changelog file with commits since the previous tag' \ + contrib:'display author contributions' \ + count:'count commits' \ + delete-branch:'delete local and remote branch' \ + delete-submodule:'delete submodule' \ + delete-tag:'delete local and remote tag' \ + extras:'git-extras' \ + graft:'merge commits from source branch to destination branch' \ + squash:'merge commits from source branch into the current one as a single commit' \ + feature:'create a feature branch' \ + refactor:'create a refactor branch' \ + bug:'create a bug branch' \ + summary:'repository summary' \ + effort:'display effort statistics' \ + repl:'read-eval-print-loop' \ + commits-since:'list commits since a given date' \ + release:'release commit with the given tag' \ + alias:'define, search and show aliases' \ + ignore:'add patterns to .gitignore' \ + info:'show info about the repository' \ + create-branch:'create local and remote branch' \ + fresh-branch:'create empty local branch' \ + undo:'remove the latest commit' \ + setup:'setup a git repository' \ + touch:'one step creation of new files' \ + obliterate:'Completely remove a file from the repository, including past commits and tags' \ + local-commits:'list unpushed commits on the local branch' \ From c2cbd31b3ceaabcab09686c1c6ecf10c51715868 Mon Sep 17 00:00:00 2001 From: Paulo Luis Franchini Casaretto Date: Wed, 17 Oct 2012 14:00:18 -0300 Subject: [PATCH 340/421] Add the heroku --remote switch This remote selects the app based on your current repo remotes For example heroku logs --remote staging More info at https://devcenter.heroku.com/articles/using-the-cli --- plugins/heroku/_heroku | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/heroku/_heroku b/plugins/heroku/_heroku index dc899e2b2..a95c38647 100644 --- a/plugins/heroku/_heroku +++ b/plugins/heroku/_heroku @@ -154,5 +154,6 @@ case "$words[1]" in _arguments \ $_command_args \ '(--app)--app[the app name]' \ + '(--remote)--remote[the remote name]' \ && return 0 From 91e5619a585f3c94a3c6c536a5b40c772f64bf85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=96rjan=20Persson?= Date: Tue, 16 Oct 2012 22:36:56 -0700 Subject: [PATCH 341/421] Added last working directory plugin Keeps track of the last changed directory. When a new shell is created, the last directory will be restored. Mimics how tabs works in many terminal emulators. --- .../last-working-dir.plugin.zsh | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 plugins/last-working-dir/last-working-dir.plugin.zsh diff --git a/plugins/last-working-dir/last-working-dir.plugin.zsh b/plugins/last-working-dir/last-working-dir.plugin.zsh new file mode 100644 index 000000000..5b3121d11 --- /dev/null +++ b/plugins/last-working-dir/last-working-dir.plugin.zsh @@ -0,0 +1,23 @@ +#!/usr/bin/env zsh +# Keeps track of the last used working directory and automatically jumps +# into it for new shells. + +# Flag indicating if we've previously jumped to last directory. +typeset -g ZSH_LAST_WORKING_DIRECTORY +local cache_file="$ZSH/cache/last-working-dir" + +# Updates the last directory once directory is changed. +function chpwd() { + echo "$PWD" > "$cache_file" +} + +# Changes directory to the last working directory. +function lwd() { + [[ ! -r "$cache_file" ]] || cd `cat "$cache_file"` +} + +# Automatically jump to last working directory unless this isn't the first time +# this plugin has been loaded. +if [[ -z "$ZSH_LAST_WORKING_DIRECTORY" ]]; then + lwd 2>/dev/null && ZSH_LAST_WORKING_DIRECTORY=1 || true +fi From b0cf0674ef732b4102bf793543ceed3d23897ab6 Mon Sep 17 00:00:00 2001 From: Eric Mathison Date: Sun, 21 Oct 2012 02:19:56 -0700 Subject: [PATCH 342/421] Fix color syntax --- tools/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/install.sh b/tools/install.sh index b080be3a1..6f58db939 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -13,7 +13,7 @@ hash git >/dev/null && /usr/bin/env git clone https://github.com/robbyrussell/oh echo "\033[0;34mLooking for an existing zsh config...\033[0m" if [ -f ~/.zshrc ] || [ -h ~/.zshrc ] then - echo "\033[0;33mFound ~/.zshrc.\033[0m \033[0;32]Backing up to ~/.zshrc.pre-oh-my-zsh\033[0m"; + echo "\033[0;33mFound ~/.zshrc.\033[0m \033[0;32mBacking up to ~/.zshrc.pre-oh-my-zsh\033[0m"; cp ~/.zshrc ~/.zshrc.pre-oh-my-zsh; rm ~/.zshrc; fi From 7e2156a1b17a16243e92569c4df82c562f75ffb2 Mon Sep 17 00:00:00 2001 From: Rainer Dreyer Date: Mon, 22 Oct 2012 00:12:00 +0200 Subject: [PATCH 343/421] Fixed node-docs The `#anchor` tags on [nodejs.org](http://nodejs.org/docs/v0.8.2/api/all.html) changed. This fixes the `node-docs` command. --- plugins/node/node.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/node/node.plugin.zsh b/plugins/node/node.plugin.zsh index 519bc18da..3bbed6f04 100644 --- a/plugins/node/node.plugin.zsh +++ b/plugins/node/node.plugin.zsh @@ -1,5 +1,5 @@ # Open the node api for your current version to the optional section. # TODO: Make the section part easier to use. function node-docs { - open "http://nodejs.org/docs/$(node --version)/api/all.html#$1" + open "http://nodejs.org/docs/$(node --version)/api/all.html#all_$1" } From c592f55af1fbb2050b6060666312149711873133 Mon Sep 17 00:00:00 2001 From: dsx Date: Fri, 26 Oct 2012 12:38:17 -0400 Subject: [PATCH 344/421] Added ability to specify list of directories for pyclean to override default current directory --- plugins/python/python.plugin.zsh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/plugins/python/python.plugin.zsh b/plugins/python/python.plugin.zsh index 8be3cd863..852c8b919 100644 --- a/plugins/python/python.plugin.zsh +++ b/plugins/python/python.plugin.zsh @@ -1,8 +1,12 @@ # Find python file alias pyfind='find . -name "*.py"' -# Remove python compiled byte-code -alias pyclean='find . -type f -name "*.py[co]" -delete' +# Remove python compiled byte-code in either current directory or in a +# list of specified directories +function pyclean() { + ZSH_PYCLEAN_PLACES=${*:-'.'} + find ${ZSH_PYCLEAN_PLACES} -type f -name "*.py[co]" -delete +} # Grep among .py files alias pygrep='grep --include="*.py"' From 4d8fe543ff8099daad155e2c41974525370dc435 Mon Sep 17 00:00:00 2001 From: Guillermo Castro Date: Fri, 26 Oct 2012 16:51:48 -0700 Subject: [PATCH 345/421] Updated code from answer URL --- plugins/terminalapp/terminalapp.plugin.zsh | 42 ++++++++++++++++++---- 1 file changed, 35 insertions(+), 7 deletions(-) diff --git a/plugins/terminalapp/terminalapp.plugin.zsh b/plugins/terminalapp/terminalapp.plugin.zsh index 4695ad055..2249b1e2f 100644 --- a/plugins/terminalapp/terminalapp.plugin.zsh +++ b/plugins/terminalapp/terminalapp.plugin.zsh @@ -1,11 +1,39 @@ # Set Apple Terminal.app resume directory # based on this answer: http://superuser.com/a/315029 +# 2012-10-26: (javageek) Changed code using the updated answer -function chpwd { - local SEARCH=' ' - local REPLACE='%20' - local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}" - printf '\e]7;%s\a' "$PWD_URL" -} +# Tell the terminal about the working directory whenever it changes. +if [[ "$TERM_PROGRAM" == "Apple_Terminal" ]] && [[ -z "$INSIDE_EMACS" ]]; then + update_terminal_cwd() { + # Identify the directory using a "file:" scheme URL, including + # the host name to disambiguate local vs. remote paths. -chpwd \ No newline at end of file + # Percent-encode the pathname. + local URL_PATH='' + { + # Use LANG=C to process text byte-by-byte. + local i ch hexch LANG=C + for ((i = 1; i <= ${#PWD}; ++i)); do + ch="$PWD[i]" + if [[ "$ch" =~ [/._~A-Za-z0-9-] ]]; then + URL_PATH+="$ch" + else + hexch=$(printf "%02X" "'$ch") + URL_PATH+="%$hexch" + fi + done + } + + local PWD_URL="file://$HOST$URL_PATH" + #echo "$PWD_URL" # testing + printf '\e]7;%s\a' "$PWD_URL" + } + + # Register the function so it is called whenever the working + # directory changes. + autoload add-zsh-hook + add-zsh-hook chpwd update_terminal_cwd + + # Tell the terminal about the initial directory. + update_terminal_cwd +fi From 1c9f2e81066a2e86d001fe14b5be48660273b5e4 Mon Sep 17 00:00:00 2001 From: "hjhart@gmail.com" Date: Mon, 29 Oct 2012 10:26:19 -0700 Subject: [PATCH 346/421] Update plugins/jira/jira.plugin.zsh Updated to allow for usage of the new Rapid Board jira url formats --- plugins/jira/jira.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/jira/jira.plugin.zsh b/plugins/jira/jira.plugin.zsh index 636e4619e..de8d10529 100644 --- a/plugins/jira/jira.plugin.zsh +++ b/plugins/jira/jira.plugin.zsh @@ -14,7 +14,7 @@ open_jira_issue () { `open $jira_url/secure/CreateIssue!default.jspa`; else echo "Opening issue #$1"; - `open $jira_url/issues/$1`; + `open $jira_url/browse/$1`; fi fi } From 263446d7259e22a21fe797284607fd2423fb076b Mon Sep 17 00:00:00 2001 From: Hok Shun Poon Date: Tue, 30 Oct 2012 22:42:52 +0000 Subject: [PATCH 347/421] Expand for-loop so that it works under Snow Leopard Terminal.app. --- oh-my-zsh.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index ddef1ad6c..4a5b175d5 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -11,7 +11,9 @@ fpath=($ZSH/functions $ZSH/completions $fpath) # Load all of the config files in ~/oh-my-zsh that end in .zsh # TIP: Add files you don't want in git to .gitignore -for config_file ($ZSH/lib/*.zsh) source $config_file +for config_file ($ZSH/lib/*.zsh); do + source $config_file +done # Set ZSH_CUSTOM to the path where your custom config files # and plugins exists, or else we will use the default custom/ @@ -51,7 +53,9 @@ for plugin ($plugins); do done # Load all of your custom configurations from custom/ -for config_file ($ZSH_CUSTOM/*.zsh(N)) source $config_file +for config_file ($ZSH_CUSTOM/*.zsh(N)); do + source $config_file +done # Load the theme if [ "$ZSH_THEME" = "random" ] From 15563c1b785cee11aa09b5ce1e2c6b51cea11bdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Santiago=20Borraz=C3=A1s?= Date: Thu, 1 Nov 2012 21:41:07 -0300 Subject: [PATCH 348/421] Added pass plugin in order to provide completion. More info about pass tool: http://zx2c4.com/projects/password-store/ --- plugins/pass/_pass | 119 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 plugins/pass/_pass diff --git a/plugins/pass/_pass b/plugins/pass/_pass new file mode 100644 index 000000000..f6c1a6c4b --- /dev/null +++ b/plugins/pass/_pass @@ -0,0 +1,119 @@ +#compdef pass +#autoload + +# Copyright (C) 2012: +# Johan Venant +# Brian Mattern +# Jason A. Donenfeld . +# Santiago Borrazás +# All Rights Reserved. +# This file is licensed under the GPLv2+. Please see COPYING for more information. + + +_pass () { + local cmd + if (( CURRENT > 2)); then + cmd=${words[2]} + # Set the context for the subcommand. + curcontext="${curcontext%:*:*}:pass-$cmd" + # Narrow the range of words we are looking at to exclude `pass' + (( CURRENT-- )) + shift words + # Run the completion for the subcommand + case "${cmd}" in + init) + _arguments : \ + "-r[re-encrypt existing passwords]" \ + "--reencrypt[re-encrypt existing passwords]" + _pass_complete_keys + ;; + ls|list|edit) + _pass_complete_entries_with_subdirs + ;; + insert) + _arguments : \ + "-e[echo password to console]" \ + "--echo[echo password to console]" \ + "-m[multiline]" \ + "--multiline[multiline]" + _pass_complete_entries_with_subdirs + ;; + generate) + _arguments : \ + "-n[don't include symbols in password]" \ + "--no-symbols[don't include symbols in password]" \ + "-c[copy password to the clipboard]" \ + "--clip[copy password to the clipboard]" + _pass_complete_entries_with_subdirs + ;; + rm) + _arguments : \ + "-f[force deletion]" \ + "--force[force deletion]" \ + "-r[recursively delete]" \ + "--recursive[recursively delete]" + _pass_complete_entries_with_subdirs + ;; + git) + local -a subcommands + subcommands=( + "init:Initialize git repository" + "push:Push to remote repository" + "pull:Pull from remote repository" + "config:Show git config" + "log:Show git log" + "reflog:Show git reflog" + ) + _describe -t commands 'pass git' subcommands + ;; + show|*) + _pass_cmd_show + ;; + esac + else + local -a subcommands + subcommands=( + "init:Initialize new password storage" + "ls:List passwords" + "show:Decrypt and print a password" + "insert:Insert a new password" + "generate:Generate a new password using pwgen" + "edit:Edit a password with \$EDITOR" + "rm:Remove the password" + "git:Call git on the password store" + "version:Output version information" + "help:Output help message" + ) + _describe -t commands 'pass' subcommands + _arguments : \ + "--version[Output version information]" \ + "--help[Output help message]" + _pass_cmd_show + fi +} + +_pass_cmd_show () { + _arguments : \ + "-c[put it on the clipboard]" \ + "--clip[put it on the clipboard]" + _pass_complete_entries +} +_pass_complete_entries_helper () { + local IFS=$'\n' + local prefix="${PASSWORD_STORE_DIR:-$HOME/.password-store}" + _values -C 'passwords' $(find "$prefix" \( -name .git -o -name .gpg-id \) -prune -o $@ -print | sed -e "s#${prefix}.##" -e 's#\.gpg##' | sort) +} + +_pass_complete_entries_with_subdirs () { + _pass_complete_entries_helper +} + +_pass_complete_entries () { + _pass_complete_entries_helper -type f +} + +_pass_complete_keys () { + local IFS=$'\n' + # Extract names and email addresses from gpg --list-keys + _values 'gpg keys' $(gpg2 --list-secret-keys --with-colons | cut -d : -f 10 | sort -u | sed '/^$/d') +} From 4e513d72b9542b7b5079451e3380b4a98b0b7b56 Mon Sep 17 00:00:00 2001 From: Jim Hester Date: Fri, 2 Nov 2012 11:06:32 -0400 Subject: [PATCH 349/421] Fixes for vi-mode terminal overwriting bugs fixes #387 and https://github.com/robbyrussell/oh-my-zsh/pull/1321#issuecomment-9959540 and other problems of prompt overwriting when people did not realize that it was vi mode causing the problem. Hat tip to sorin ionescu, as I took this code from prezto --- plugins/vi-mode/vi-mode.plugin.zsh | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/plugins/vi-mode/vi-mode.plugin.zsh b/plugins/vi-mode/vi-mode.plugin.zsh index d29eb1dda..e23bd3c54 100644 --- a/plugins/vi-mode/vi-mode.plugin.zsh +++ b/plugins/vi-mode/vi-mode.plugin.zsh @@ -1,8 +1,26 @@ -function zle-line-init zle-keymap-select { +# Ensures that $terminfo values are valid and updates editor information when +# the keymap changes. +function zle-keymap-select zle-line-init zle-line-finish { + # The terminal must be in application mode when ZLE is active for $terminfo + # values to be valid. + if (( $+terminfo[smkx] && $+terminfo[rmkx] )); then + case "$0" in + (zle-line-init) + # Enable terminal application mode. + echoti smkx + ;; + (zle-line-finish) + # Disable terminal application mode. + echoti rmkx + ;; + esac + fi zle reset-prompt + zle -R } zle -N zle-line-init +zle -N zle-line-finish zle -N zle-keymap-select #changing mode clobbers the keybinds, so store the keybinds before and execute From f09af5717923cca4e5c538e14846ea4816295949 Mon Sep 17 00:00:00 2001 From: Fuad Saud Date: Sat, 3 Nov 2012 05:05:38 -0200 Subject: [PATCH 350/421] agnoster theme shows error code instead of an "x" --- themes/agnoster.zsh-theme | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/themes/agnoster.zsh-theme b/themes/agnoster.zsh-theme index c3107c06c..84b9649a6 100644 --- a/themes/agnoster.zsh-theme +++ b/themes/agnoster.zsh-theme @@ -73,7 +73,7 @@ prompt_git() { if $(git rev-parse --is-inside-work-tree >/dev/null 2>&1); then ZSH_THEME_GIT_PROMPT_DIRTY='±' dirty=$(parse_git_dirty) - ref=$(git symbolic-ref HEAD 2> /dev/null) || ref="➦ $(git show-ref --head -s --abbrev |head -n1 2> /dev/null)" + ref=$(git symbolic-Fref HEAD 2> /dev/null) || ref="➦ $(git show-ref --head -s --abbrev |head -n1 2> /dev/null)" if [[ -n $dirty ]]; then prompt_segment yellow black else @@ -95,7 +95,7 @@ prompt_dir() { prompt_status() { local symbols symbols=() - [[ $RETVAL -ne 0 ]] && symbols+="%{%F{red}%}✘" + [[ $RETVAL -ne 0 ]] && symbols+="%{%F{red}%}$RETVAL" [[ $UID -eq 0 ]] && symbols+="%{%F{yellow}%}⚡" [[ $(jobs -l | wc -l) -gt 0 ]] && symbols+="%{%F{cyan}%}⚙" @@ -106,10 +106,10 @@ prompt_status() { build_prompt() { RETVAL=$? prompt_status - prompt_context + prompt_contextx prompt_dir prompt_git prompt_end } -PROMPT='%{%f%b%k%}$(build_prompt) ' +PROMPT='%{%f%b%k%}$(build_prompt) ' \ No newline at end of file From cd0e7c5e4906c810b87f7c8f1b2c6c79e4b04889 Mon Sep 17 00:00:00 2001 From: Eugene Nikolsky Date: Mon, 5 Nov 2012 10:34:29 +0200 Subject: [PATCH 351/421] Fix sourcing brew's autojump of version 21.0.3+ Starting with autojump 21.0.3+ there is no file autojump in etc/ directory, so we source the autojump.zsh file directly. Version 20 has it as well, so there should be no problems with earlier versions. Comments on autojump's update in homebrew: https://github.com/mxcl/homebrew/commit/5da9c4d5eb38e6abb516ba648898fb374ec360cd#Library/Formula/autojump.rb --- plugins/autojump/autojump.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/autojump/autojump.plugin.zsh b/plugins/autojump/autojump.plugin.zsh index d367863b8..fdce3a246 100644 --- a/plugins/autojump/autojump.plugin.zsh +++ b/plugins/autojump/autojump.plugin.zsh @@ -5,7 +5,7 @@ if [ $commands[autojump] ]; then # check if autojump is installed . /etc/profile.d/autojump.zsh elif [ -f /opt/local/etc/profile.d/autojump.zsh ]; then # mac os x with ports . /opt/local/etc/profile.d/autojump.zsh - elif [ $commands[brew] -a -f `brew --prefix`/etc/autojump ]; then # mac os x with brew - . `brew --prefix`/etc/autojump + elif [ $commands[brew] -a -f `brew --prefix`/etc/autojump.zsh ]; then # mac os x with brew + . `brew --prefix`/etc/autojump.zsh fi fi From 19aefa2bd6168a9d75ce9ccd255ffac20425232e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=A4=E5=87=AF=20Kevin=20Tong?= Date: Mon, 5 Nov 2012 16:55:55 +0800 Subject: [PATCH 352/421] Update plugins/sublime/sublime.plugin.zsh Considering the situation when installing sublime text via apt-get (WebUpd8 Sublime Text 2 PPA) --- plugins/sublime/sublime.plugin.zsh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/sublime/sublime.plugin.zsh b/plugins/sublime/sublime.plugin.zsh index 91b0279c5..171f00ef5 100755 --- a/plugins/sublime/sublime.plugin.zsh +++ b/plugins/sublime/sublime.plugin.zsh @@ -2,7 +2,11 @@ #unamestr = 'uname' if [[ $('uname') == 'Linux' ]]; then - alias st='/usr/bin/sublime_text&' + if [ -f '/usr/bin/sublime_text' ]; then + alias st='/usr/bin/sublime_text&' + else + alias st='/usr/bin/sublime-text&' + fi elif [[ $('uname') == 'Darwin' ]]; then alias st='/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl' fi From ec9b5500a57a39f8937e50424868493087fa40b4 Mon Sep 17 00:00:00 2001 From: Hao Hong Date: Mon, 5 Nov 2012 16:33:21 -0800 Subject: [PATCH 353/421] Update plugins/git-flow/git-flow.plugin.zsh Fixed git-flow feature publish's desc error https://github.com/agate/oh-my-zsh/commit/72aeaa9d9ee55fbfe15b371c0bf127ab3948a965#commitcomment-2104214 --- plugins/git-flow/git-flow.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/git-flow/git-flow.plugin.zsh b/plugins/git-flow/git-flow.plugin.zsh index 71b343884..ea4caa016 100644 --- a/plugins/git-flow/git-flow.plugin.zsh +++ b/plugins/git-flow/git-flow.plugin.zsh @@ -195,7 +195,7 @@ __git-flow-feature () 'start:Start a new feature branch.' 'finish:Finish a feature branch.' 'list:List all your feature branches. (Alias to `git flow feature`)' - 'publish: public' + 'publish: publish' 'track: track' 'diff: diff' 'rebase: rebase' From 15e0dc9ec937d98094419b59a89be60fe6dbff3f Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Tue, 6 Nov 2012 15:39:59 -0200 Subject: [PATCH 354/421] Added some maven love. --- plugins/mvn/mvn.color.plugin.zsh | 41 ++++++++++++++++++++++++++++++++ plugins/mvn/mvn.plugin.zsh | 14 ++++++++++- 2 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 plugins/mvn/mvn.color.plugin.zsh diff --git a/plugins/mvn/mvn.color.plugin.zsh b/plugins/mvn/mvn.color.plugin.zsh new file mode 100644 index 000000000..82281a706 --- /dev/null +++ b/plugins/mvn/mvn.color.plugin.zsh @@ -0,0 +1,41 @@ +# mvn-color based on https://gist.github.com/1027800 +export BOLD=`tput bold` +export UNDERLINE_ON=`tput smul` +export UNDERLINE_OFF=`tput rmul` +export TEXT_BLACK=`tput setaf 0` +export TEXT_RED=`tput setaf 1` +export TEXT_GREEN=`tput setaf 2` +export TEXT_YELLOW=`tput setaf 3` +export TEXT_BLUE=`tput setaf 4` +export TEXT_MAGENTA=`tput setaf 5` +export TEXT_CYAN=`tput setaf 6` +export TEXT_WHITE=`tput setaf 7` +export BACKGROUND_BLACK=`tput setab 0` +export BACKGROUND_RED=`tput setab 1` +export BACKGROUND_GREEN=`tput setab 2` +export BACKGROUND_YELLOW=`tput setab 3` +export BACKGROUND_BLUE=`tput setab 4` +export BACKGROUND_MAGENTA=`tput setab 5` +export BACKGROUND_CYAN=`tput setab 6` +export BACKGROUND_WHITE=`tput setab 7` +export RESET_FORMATTING=`tput sgr0` + + +# Wrapper function for Maven's mvn command. +mvn-color() +{ + # Filter mvn output using sed + mvn $@ | sed -e "s/\(\[INFO\]\ \-.*\)/${TEXT_BLUE}${BOLD}\1/g" \ + -e "s/\(\[INFO\]\ \[.*\)/${RESET_FORMATTING}${BOLD}\1${RESET_FORMATTING}/g" \ + -e "s/\(\[INFO\]\ BUILD SUCCESSFUL\)/${BOLD}${TEXT_GREEN}\1${RESET_FORMATTING}/g" \ + -e "s/\(\[WARNING\].*\)/${BOLD}${TEXT_YELLOW}\1${RESET_FORMATTING}/g" \ + -e "s/\(\[ERROR\].*\)/${BOLD}${TEXT_RED}\1${RESET_FORMATTING}/g" \ + -e "s/Tests run: \([^,]*\), Failures: \([^,]*\), Errors: \([^,]*\), Skipped: \([^,]*\)/${BOLD}${TEXT_GREEN}Tests run: \1${RESET_FORMATTING}, Failures: ${BOLD}${TEXT_RED}\2${RESET_FORMATTING}, Errors: ${BOLD}${TEXT_RED}\3${RESET_FORMATTING}, Skipped: ${BOLD}${TEXT_YELLOW}\4${RESET_FORMATTING}/g" + + # Make sure formatting is reset + echo -ne ${RESET_FORMATTING} +} + +# Override the mvn command with the colorized one. +alias mvn="mvn-color" + diff --git a/plugins/mvn/mvn.plugin.zsh b/plugins/mvn/mvn.plugin.zsh index e8af2f49d..66d18074d 100644 --- a/plugins/mvn/mvn.plugin.zsh +++ b/plugins/mvn/mvn.plugin.zsh @@ -1,6 +1,18 @@ +# aliases +alias mvncie='mvn clean install eclipse:eclipse' +alias mvnci='mvn clean install' +alias mvne='mvn eclipse:eclipse' +alias mvnce='mvn clean eclipse:clean eclipse:eclipse' +alias mvnd='mvn deploy' +alias mvnp='mvn package' +alias mvnc='mvn clean' +alias mvncom='mvn compile' +alias mvnt='mvn test' +alias mvnag='mvn archetype:generate' + function listMavenCompletions { reply=( cli:execute cli:execute-phase archetype:generate generate-sources compile clean install test test-compile deploy package cobertura:cobertura jetty:run gwt:run gwt:debug -DskipTests -Dmaven.test.skip=true -DarchetypeCatalog=http://tapestry.formos.com/maven-snapshot-repository -Dtest= `if [ -d ./src ] ; then find ./src -type f | grep -v svn | sed 's?.*/\([^/]*\)\..*?-Dtest=\1?' ; fi`); } -compctl -K listMavenCompletions mvn \ No newline at end of file +compctl -K listMavenCompletions mvn From 8723a2ce58abd951c6664ddb19b29d612219956a Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Tue, 6 Nov 2012 15:44:50 -0200 Subject: [PATCH 355/421] mvn.colors.plugin.zsh was not read... mergin with mvn.plugin.zsh. --- plugins/mvn/mvn.color.plugin.zsh | 41 -------------------------------- plugins/mvn/mvn.plugin.zsh | 41 ++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 41 deletions(-) delete mode 100644 plugins/mvn/mvn.color.plugin.zsh diff --git a/plugins/mvn/mvn.color.plugin.zsh b/plugins/mvn/mvn.color.plugin.zsh deleted file mode 100644 index 82281a706..000000000 --- a/plugins/mvn/mvn.color.plugin.zsh +++ /dev/null @@ -1,41 +0,0 @@ -# mvn-color based on https://gist.github.com/1027800 -export BOLD=`tput bold` -export UNDERLINE_ON=`tput smul` -export UNDERLINE_OFF=`tput rmul` -export TEXT_BLACK=`tput setaf 0` -export TEXT_RED=`tput setaf 1` -export TEXT_GREEN=`tput setaf 2` -export TEXT_YELLOW=`tput setaf 3` -export TEXT_BLUE=`tput setaf 4` -export TEXT_MAGENTA=`tput setaf 5` -export TEXT_CYAN=`tput setaf 6` -export TEXT_WHITE=`tput setaf 7` -export BACKGROUND_BLACK=`tput setab 0` -export BACKGROUND_RED=`tput setab 1` -export BACKGROUND_GREEN=`tput setab 2` -export BACKGROUND_YELLOW=`tput setab 3` -export BACKGROUND_BLUE=`tput setab 4` -export BACKGROUND_MAGENTA=`tput setab 5` -export BACKGROUND_CYAN=`tput setab 6` -export BACKGROUND_WHITE=`tput setab 7` -export RESET_FORMATTING=`tput sgr0` - - -# Wrapper function for Maven's mvn command. -mvn-color() -{ - # Filter mvn output using sed - mvn $@ | sed -e "s/\(\[INFO\]\ \-.*\)/${TEXT_BLUE}${BOLD}\1/g" \ - -e "s/\(\[INFO\]\ \[.*\)/${RESET_FORMATTING}${BOLD}\1${RESET_FORMATTING}/g" \ - -e "s/\(\[INFO\]\ BUILD SUCCESSFUL\)/${BOLD}${TEXT_GREEN}\1${RESET_FORMATTING}/g" \ - -e "s/\(\[WARNING\].*\)/${BOLD}${TEXT_YELLOW}\1${RESET_FORMATTING}/g" \ - -e "s/\(\[ERROR\].*\)/${BOLD}${TEXT_RED}\1${RESET_FORMATTING}/g" \ - -e "s/Tests run: \([^,]*\), Failures: \([^,]*\), Errors: \([^,]*\), Skipped: \([^,]*\)/${BOLD}${TEXT_GREEN}Tests run: \1${RESET_FORMATTING}, Failures: ${BOLD}${TEXT_RED}\2${RESET_FORMATTING}, Errors: ${BOLD}${TEXT_RED}\3${RESET_FORMATTING}, Skipped: ${BOLD}${TEXT_YELLOW}\4${RESET_FORMATTING}/g" - - # Make sure formatting is reset - echo -ne ${RESET_FORMATTING} -} - -# Override the mvn command with the colorized one. -alias mvn="mvn-color" - diff --git a/plugins/mvn/mvn.plugin.zsh b/plugins/mvn/mvn.plugin.zsh index 66d18074d..cde467981 100644 --- a/plugins/mvn/mvn.plugin.zsh +++ b/plugins/mvn/mvn.plugin.zsh @@ -1,3 +1,44 @@ +# mvn-color based on https://gist.github.com/1027800 +export BOLD=`tput bold` +export UNDERLINE_ON=`tput smul` +export UNDERLINE_OFF=`tput rmul` +export TEXT_BLACK=`tput setaf 0` +export TEXT_RED=`tput setaf 1` +export TEXT_GREEN=`tput setaf 2` +export TEXT_YELLOW=`tput setaf 3` +export TEXT_BLUE=`tput setaf 4` +export TEXT_MAGENTA=`tput setaf 5` +export TEXT_CYAN=`tput setaf 6` +export TEXT_WHITE=`tput setaf 7` +export BACKGROUND_BLACK=`tput setab 0` +export BACKGROUND_RED=`tput setab 1` +export BACKGROUND_GREEN=`tput setab 2` +export BACKGROUND_YELLOW=`tput setab 3` +export BACKGROUND_BLUE=`tput setab 4` +export BACKGROUND_MAGENTA=`tput setab 5` +export BACKGROUND_CYAN=`tput setab 6` +export BACKGROUND_WHITE=`tput setab 7` +export RESET_FORMATTING=`tput sgr0` + + +# Wrapper function for Maven's mvn command. +mvn-color() +{ + # Filter mvn output using sed + mvn $@ | sed -e "s/\(\[INFO\]\ \-.*\)/${TEXT_BLUE}${BOLD}\1/g" \ + -e "s/\(\[INFO\]\ \[.*\)/${RESET_FORMATTING}${BOLD}\1${RESET_FORMATTING}/g" \ + -e "s/\(\[INFO\]\ BUILD SUCCESSFUL\)/${BOLD}${TEXT_GREEN}\1${RESET_FORMATTING}/g" \ + -e "s/\(\[WARNING\].*\)/${BOLD}${TEXT_YELLOW}\1${RESET_FORMATTING}/g" \ + -e "s/\(\[ERROR\].*\)/${BOLD}${TEXT_RED}\1${RESET_FORMATTING}/g" \ + -e "s/Tests run: \([^,]*\), Failures: \([^,]*\), Errors: \([^,]*\), Skipped: \([^,]*\)/${BOLD}${TEXT_GREEN}Tests run: \1${RESET_FORMATTING}, Failures: ${BOLD}${TEXT_RED}\2${RESET_FORMATTING}, Errors: ${BOLD}${TEXT_RED}\3${RESET_FORMATTING}, Skipped: ${BOLD}${TEXT_YELLOW}\4${RESET_FORMATTING}/g" + + # Make sure formatting is reset + echo -ne ${RESET_FORMATTING} +} + +# Override the mvn command with the colorized one. +alias mvn="mvn-color" + # aliases alias mvncie='mvn clean install eclipse:eclipse' alias mvnci='mvn clean install' From f967f2bfd7b104da78ec1b1f1c6f893c2356dabc Mon Sep 17 00:00:00 2001 From: Sean Escriva Date: Tue, 6 Nov 2012 13:38:08 -0800 Subject: [PATCH 356/421] update autojump plugin for latest brew installed autojump --- plugins/autojump/autojump.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/autojump/autojump.plugin.zsh b/plugins/autojump/autojump.plugin.zsh index d367863b8..fdce3a246 100644 --- a/plugins/autojump/autojump.plugin.zsh +++ b/plugins/autojump/autojump.plugin.zsh @@ -5,7 +5,7 @@ if [ $commands[autojump] ]; then # check if autojump is installed . /etc/profile.d/autojump.zsh elif [ -f /opt/local/etc/profile.d/autojump.zsh ]; then # mac os x with ports . /opt/local/etc/profile.d/autojump.zsh - elif [ $commands[brew] -a -f `brew --prefix`/etc/autojump ]; then # mac os x with brew - . `brew --prefix`/etc/autojump + elif [ $commands[brew] -a -f `brew --prefix`/etc/autojump.zsh ]; then # mac os x with brew + . `brew --prefix`/etc/autojump.zsh fi fi From 8871c7a6d00a7c0a1e586e4f4d7a21c255231783 Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Wed, 7 Nov 2012 10:28:44 -0200 Subject: [PATCH 357/421] made dpkg -i more util --- plugins/debian/debian.plugin.zsh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/debian/debian.plugin.zsh b/plugins/debian/debian.plugin.zsh index 39d3ef36a..71f22f7bd 100644 --- a/plugins/debian/debian.plugin.zsh +++ b/plugins/debian/debian.plugin.zsh @@ -61,7 +61,8 @@ if [[ $use_sudo -eq 1 ]]; then # Install all .deb files in the current directory. # Warning: you will need to put the glob in single quotes if you use: # glob_subst - alias di='sudo dpkg -i ./*.deb' + alias dia='sudo dpkg -i ./*.deb' + alias di='sudo dpkg -i' # Remove ALL kernel images and headers EXCEPT the one in use alias kclean='sudo aptitude remove -P ?and(~i~nlinux-(ima|hea) \ @@ -100,7 +101,8 @@ else # Install all .deb files in the current directory # Assumes glob_subst is off - alias di='su -lc "dpkg -i ./*.deb" root' + alias dia='su -lc "dpkg -i ./*.deb" root' + alias di='su -lc "dpkg -i" root' # Remove ALL kernel images and headers EXCEPT the one in use alias kclean='su -lc '\''aptitude remove -P ?and(~i~nlinux-(ima|hea) \ From 99468cb4ec38f11b78ac71cae0c9ac70ac0a516e Mon Sep 17 00:00:00 2001 From: Brian Hartvigsen Date: Wed, 7 Nov 2012 23:53:44 -0700 Subject: [PATCH 358/421] Update themes/minimal.zsh-theme Cleans up minimal theme by not using a custom prompt function Removed case of 2 spaces showing if not in a version controlled folder Adds support for svn_prompt_info --- themes/minimal.zsh-theme | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/themes/minimal.zsh-theme b/themes/minimal.zsh-theme index ee3ab6b22..a2a16031f 100644 --- a/themes/minimal.zsh-theme +++ b/themes/minimal.zsh-theme @@ -1,15 +1,18 @@ ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[white]%}[" -ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%}" -ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}●%{$reset_color%}" -ZSH_THEME_GIT_PROMPT_CLEAN="" +ZSH_THEME_GIT_PROMPT_SUFFIX="" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}●%{$reset_color%}]%{$reset_color%} " +ZSH_THEME_GIT_PROMPT_CLEAN="]%{$reset_color%} " +ZSH_THEME_SVN_PROMPT_PREFIX=$ZSH_THEME_GIT_PROMPT_PREFIX +ZSH_THEME_SVN_PROMPT_SUFFIX=$ZSH_THEME_GIT_PROMPT_SUFFIX +ZSH_THEME_SVN_PROMPT_DIRTY=$ZSH_THEME_GIT_PROMPT_DIRTY +ZSH_THEME_SVN_PROMPT_CLEAN=$ZSH_THEME_GIT_PROMPT_CLEAN -#Customized git status, oh-my-zsh currently does not allow render dirty status before branch -git_custom_status() { - local cb=$(current_branch) - if [ -n "$cb" ]; then - echo "- $ZSH_THEME_GIT_PROMPT_PREFIX$(current_branch)$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX" - fi +vcs_status() { + if [[ ( $(whence in_svn) != "" ) && ( $(in_svn) == 1 ) ]]; then + svn_prompt_info + else + git_prompt_info + fi } - -PROMPT='%2~ $(git_custom_status) »%b ' \ No newline at end of file +PROMPT='%2~ $(vcs_status)»%b ' \ No newline at end of file From 1b768a3b407103cd77d21d856051183960e0349e Mon Sep 17 00:00:00 2001 From: Brian Hartvigsen Date: Thu, 8 Nov 2012 13:48:43 -0700 Subject: [PATCH 359/421] Update plugins/svn/svn.plugin.zsh Behave more like lib/git.zsh. Set `SVN_SHOW_BRANCH="true"` to display branch/tag or trunk instead of just repo name. Falls back to repo name if branch information is not available. Idea and awk call from revans/bash-it/themes/base.theme.bash --- plugins/svn/svn.plugin.zsh | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/plugins/svn/svn.plugin.zsh b/plugins/svn/svn.plugin.zsh index 4d5bfb8dd..bb46a7d0d 100644 --- a/plugins/svn/svn.plugin.zsh +++ b/plugins/svn/svn.plugin.zsh @@ -1,7 +1,14 @@ function svn_prompt_info { if [ $(in_svn) ]; then + if [ "x$SVN_SHOW_BRANCH" = "xtrue" ]; then + unset SVN_SHOW_BRANCH + _DISPLAY=$(svn_get_branch_name) + else + _DISPLAY=$(svn_get_repo_name) + fi echo "$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_PREFIX\ -$ZSH_THEME_REPO_NAME_COLOR$(svn_get_repo_name)$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR$(svn_dirty)$ZSH_PROMPT_BASE_COLOR" +$ZSH_THEME_REPO_NAME_COLOR$_DISPLAY$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR$(svn_dirty)$ZSH_PROMPT_BASE_COLOR" + unset _DISPLAY fi } @@ -20,6 +27,16 @@ function svn_get_repo_name { fi } +function svn_get_branch_name { + _DISPLAY=$(svn info 2> /dev/null | awk -F/ '/^URL:/ { for (i=0; i<=NF; i++) { if ($i == "branches" || $i == "tags" ) { print $(i+1); break }; if ($i == "trunk") { print $i; break } } }') + if [ "x$_DISPLAY" = "x" ]; then + svn_get_repo_name + else + echo $_DISPLAY + fi + unset _DISPLAY +} + function svn_get_rev_nr { if [ $(in_svn) ]; then svn info 2> /dev/null | sed -n s/Revision:\ //p From f2ac08832ad8a6a156117c870ace622b9a6035ac Mon Sep 17 00:00:00 2001 From: Caleb Epstein Date: Mon, 12 Nov 2012 11:53:09 -0500 Subject: [PATCH 360/421] Handle metachars in svn status output using grep -q --- plugins/svn/svn.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/svn/svn.plugin.zsh b/plugins/svn/svn.plugin.zsh index 4d5bfb8dd..d82e3b9ee 100644 --- a/plugins/svn/svn.plugin.zsh +++ b/plugins/svn/svn.plugin.zsh @@ -28,8 +28,8 @@ function svn_get_rev_nr { function svn_dirty_choose { if [ $(in_svn) ]; then - s=$(svn status|grep -E '^\s*[ACDIM!?L]' 2>/dev/null) - if [ $s ]; then + svn status 2> /dev/null | grep -Eq '^\s*[ACDIM!?L]' + if [ $pipestatus[-1] -ne 0 ]; then echo $1 else echo $2 From 91c57e6d426a1b5b3db3d7d9aaa5d922c00a5f09 Mon Sep 17 00:00:00 2001 From: Caleb Epstein Date: Tue, 13 Nov 2012 12:48:37 -0500 Subject: [PATCH 361/421] Untabify --- plugins/svn/svn.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/svn/svn.plugin.zsh b/plugins/svn/svn.plugin.zsh index d82e3b9ee..bd2767e3e 100644 --- a/plugins/svn/svn.plugin.zsh +++ b/plugins/svn/svn.plugin.zsh @@ -29,7 +29,7 @@ function svn_get_rev_nr { function svn_dirty_choose { if [ $(in_svn) ]; then svn status 2> /dev/null | grep -Eq '^\s*[ACDIM!?L]' - if [ $pipestatus[-1] -ne 0 ]; then + if [ $pipestatus[-1] -ne 0 ]; then echo $1 else echo $2 From 5b2ca3875a15bbae4f064cb98935461df2e93e15 Mon Sep 17 00:00:00 2001 From: CHH Date: Wed, 14 Nov 2012 19:09:13 +0800 Subject: [PATCH 362/421] Improved statistics functions, effect: 1 1124 24.6006% c 2 985 21.5583% git 3 343 7.50711% rails 4 328 7.17881% cd 5 314 6.8724% rspec 6 257 5.62486% la 7 197 4.31167% rake 8 154 3.37054% s 9 109 2.38564% .. 10 95 2.07923% rvm 11 68 1.48829% guard 12 36 0.787919% bundle 13 29 0.634712% ssh 14 28 0.612826% pry 15 27 0.590939% open 16 26 0.569052% middleman 17 26 0.569052% gem 18 24 0.525279% rm 19 24 0.525279% heroku 20 23 0.503392% nvm --- lib/functions.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/functions.zsh b/lib/functions.zsh index d2dcadd0c..63ab755cf 100644 --- a/lib/functions.zsh +++ b/lib/functions.zsh @@ -1,5 +1,5 @@ function zsh_stats() { - history | awk '{print $2}' | sort | uniq -c | sort -rn | head + history | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n20 } function uninstall_oh_my_zsh() { From 9ba799111c254f6edb537255d447b7052c8a45e6 Mon Sep 17 00:00:00 2001 From: Jim Hester Date: Fri, 16 Nov 2012 10:23:33 -0500 Subject: [PATCH 363/421] Replace reset-prompt with push-line and accept-line The in memory history is not updated until an accept line command, so you have to push enter before it is correct, this commit replaces the reset-prompt with an accept-line. It also adds a push-line, to preserve the current editing buffer --- .../per-directory-history/per-directory-history.plugin.zsh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/plugins/per-directory-history/per-directory-history.plugin.zsh b/plugins/per-directory-history/per-directory-history.plugin.zsh index 22383b8b9..61e8b5a62 100644 --- a/plugins/per-directory-history/per-directory-history.plugin.zsh +++ b/plugins/per-directory-history/per-directory-history.plugin.zsh @@ -65,12 +65,13 @@ function per-directory-history-toggle-history() { if [[ $_per_directory_history_is_global == true ]]; then _per-directory-history-set-directory-history - echo "using local history\n" + print "\nusing local history\n" else _per-directory-history-set-global-history - echo "using global history\n" + print "\nusing global history\n" fi - zle reset-prompt + zle .push-line + zle .accept-line } autoload per-directory-history-toggle-history From 7d9518d48d25c9510b765af04b3910de9a20a117 Mon Sep 17 00:00:00 2001 From: Jeong Mok Cho Date: Mon, 19 Nov 2012 17:04:10 +0900 Subject: [PATCH 364/421] Use rvm completion from ~/.rvm/scripts/zsh/Completion --- plugins/rvm/_rvm | 147 ------------------------------------- plugins/rvm/rvm.plugin.zsh | 2 + 2 files changed, 2 insertions(+), 147 deletions(-) delete mode 100644 plugins/rvm/_rvm diff --git a/plugins/rvm/_rvm b/plugins/rvm/_rvm deleted file mode 100644 index bba5304a0..000000000 --- a/plugins/rvm/_rvm +++ /dev/null @@ -1,147 +0,0 @@ -#compdef rvm - -local curcontext="$curcontext" state line cmds ret=1 - -_arguments -C \ - '(- 1 *)'{-v,--version}'[display version information]' \ - '(-l|--level)'{-l,--level}'+[patch level to use with rvm use / install]:number' \ - '(--prefix)--prefix[path for all rvm files (~/.rvm/), with trailing slash!]:path:_files' \ - '(--bin)--bin[path for binaries to be placed (~/.rvm/bin/)]:path:_files' \ - '(--source)--source[src directory to use (~/.rvm/src/)]:path:_files' \ - '(--archives)--archives[directory for downladed files (~/.rvm/archives/)]:path:_files' \ - '-S[Specify a script file to attempt to load and run (rubydo)]:file:_files' \ - '-e[Execute code from the command line]:code' \ - '(-G)-G[root gem path to use]:path:_files' \ - '(--gems)--gems[Used to set the gems_flag, use with remove to remove gems]' \ - '(--archive)--archive[Used to set the archive_flag, use with remove to remove archive]' \ - '(--patch)--patch[With MRI Rubies you may specify one or more full paths to patches]' \ - '(-C|--configure)'{-C,--configure}'=[custom configure options]' \ - '(--nice)--nice[process niceness (for slow computers, default 0)]:number' \ - '(--ree)--ree-options[Options passed directly to ree ./installer on the command line]:options' \ - '(--head)--head[with update, updates rvm to git head version]' \ - '(--rubygems)--rubygems[with update, updates rubygems for selected ruby]' \ - '(--default)--default[with ruby select, sets a default ruby for new shells]' \ - '(--debug)--debug[Toggle debug mode on for very verbose output]' \ - '(--trace)--trace[Toggle trace mode on to see EVERYTHING rvm is doing]' \ - '(--force)--force[Force install, removes old install & source before install]' \ - '(--summary)--summary[Used with rubydo to print out a summary of the commands run]' \ - '(--latest)--latest[with gemset --dump skips version strings for latest gem]' \ - '(--gems)--gems[with uninstall/remove removes gems with the interpreter]' \ - '(--docs)--docs[with install, attempt to generate ri after installation]' \ - '(--reconfigure)--reconfigure[Force ./configure on install even if Makefile already exists]' \ - '1: :->cmds' \ - '*: :->args' && ret=0 - -case $state in - cmds) - cmds=( - "version:show the rvm version installed in rvm_path" - "use:setup current shell to use a specific ruby version" - "reload:reload rvm source itself (useful after changing rvm source)" - "implode:(seppuku) removes the rvm installation completely. This means everything in $rvm_path (~/.rvm)." - "update:upgrades rvm to the latest version." - "reset:remove current and stored default & system settings." - "info :show the *current* environment information for current ruby" - "current:print the *current* ruby version and the name of any gemset being used." - "debug:show info plus additional information for common issues" - "install:install one or many ruby versions" - "uninstall:uninstall one or many ruby versions, leaves their sources" - "remove:uninstall one or many ruby versions and remove their sources" - "migrate:Lets you migrate all gemsets from one ruby to another." - "upgrade:Lets you upgrade from one version of a ruby to another, including migrating your gemsets semi-automatically." - "wrapper:generates a set of wrapper executables for a given ruby with the specified ruby and gemset combination. Used under the hood for passenger support and the like." - "cleanup:Lets you remove stale source folders / archives and other miscellaneous data associated with rvm." - "repair:Lets you repair parts of your environment e.g. wrappers, env files and and similar files (e.g. general maintenance)." - "snapshot:Lets your backup / restore an rvm installation in a lightweight manner." - "disk-usage:Tells you how much disk space rvm install is using." - "tools:Provides general information about the ruby environment, primarily useful when scripting rvm." - "docs:Tools to make installing ri and rdoc documentation easier." - "rvmrc:Tools related to managing rvmrc trust and loading." - "exec:runs an arbitrary command as a set operation." - "ruby:runs a named ruby file against specified and/or all rubies" - "gem:runs a gem command using selected ruby's 'gem'" - "rake:runs a rake task against specified and/or all rubies" - "tests:runs 'rake test' across selected ruby versions" - "specs:runs 'rake spec' across selected ruby versions" - "monitor:Monitor cwd for testing, run rake {spec,test} on changes." - "gemset:gemsets: http://rvm.beginrescueend.com/gemsets/" - "rubygems:Switches the installed version of rubygems for the current ruby." - "gemdir:display the path to the current gem directory (GEM_HOME)." - "srcdir:display the path to rvm source directory (may be yanked)" - "fetch:Performs an archive / src fetch only of the selected ruby." - "list:show currently installed rubies, interactive output." - "package:Install a dependency package {readline,iconv,zlib,openssl}" - "notes:Display notes, with operating system specifics." - "export:Temporarily set an environment variable in the current shell." - "unexport:Undo changes made to the environment by 'rvm export'." - ) - _describe -t commands 'rvm command' cmds && ret=0 - ;; - args) - case $line[1] in - (use|uninstall|remove|list) - _values -S , 'rubies' $(rvm list strings | sed -e 's/ruby-\([^) ]*\)-\([^) ]*\)/ruby-\1-\2 \1-\2 \1/g') default system && ret=0 - ;; - (install|fetch) - _values -S , 'rubies' $(rvm list known_strings) && ret=0 - ;; - gemset) - if (( CURRENT == 3 )); then - _values 'gemset_commands' \ - 'import' \ - 'export' \ - 'create' \ - 'copy' \ - 'rename' \ - 'empty' \ - 'delete' \ - 'name' \ - 'dir' \ - 'list' \ - 'list_all' \ - 'gemdir' \ - 'install' \ - 'pristine' \ - 'clear' \ - 'use' \ - 'update' \ - 'unpack' \ - 'globalcache' - else - _values -S , 'gemsets' $(rvm gemset list | grep -v gemset 2>/dev/null) - fi - ret=0 - ;; - package) - if (( CURRENT == 3 )); then - _values 'package_commands' \ - 'install' \ - 'uninstall' - else - _values 'packages' \ - 'readline' \ - 'iconv' \ - 'curl' \ - 'openssl' \ - 'zlib' \ - 'autoconf' \ - 'ncurses' \ - 'pkgconfig' \ - 'gettext' \ - 'glib' \ - 'mono' \ - 'llvm' \ - 'libxml2' \ - 'libxslt' \ - 'libyaml' - fi - ret=0 - ;; - *) - (( ret )) && _message 'no more arguments' - ;; - esac - ;; -esac - -return ret diff --git a/plugins/rvm/rvm.plugin.zsh b/plugins/rvm/rvm.plugin.zsh index 604c00713..27f29f2b3 100644 --- a/plugins/rvm/rvm.plugin.zsh +++ b/plugins/rvm/rvm.plugin.zsh @@ -1,3 +1,5 @@ +fpath=($rvm_path/scripts/zsh/Completion $fpath) + alias rubies='rvm list rubies' alias gemsets='rvm gemset list' From 4c96e530a3b4818b3d378949a5d13377ae7f45e9 Mon Sep 17 00:00:00 2001 From: Josh Davis Date: Mon, 19 Nov 2012 08:16:21 -0600 Subject: [PATCH 365/421] Added a CoffeeScript plugin. --- plugins/coffee/_coffee | 71 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 plugins/coffee/_coffee diff --git a/plugins/coffee/_coffee b/plugins/coffee/_coffee new file mode 100644 index 000000000..5c8eb9a08 --- /dev/null +++ b/plugins/coffee/_coffee @@ -0,0 +1,71 @@ +#compdef coffee +# ------------------------------------------------------------------------------ +# Copyright (c) 2011 Github zsh-users - http://github.com/zsh-users +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# * Neither the name of the zsh-users nor the +# names of its contributors may be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY +# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# ------------------------------------------------------------------------------ +# Description +# ----------- +# +# Completion script for Coffee.js v0.6.11 (http://coffeejs.org) +# +# ------------------------------------------------------------------------------ +# Authors +# ------- +# +# * Mario Fernandez (https://github.com/sirech) +# +# ------------------------------------------------------------------------------ + +local curcontext="$curcontext" state line ret=1 +typeset -A opt_args + +_arguments -C \ + '(- *)'{-h,--help}'[display this help message]' \ + '(- *)'{-v,--version}'[display the version number]' \ + '(-b --bare)'{-b,--bare}'[compile without a top-level function wrapper]' \ + '(-e --eval)'{-e,--eval}'[pass a string from the command line as input]:Inline Script' \ + '(-i --interactive)'{-i,--interactive}'[run an interactive CoffeeScript REPL]' \ + '(-j --join)'{-j,--join}'[concatenate the source CoffeeScript before compiling]:Destination JS file:_files -g "*.js"' \ + '(-l --lint)'{-l,--lint}'[pipe the compiled JavaScript through JavaScript Lint]' \ + '(--nodejs)--nodejs[pass options directly to the "node" binary]' \ + '(-c --compile)'{-c,--compile}'[compile to JavaScript and save as .js files]' \ + '(-o --output)'{-o,--output}'[set the output directory for compiled JavaScript]:Output Directory:_files -/' \ + '(-n -t -p)'{-n,--nodes}'[print out the parse tree that the parser produces]' \ + '(-n -t -p)'{-p,--print}'[print out the compiled JavaScript]' \ + '(-n -t -p)'{-t,--tokens}'[print out the tokens that the lexer/rewriter produce]' \ + '(-r --require)'{-r,--require}'[require a library before executing your script]:library' \ + '(-s --stdio)'{-s,--stdio}'[listen for and compile scripts over stdio]' \ + '(-w --watch)'{-w,--watch}'[watch scripts for changes and rerun commands]' \ + '*:script or directory:_files' && ret=0 + +return ret + +# Local Variables: +# mode: Shell-Script +# sh-indentation: 2 +# indent-tabs-mode: nil +# sh-basic-offset: 2 +# End: +# vim: ft=zsh sw=2 ts=2 et From 6f6a3c84356f19f14d69fdf994497a4ebb3fa8c1 Mon Sep 17 00:00:00 2001 From: Rui Marinho Date: Sun, 29 Jul 2012 02:32:11 +0200 Subject: [PATCH 366/421] Added sf Symfony2 binary alias --- plugins/symfony2/symfony2.plugin.zsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/symfony2/symfony2.plugin.zsh b/plugins/symfony2/symfony2.plugin.zsh index 223401298..cc9ffebc0 100644 --- a/plugins/symfony2/symfony2.plugin.zsh +++ b/plugins/symfony2/symfony2.plugin.zsh @@ -11,7 +11,9 @@ _symfony2 () { } compdef _symfony2 app/console +compdef _symfony2 sf #Alias alias sf2='php app/console' -alias sf2clear='php app/console cache:clear' \ No newline at end of file +alias sf2clear='php app/console cache:clear' + From 6c45d217af77552a4f0b09542985520a577af3d5 Mon Sep 17 00:00:00 2001 From: Tiago Ribeiro Date: Mon, 27 Aug 2012 17:20:07 +0100 Subject: [PATCH 367/421] Added host to prompt --- themes/norm.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/norm.zsh-theme b/themes/norm.zsh-theme index 5f0ad03ee..13077ccf5 100644 --- a/themes/norm.zsh-theme +++ b/themes/norm.zsh-theme @@ -1,4 +1,4 @@ -PROMPT='%{$fg[yellow]%}λ %{$fg[green]%}%c %{$fg[yellow]%}→ $(git_prompt_info)%{$reset_color%}' +PROMPT='%{$fg[yellow]%}λ %m %{$fg[green]%}%c %{$fg[yellow]%}→ $(git_prompt_info)%{$reset_color%}' ZSH_THEME_GIT_PROMPT_PREFIX="λ %{$fg[blue]%}git %{$fg[red]%}" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$fg[yellow]%} → %{$reset_color%}" From 003b0da9e5b2b9f230296aeaedfc946579222d81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81rni=20Hermann=20Reynisson?= Date: Tue, 20 Nov 2012 15:01:39 +0000 Subject: [PATCH 368/421] Use pull --rebase for 'gup' shortcut. Instead of git fetch && git rebase. --- plugins/git/git.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index d3d3f702a..adedea79e 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -5,7 +5,7 @@ alias gst='git status' compdef _git gst=git-status alias gl='git pull' compdef _git gl=git-pull -alias gup='git fetch && git rebase' +alias gup='git pull --rebase' compdef _git gup=git-fetch alias gp='git push' compdef _git gp=git-push From 7be660bf1d0d8ae054b645278ea4e79e71c8beec Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Tue, 20 Nov 2012 13:13:04 -0500 Subject: [PATCH 369/421] Adding grt alias to the git plugin. --- plugins/git/git.plugin.zsh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index d3d3f702a..71388c53a 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -39,6 +39,10 @@ compdef _git gm=git-merge alias grh='git reset HEAD' alias grhh='git reset HEAD --hard' +# Will cd into the top of the current repository +# or submodule. +alias grt='cd $(git rev-parse --show-toplevel || echo ".")' + # Git and svn mix alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk' compdef git-svn-dcommit-push=git From 72974ce409277c52eb30461e48f0755916a49f05 Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Wed, 21 Nov 2012 15:29:09 -0200 Subject: [PATCH 370/421] totvs utils --- .gitignore | 1 - custom/totvs.zsh | 74 ++++++++++++++++++++++++++++++++++++++ plugins/mvn/mvn.plugin.zsh | 2 +- 3 files changed, 75 insertions(+), 2 deletions(-) create mode 100644 custom/totvs.zsh diff --git a/.gitignore b/.gitignore index 51a5ee6c3..4cb1720e7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,6 @@ locals.zsh log/.zsh_history projects.zsh -custom/* !custom/example !custom/example.zsh *.swp diff --git a/custom/totvs.zsh b/custom/totvs.zsh new file mode 100644 index 000000000..9ef5fd641 --- /dev/null +++ b/custom/totvs.zsh @@ -0,0 +1,74 @@ +# +# Just some utilities for use in ecm development. +# + +setopt rmstarsilent + +HOME="/home/carlos" +ECM_WS="$HOME/totvs/ws" +ECM_JBOSS="$HOME/Public/ecm/JBoss-7.1.1" +ECM_PORT="8080" +VOLDEMORT=$ECM_WS/voldemort +ECM=$ECM_WS/ecm +INSTALLER="n" + +# fuckin aliases +alias ecmu=ecmup +alias ecmb=ecmbuild +alias ecmc=ecmclean +alias ecms=ecmstart +alias ecmo=ecmstop +alias ecm=goecm + + +# update ecm +ecmup() { + echo "update all the things!" + cd $VOLDEMORT && svn up + cd $ECM && svn up +} + +# build it! +ecmbuild() { + vared -p 'build? no problem sir, do you want a installer? (y/N) ' INSTALLER + cd $VOLDEMORT && mvncie + cd $VOLDEMORT/social-ecm + cd $VOLDEMORT/wcm && mvncie + cd $ECM/ecm/wecmpackage && mvncie + cd $VOLDEMORT/ecm && mvncie + if [[ $INSTALLER -eq 'n' ]]; then + cd $VOLDEMORT/ecm/installer + mvnci -am -Drun=installer -DLinux64=true -DappServer=jboss + else + cd $VOLDEMORT/ecm/build && mvnci + cd $VOLDEMORT/social-ecm/build && mvnci + fi +} + +# clean jboss trash folders +ecmclean() { + echo "cleaning jboss shit" + rm -rf $ECM_JBOSS/standalone/{deployments/*,log,tmp} 2> /dev/null +} + +# start jboss server +ecmstart() { + echo "starting jboss" + JAVA_OPTS="-Xmx2048m -XX:MaxPermSize=512m -DzkRun -Dbootstrap_conf=true" $ECM_JBOSS/bin/standalone.sh +} + +# stop jboss (usually on 8080) +ecmstop() { + echo "kill jboss (or whatever you are running on 8080" + fuser -k $ECM_PORT/tcp +} + +# do all the things +goecm() { + echo "serious business here. let's have a coffee.." + ecmstop + ecmclean + ecmbuild && ecmup && ecmstart +} + + diff --git a/plugins/mvn/mvn.plugin.zsh b/plugins/mvn/mvn.plugin.zsh index cde467981..f250c2a27 100644 --- a/plugins/mvn/mvn.plugin.zsh +++ b/plugins/mvn/mvn.plugin.zsh @@ -37,7 +37,7 @@ mvn-color() } # Override the mvn command with the colorized one. -alias mvn="mvn-color" +#alias mvn="mvn-color" # aliases alias mvncie='mvn clean install eclipse:eclipse' From 50e538aeb5cc2ac9388390fd03c2189635f17b57 Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Wed, 21 Nov 2012 15:35:28 -0200 Subject: [PATCH 371/421] oops --- custom/totvs.zsh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/custom/totvs.zsh b/custom/totvs.zsh index 9ef5fd641..e9924c147 100644 --- a/custom/totvs.zsh +++ b/custom/totvs.zsh @@ -36,7 +36,7 @@ ecmbuild() { cd $VOLDEMORT/wcm && mvncie cd $ECM/ecm/wecmpackage && mvncie cd $VOLDEMORT/ecm && mvncie - if [[ $INSTALLER -eq 'n' ]]; then + if [[ $INSTALLER -eq 'y' ]]; then cd $VOLDEMORT/ecm/installer mvnci -am -Drun=installer -DLinux64=true -DappServer=jboss else @@ -68,7 +68,8 @@ goecm() { echo "serious business here. let's have a coffee.." ecmstop ecmclean - ecmbuild && ecmup && ecmstart + ecmup + ecmbuild && ecmstart } From 89614be1af55be2f2fb2b49782f80644d619ef6f Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Wed, 21 Nov 2012 16:01:28 -0200 Subject: [PATCH 372/421] param -i para gerar installer --- custom/totvs.zsh | 41 ++++++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/custom/totvs.zsh b/custom/totvs.zsh index e9924c147..065413758 100644 --- a/custom/totvs.zsh +++ b/custom/totvs.zsh @@ -18,8 +18,8 @@ alias ecmb=ecmbuild alias ecmc=ecmclean alias ecms=ecmstart alias ecmo=ecmstop -alias ecm=goecm - +alias ecmi=ecminstall +alias ecm=ecmfull # update ecm ecmup() { @@ -30,19 +30,31 @@ ecmup() { # build it! ecmbuild() { - vared -p 'build? no problem sir, do you want a installer? (y/N) ' INSTALLER + echo "build? no problem sir..." + + case $@ in + -*i*) + INSTALLER=y + ;; + esac + cd $VOLDEMORT && mvncie cd $VOLDEMORT/social-ecm cd $VOLDEMORT/wcm && mvncie cd $ECM/ecm/wecmpackage && mvncie cd $VOLDEMORT/ecm && mvncie - if [[ $INSTALLER -eq 'y' ]]; then - cd $VOLDEMORT/ecm/installer - mvnci -am -Drun=installer -DLinux64=true -DappServer=jboss - else - cd $VOLDEMORT/ecm/build && mvnci - cd $VOLDEMORT/social-ecm/build && mvnci - fi + ecminstall +} + +# gen installer or cp wars... +ecminstall() { + if [[ "$INSTALLER" == "y" ]]; then + cd $VOLDEMORT/ecm/installer + mvnci -am -Drun=installer -DLinux64=true -DappServer=jboss + else + cd $VOLDEMORT/ecm/build && mvnci + cd $VOLDEMORT/social-ecm/build && mvnci + fi } # clean jboss trash folders @@ -53,8 +65,11 @@ ecmclean() { # start jboss server ecmstart() { - echo "starting jboss" - JAVA_OPTS="-Xmx2048m -XX:MaxPermSize=512m -DzkRun -Dbootstrap_conf=true" $ECM_JBOSS/bin/standalone.sh + # why shall I start server if i just gen a installer? + if [[ "$INSTALLER" == "y" ]]; then + echo "starting jboss" + JAVA_OPTS="-Xmx2048m -XX:MaxPermSize=512m -DzkRun -Dbootstrap_conf=true" $ECM_JBOSS/bin/standalone.sh + fi } # stop jboss (usually on 8080) @@ -64,7 +79,7 @@ ecmstop() { } # do all the things -goecm() { +ecmfull() { echo "serious business here. let's have a coffee.." ecmstop ecmclean From 9b1c64d7ffeb9ee9ea806a560bc929a683ff15f1 Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Wed, 21 Nov 2012 16:20:43 -0200 Subject: [PATCH 373/421] go --- custom/totvs.zsh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/custom/totvs.zsh b/custom/totvs.zsh index 065413758..d1456bdc5 100644 --- a/custom/totvs.zsh +++ b/custom/totvs.zsh @@ -49,10 +49,13 @@ ecmbuild() { # gen installer or cp wars... ecminstall() { if [[ "$INSTALLER" == "y" ]]; then - cd $VOLDEMORT/ecm/installer + echo "generating installer..." + cd $VOLDEMORT/ecm/installer mvnci -am -Drun=installer -DLinux64=true -DappServer=jboss else + echo "cpying wars..." cd $VOLDEMORT/ecm/build && mvnci + cd $VOLDEMORT/wcm/build && mvnci cd $VOLDEMORT/social-ecm/build && mvnci fi } From 2acd30ed0508ddbda188144c4f7b0c4bb351bd43 Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Wed, 21 Nov 2012 16:35:31 -0200 Subject: [PATCH 374/421] fixing issue with solr in jboss start --- custom/totvs.zsh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/custom/totvs.zsh b/custom/totvs.zsh index d1456bdc5..25945548a 100644 --- a/custom/totvs.zsh +++ b/custom/totvs.zsh @@ -69,9 +69,10 @@ ecmclean() { # start jboss server ecmstart() { # why shall I start server if i just gen a installer? - if [[ "$INSTALLER" == "y" ]]; then + if [[ "$INSTALLER" == "n" ]]; then echo "starting jboss" - JAVA_OPTS="-Xmx2048m -XX:MaxPermSize=512m -DzkRun -Dbootstrap_conf=true" $ECM_JBOSS/bin/standalone.sh + cd $ECM_JBOSS/bin + JAVA_OPTS="-Xmx2048m -XX:MaxPermSize=512m -DzkRun -Dbootstrap_conf=true" ./standalone.sh fi } From af729cc47698e4a894c074f5c5d19384cf175baa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Denys=20L=C3=B3zko?= Date: Thu, 22 Nov 2012 00:46:50 +0200 Subject: [PATCH 375/421] Add support of screen-* $TERM in screen plugin --- plugins/screen/screen.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/screen/screen.plugin.zsh b/plugins/screen/screen.plugin.zsh index 98178e807..7009e7a91 100644 --- a/plugins/screen/screen.plugin.zsh +++ b/plugins/screen/screen.plugin.zsh @@ -1,6 +1,6 @@ # if using GNU screen, let the zsh tell screen what the title and hardstatus # of the tab window should be. -if [[ $TERM == "screen" ]]; then +if [[ "$TERM" == screen* ]]; then if [[ $_GET_PATH == '' ]]; then _GET_PATH='echo $PWD | sed "s/^\/Users\//~/;s/^\/home\//~/;s/^~$USER/~/"' fi From a366456284d5a454d8c5a25fdf88ce428ca28f54 Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Thu, 22 Nov 2012 09:20:31 -0200 Subject: [PATCH 376/421] fixing some build issues... --- custom/totvs.zsh | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/custom/totvs.zsh b/custom/totvs.zsh index 25945548a..2de9f4ab6 100644 --- a/custom/totvs.zsh +++ b/custom/totvs.zsh @@ -38,11 +38,11 @@ ecmbuild() { ;; esac - cd $VOLDEMORT && mvncie - cd $VOLDEMORT/social-ecm - cd $VOLDEMORT/wcm && mvncie - cd $ECM/ecm/wecmpackage && mvncie - cd $VOLDEMORT/ecm && mvncie + cd $VOLDEMORT && mvncie && \ + cd $VOLDEMORT/social-ecm && \ + cd $VOLDEMORT/wcm && mvncie && \ + cd $ECM/wecmpackage && mvncie && \ + cd $VOLDEMORT/ecm && mvncie && \ ecminstall } @@ -54,8 +54,8 @@ ecminstall() { mvnci -am -Drun=installer -DLinux64=true -DappServer=jboss else echo "cpying wars..." - cd $VOLDEMORT/ecm/build && mvnci - cd $VOLDEMORT/wcm/build && mvnci + cd $VOLDEMORT/ecm/build && mvnci && \ + cd $VOLDEMORT/wcm/build && mvnci && \ cd $VOLDEMORT/social-ecm/build && mvnci fi } From 60b7dd8af55d8e27a7326585753867f738c35dcd Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Thu, 22 Nov 2012 10:42:11 -0200 Subject: [PATCH 377/421] fixing various issues with build, add runinstall option --- custom/totvs.zsh | 62 +++++++++++++++++++++++++++++++++++------------- 1 file changed, 45 insertions(+), 17 deletions(-) diff --git a/custom/totvs.zsh b/custom/totvs.zsh index 2de9f4ab6..f3a449da6 100644 --- a/custom/totvs.zsh +++ b/custom/totvs.zsh @@ -11,6 +11,7 @@ ECM_PORT="8080" VOLDEMORT=$ECM_WS/voldemort ECM=$ECM_WS/ecm INSTALLER="n" +DRY_CLEAN="n" # fuckin aliases alias ecmu=ecmup @@ -19,6 +20,7 @@ alias ecmc=ecmclean alias ecms=ecmstart alias ecmo=ecmstop alias ecmi=ecminstall +alias ecmri=ecmruninstall alias ecm=ecmfull # update ecm @@ -31,13 +33,6 @@ ecmup() { # build it! ecmbuild() { echo "build? no problem sir..." - - case $@ in - -*i*) - INSTALLER=y - ;; - esac - cd $VOLDEMORT && mvncie && \ cd $VOLDEMORT/social-ecm && \ cd $VOLDEMORT/wcm && mvncie && \ @@ -48,34 +43,67 @@ ecmbuild() { # gen installer or cp wars... ecminstall() { - if [[ "$INSTALLER" == "y" ]]; then - echo "generating installer..." - cd $VOLDEMORT/ecm/installer - mvnci -am -Drun=installer -DLinux64=true -DappServer=jboss - else + case $@ in + -*i*) + INSTALLER=y + ;; + esac + if [[ "$INSTALLER" == "y" ]]; then + echo "generating installer..." + cd $VOLDEMORT/ecm/installer + mvnci -am -Drun=installer -DLinux64=true -DappServer=jboss + else echo "cpying wars..." - cd $VOLDEMORT/ecm/build && mvnci && \ + cd $VOLDEMORT/ecm/build && mvnci && \ cd $VOLDEMORT/wcm/build && mvnci && \ - cd $VOLDEMORT/social-ecm/build && mvnci - fi + cd $VOLDEMORT/social-ecm/build && mvnci + fi } # clean jboss trash folders ecmclean() { echo "cleaning jboss shit" - rm -rf $ECM_JBOSS/standalone/{deployments/*,log,tmp} 2> /dev/null + case $@ in + -*d*) + DRY_CLEAN="y" + ;; + esac + if [[ "$DRY_CLEAN" == "y" ]]; then + rm -rf $ECM_JBOSS/standalone/deployments/*.{failed,deployed,dodeploy,deploying} + else + rm -rf $ECM_JBOSS/standalone/deployments/* + fi + rm -rf $ECM_JBOSS/standalone/{log,tmp,data} + rm -rf $ECM_JBOSS/solr/zoo_data } # start jboss server ecmstart() { # why shall I start server if i just gen a installer? - if [[ "$INSTALLER" == "n" ]]; then + if [[ "$INSTALLER" == "y" ]]; then + ecmruninstall + else echo "starting jboss" cd $ECM_JBOSS/bin JAVA_OPTS="-Xmx2048m -XX:MaxPermSize=512m -DzkRun -Dbootstrap_conf=true" ./standalone.sh fi } +ecmruninstall() { + echo "ok, lets install this crap :)" + cd $VOLDEMORT/ecm/installer/izpack/target + if [[ -f ECM-Linux64.zip ]]; then + mkdir -p /tmp/ecmi + rm -rf /tmp/ecmi/* + unzip ECM-Linux64 -d /tmp/ecmi/ + cd /tmp/ecmi/ + chmod a+x ECM-Installer-64.sh + ./ECM-Installer-64.sh + else + echo "uhoh, installer doesnt exist ($VOLDEMORT/ecm/installer/izpack/target/ECM-Linux64.zip)" + fi +} + # stop jboss (usually on 8080) ecmstop() { echo "kill jboss (or whatever you are running on 8080" From 5ff4a0030f1b29d8e45e6f1336232a81c1b93b3d Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Thu, 22 Nov 2012 14:20:53 -0200 Subject: [PATCH 378/421] e alias --- custom/totvs.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/custom/totvs.zsh b/custom/totvs.zsh index f3a449da6..883bdf7dd 100644 --- a/custom/totvs.zsh +++ b/custom/totvs.zsh @@ -22,6 +22,8 @@ alias ecmo=ecmstop alias ecmi=ecminstall alias ecmri=ecmruninstall alias ecm=ecmfull +alias e='MAVEN_OPTS="-Xmx2048m -XX:MaxPermSize=512m -DskipTests=true" ecm' + # update ecm ecmup() { From 5a11228e93c667dd6d1cc87ec385ddf39d9e4726 Mon Sep 17 00:00:00 2001 From: Felipe Contreras Date: Thu, 22 Nov 2012 17:38:39 +0100 Subject: [PATCH 379/421] Add gifast plugin Using the upstream git completion and prompt stuff. Signed-off-by: Felipe Contreras --- plugins/gitfast/_git | 78 + plugins/gitfast/git-completion.bash | 2483 +++++++++++++++++++++++++++ plugins/gitfast/git-prompt.sh | 290 ++++ plugins/gitfast/gitfast.plugin.zsh | 7 + 4 files changed, 2858 insertions(+) create mode 100644 plugins/gitfast/_git create mode 100644 plugins/gitfast/git-completion.bash create mode 100644 plugins/gitfast/git-prompt.sh create mode 100644 plugins/gitfast/gitfast.plugin.zsh diff --git a/plugins/gitfast/_git b/plugins/gitfast/_git new file mode 100644 index 000000000..45775021f --- /dev/null +++ b/plugins/gitfast/_git @@ -0,0 +1,78 @@ +#compdef git gitk + +# zsh completion wrapper for git +# +# You need git's bash completion script installed somewhere, by default on the +# same directory as this script. +# +# If your script is on ~/.git-completion.sh instead, you can configure it on +# your ~/.zshrc: +# +# zstyle ':completion:*:*:git:*' script ~/.git-completion.sh +# +# The recommended way to install this script is to copy to +# '~/.zsh/completion/_git', and then add the following to your ~/.zshrc file: +# +# fpath=(~/.zsh/completion $fpath) + +complete () +{ + # do nothing + return 0 +} + +zstyle -s ":completion:*:*:git:*" script script +test -z "$script" && script="$(dirname ${funcsourcetrace[1]%:*})"/git-completion.bash +ZSH_VERSION='' . "$script" + +__gitcomp () +{ + emulate -L zsh + + local cur_="${3-$cur}" + + case "$cur_" in + --*=) + ;; + *) + local c IFS=$' \t\n' + local -a array + for c in ${=1}; do + c="$c${4-}" + case $c in + --*=*|*.) ;; + *) c="$c " ;; + esac + array+=("$c") + done + compset -P '*[=:]' + compadd -Q -S '' -p "${2-}" -a -- array && _ret=0 + ;; + esac +} + +__gitcomp_nl () +{ + emulate -L zsh + + local IFS=$'\n' + compset -P '*[=:]' + compadd -Q -S "${4- }" -p "${2-}" -- ${=1} && _ret=0 +} + +_git () +{ + local _ret=1 + () { + emulate -L ksh + local cur cword prev + cur=${words[CURRENT-1]} + prev=${words[CURRENT-2]} + let cword=CURRENT-1 + __${service}_main + } + let _ret && _default -S '' && _ret=0 + return _ret +} + +_git diff --git a/plugins/gitfast/git-completion.bash b/plugins/gitfast/git-completion.bash new file mode 100644 index 000000000..be800e09b --- /dev/null +++ b/plugins/gitfast/git-completion.bash @@ -0,0 +1,2483 @@ +#!bash +# +# bash/zsh completion support for core Git. +# +# Copyright (C) 2006,2007 Shawn O. Pearce +# Conceptually based on gitcompletion (http://gitweb.hawaga.org.uk/). +# Distributed under the GNU General Public License, version 2.0. +# +# The contained completion routines provide support for completing: +# +# *) local and remote branch names +# *) local and remote tag names +# *) .git/remotes file names +# *) git 'subcommands' +# *) tree paths within 'ref:path/to/file' expressions +# *) common --long-options +# +# To use these routines: +# +# 1) Copy this file to somewhere (e.g. ~/.git-completion.sh). +# 2) Add the following line to your .bashrc/.zshrc: +# source ~/.git-completion.sh +# 3) Consider changing your PS1 to also show the current branch, +# see git-prompt.sh for details. + +if [[ -n ${ZSH_VERSION-} ]]; then + autoload -U +X bashcompinit && bashcompinit +fi + +case "$COMP_WORDBREAKS" in +*:*) : great ;; +*) COMP_WORDBREAKS="$COMP_WORDBREAKS:" +esac + +# __gitdir accepts 0 or 1 arguments (i.e., location) +# returns location of .git repo +__gitdir () +{ + # Note: this function is duplicated in git-prompt.sh + # When updating it, make sure you update the other one to match. + if [ -z "${1-}" ]; then + if [ -n "${__git_dir-}" ]; then + echo "$__git_dir" + elif [ -n "${GIT_DIR-}" ]; then + test -d "${GIT_DIR-}" || return 1 + echo "$GIT_DIR" + elif [ -d .git ]; then + echo .git + else + git rev-parse --git-dir 2>/dev/null + fi + elif [ -d "$1/.git" ]; then + echo "$1/.git" + else + echo "$1" + fi +} + +__gitcomp_1 () +{ + local c IFS=$' \t\n' + for c in $1; do + c="$c$2" + case $c in + --*=*|*.) ;; + *) c="$c " ;; + esac + printf '%s\n' "$c" + done +} + +# The following function is based on code from: +# +# bash_completion - programmable completion functions for bash 3.2+ +# +# Copyright © 2006-2008, Ian Macdonald +# © 2009-2010, Bash Completion Maintainers +# +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# The latest version of this software can be obtained here: +# +# http://bash-completion.alioth.debian.org/ +# +# RELEASE: 2.x + +# This function can be used to access a tokenized list of words +# on the command line: +# +# __git_reassemble_comp_words_by_ref '=:' +# if test "${words_[cword_-1]}" = -w +# then +# ... +# fi +# +# The argument should be a collection of characters from the list of +# word completion separators (COMP_WORDBREAKS) to treat as ordinary +# characters. +# +# This is roughly equivalent to going back in time and setting +# COMP_WORDBREAKS to exclude those characters. The intent is to +# make option types like --date= and : easy to +# recognize by treating each shell word as a single token. +# +# It is best not to set COMP_WORDBREAKS directly because the value is +# shared with other completion scripts. By the time the completion +# function gets called, COMP_WORDS has already been populated so local +# changes to COMP_WORDBREAKS have no effect. +# +# Output: words_, cword_, cur_. + +__git_reassemble_comp_words_by_ref() +{ + local exclude i j first + # Which word separators to exclude? + exclude="${1//[^$COMP_WORDBREAKS]}" + cword_=$COMP_CWORD + if [ -z "$exclude" ]; then + words_=("${COMP_WORDS[@]}") + return + fi + # List of word completion separators has shrunk; + # re-assemble words to complete. + for ((i=0, j=0; i < ${#COMP_WORDS[@]}; i++, j++)); do + # Append each nonempty word consisting of just + # word separator characters to the current word. + first=t + while + [ $i -gt 0 ] && + [ -n "${COMP_WORDS[$i]}" ] && + # word consists of excluded word separators + [ "${COMP_WORDS[$i]//[^$exclude]}" = "${COMP_WORDS[$i]}" ] + do + # Attach to the previous token, + # unless the previous token is the command name. + if [ $j -ge 2 ] && [ -n "$first" ]; then + ((j--)) + fi + first= + words_[$j]=${words_[j]}${COMP_WORDS[i]} + if [ $i = $COMP_CWORD ]; then + cword_=$j + fi + if (($i < ${#COMP_WORDS[@]} - 1)); then + ((i++)) + else + # Done. + return + fi + done + words_[$j]=${words_[j]}${COMP_WORDS[i]} + if [ $i = $COMP_CWORD ]; then + cword_=$j + fi + done +} + +if ! type _get_comp_words_by_ref >/dev/null 2>&1; then +if [[ -z ${ZSH_VERSION:+set} ]]; then +_get_comp_words_by_ref () +{ + local exclude cur_ words_ cword_ + if [ "$1" = "-n" ]; then + exclude=$2 + shift 2 + fi + __git_reassemble_comp_words_by_ref "$exclude" + cur_=${words_[cword_]} + while [ $# -gt 0 ]; do + case "$1" in + cur) + cur=$cur_ + ;; + prev) + prev=${words_[$cword_-1]} + ;; + words) + words=("${words_[@]}") + ;; + cword) + cword=$cword_ + ;; + esac + shift + done +} +else +_get_comp_words_by_ref () +{ + while [ $# -gt 0 ]; do + case "$1" in + cur) + cur=${COMP_WORDS[COMP_CWORD]} + ;; + prev) + prev=${COMP_WORDS[COMP_CWORD-1]} + ;; + words) + words=("${COMP_WORDS[@]}") + ;; + cword) + cword=$COMP_CWORD + ;; + -n) + # assume COMP_WORDBREAKS is already set sanely + shift + ;; + esac + shift + done +} +fi +fi + +# Generates completion reply with compgen, appending a space to possible +# completion words, if necessary. +# It accepts 1 to 4 arguments: +# 1: List of possible completion words. +# 2: A prefix to be added to each possible completion word (optional). +# 3: Generate possible completion matches for this word (optional). +# 4: A suffix to be appended to each possible completion word (optional). +__gitcomp () +{ + local cur_="${3-$cur}" + + case "$cur_" in + --*=) + COMPREPLY=() + ;; + *) + local IFS=$'\n' + COMPREPLY=($(compgen -P "${2-}" \ + -W "$(__gitcomp_1 "${1-}" "${4-}")" \ + -- "$cur_")) + ;; + esac +} + +# Generates completion reply with compgen from newline-separated possible +# completion words by appending a space to all of them. +# It accepts 1 to 4 arguments: +# 1: List of possible completion words, separated by a single newline. +# 2: A prefix to be added to each possible completion word (optional). +# 3: Generate possible completion matches for this word (optional). +# 4: A suffix to be appended to each possible completion word instead of +# the default space (optional). If specified but empty, nothing is +# appended. +__gitcomp_nl () +{ + local IFS=$'\n' + COMPREPLY=($(compgen -P "${2-}" -S "${4- }" -W "$1" -- "${3-$cur}")) +} + +__git_heads () +{ + local dir="$(__gitdir)" + if [ -d "$dir" ]; then + git --git-dir="$dir" for-each-ref --format='%(refname:short)' \ + refs/heads + return + fi +} + +__git_tags () +{ + local dir="$(__gitdir)" + if [ -d "$dir" ]; then + git --git-dir="$dir" for-each-ref --format='%(refname:short)' \ + refs/tags + return + fi +} + +# __git_refs accepts 0, 1 (to pass to __gitdir), or 2 arguments +# presence of 2nd argument means use the guess heuristic employed +# by checkout for tracking branches +__git_refs () +{ + local i hash dir="$(__gitdir "${1-}")" track="${2-}" + local format refs + if [ -d "$dir" ]; then + case "$cur" in + refs|refs/*) + format="refname" + refs="${cur%/*}" + track="" + ;; + *) + for i in HEAD FETCH_HEAD ORIG_HEAD MERGE_HEAD; do + if [ -e "$dir/$i" ]; then echo $i; fi + done + format="refname:short" + refs="refs/tags refs/heads refs/remotes" + ;; + esac + git --git-dir="$dir" for-each-ref --format="%($format)" \ + $refs + if [ -n "$track" ]; then + # employ the heuristic used by git checkout + # Try to find a remote branch that matches the completion word + # but only output if the branch name is unique + local ref entry + git --git-dir="$dir" for-each-ref --shell --format="ref=%(refname:short)" \ + "refs/remotes/" | \ + while read -r entry; do + eval "$entry" + ref="${ref#*/}" + if [[ "$ref" == "$cur"* ]]; then + echo "$ref" + fi + done | uniq -u + fi + return + fi + case "$cur" in + refs|refs/*) + git ls-remote "$dir" "$cur*" 2>/dev/null | \ + while read -r hash i; do + case "$i" in + *^{}) ;; + *) echo "$i" ;; + esac + done + ;; + *) + git ls-remote "$dir" HEAD ORIG_HEAD 'refs/tags/*' 'refs/heads/*' 'refs/remotes/*' 2>/dev/null | \ + while read -r hash i; do + case "$i" in + *^{}) ;; + refs/*) echo "${i#refs/*/}" ;; + *) echo "$i" ;; + esac + done + ;; + esac +} + +# __git_refs2 requires 1 argument (to pass to __git_refs) +__git_refs2 () +{ + local i + for i in $(__git_refs "$1"); do + echo "$i:$i" + done +} + +# __git_refs_remotes requires 1 argument (to pass to ls-remote) +__git_refs_remotes () +{ + local i hash + git ls-remote "$1" 'refs/heads/*' 2>/dev/null | \ + while read -r hash i; do + echo "$i:refs/remotes/$1/${i#refs/heads/}" + done +} + +__git_remotes () +{ + local i IFS=$'\n' d="$(__gitdir)" + test -d "$d/remotes" && ls -1 "$d/remotes" + for i in $(git --git-dir="$d" config --get-regexp 'remote\..*\.url' 2>/dev/null); do + i="${i#remote.}" + echo "${i/.url*/}" + done +} + +__git_list_merge_strategies () +{ + git merge -s help 2>&1 | + sed -n -e '/[Aa]vailable strategies are: /,/^$/{ + s/\.$// + s/.*:// + s/^[ ]*// + s/[ ]*$// + p + }' +} + +__git_merge_strategies= +# 'git merge -s help' (and thus detection of the merge strategy +# list) fails, unfortunately, if run outside of any git working +# tree. __git_merge_strategies is set to the empty string in +# that case, and the detection will be repeated the next time it +# is needed. +__git_compute_merge_strategies () +{ + test -n "$__git_merge_strategies" || + __git_merge_strategies=$(__git_list_merge_strategies) +} + +__git_complete_revlist_file () +{ + local pfx ls ref cur_="$cur" + case "$cur_" in + *..?*:*) + return + ;; + ?*:*) + ref="${cur_%%:*}" + cur_="${cur_#*:}" + case "$cur_" in + ?*/*) + pfx="${cur_%/*}" + cur_="${cur_##*/}" + ls="$ref:$pfx" + pfx="$pfx/" + ;; + *) + ls="$ref" + ;; + esac + + case "$COMP_WORDBREAKS" in + *:*) : great ;; + *) pfx="$ref:$pfx" ;; + esac + + __gitcomp_nl "$(git --git-dir="$(__gitdir)" ls-tree "$ls" \ + | sed '/^100... blob /{ + s,^.* ,, + s,$, , + } + /^120000 blob /{ + s,^.* ,, + s,$, , + } + /^040000 tree /{ + s,^.* ,, + s,$,/, + } + s/^.* //')" \ + "$pfx" "$cur_" "" + ;; + *...*) + pfx="${cur_%...*}..." + cur_="${cur_#*...}" + __gitcomp_nl "$(__git_refs)" "$pfx" "$cur_" + ;; + *..*) + pfx="${cur_%..*}.." + cur_="${cur_#*..}" + __gitcomp_nl "$(__git_refs)" "$pfx" "$cur_" + ;; + *) + __gitcomp_nl "$(__git_refs)" + ;; + esac +} + + +__git_complete_file () +{ + __git_complete_revlist_file +} + +__git_complete_revlist () +{ + __git_complete_revlist_file +} + +__git_complete_remote_or_refspec () +{ + local cur_="$cur" cmd="${words[1]}" + local i c=2 remote="" pfx="" lhs=1 no_complete_refspec=0 + if [ "$cmd" = "remote" ]; then + ((c++)) + fi + while [ $c -lt $cword ]; do + i="${words[c]}" + case "$i" in + --mirror) [ "$cmd" = "push" ] && no_complete_refspec=1 ;; + --all) + case "$cmd" in + push) no_complete_refspec=1 ;; + fetch) + COMPREPLY=() + return + ;; + *) ;; + esac + ;; + -*) ;; + *) remote="$i"; break ;; + esac + ((c++)) + done + if [ -z "$remote" ]; then + __gitcomp_nl "$(__git_remotes)" + return + fi + if [ $no_complete_refspec = 1 ]; then + COMPREPLY=() + return + fi + [ "$remote" = "." ] && remote= + case "$cur_" in + *:*) + case "$COMP_WORDBREAKS" in + *:*) : great ;; + *) pfx="${cur_%%:*}:" ;; + esac + cur_="${cur_#*:}" + lhs=0 + ;; + +*) + pfx="+" + cur_="${cur_#+}" + ;; + esac + case "$cmd" in + fetch) + if [ $lhs = 1 ]; then + __gitcomp_nl "$(__git_refs2 "$remote")" "$pfx" "$cur_" + else + __gitcomp_nl "$(__git_refs)" "$pfx" "$cur_" + fi + ;; + pull|remote) + if [ $lhs = 1 ]; then + __gitcomp_nl "$(__git_refs "$remote")" "$pfx" "$cur_" + else + __gitcomp_nl "$(__git_refs)" "$pfx" "$cur_" + fi + ;; + push) + if [ $lhs = 1 ]; then + __gitcomp_nl "$(__git_refs)" "$pfx" "$cur_" + else + __gitcomp_nl "$(__git_refs "$remote")" "$pfx" "$cur_" + fi + ;; + esac +} + +__git_complete_strategy () +{ + __git_compute_merge_strategies + case "$prev" in + -s|--strategy) + __gitcomp "$__git_merge_strategies" + return 0 + esac + case "$cur" in + --strategy=*) + __gitcomp "$__git_merge_strategies" "" "${cur##--strategy=}" + return 0 + ;; + esac + return 1 +} + +__git_list_all_commands () +{ + local i IFS=" "$'\n' + for i in $(git help -a|egrep '^ [a-zA-Z0-9]') + do + case $i in + *--*) : helper pattern;; + *) echo $i;; + esac + done +} + +__git_all_commands= +__git_compute_all_commands () +{ + test -n "$__git_all_commands" || + __git_all_commands=$(__git_list_all_commands) +} + +__git_list_porcelain_commands () +{ + local i IFS=" "$'\n' + __git_compute_all_commands + for i in "help" $__git_all_commands + do + case $i in + *--*) : helper pattern;; + applymbox) : ask gittus;; + applypatch) : ask gittus;; + archimport) : import;; + cat-file) : plumbing;; + check-attr) : plumbing;; + check-ref-format) : plumbing;; + checkout-index) : plumbing;; + commit-tree) : plumbing;; + count-objects) : infrequent;; + credential-cache) : credentials helper;; + credential-store) : credentials helper;; + cvsexportcommit) : export;; + cvsimport) : import;; + cvsserver) : daemon;; + daemon) : daemon;; + diff-files) : plumbing;; + diff-index) : plumbing;; + diff-tree) : plumbing;; + fast-import) : import;; + fast-export) : export;; + fsck-objects) : plumbing;; + fetch-pack) : plumbing;; + fmt-merge-msg) : plumbing;; + for-each-ref) : plumbing;; + hash-object) : plumbing;; + http-*) : transport;; + index-pack) : plumbing;; + init-db) : deprecated;; + local-fetch) : plumbing;; + lost-found) : infrequent;; + ls-files) : plumbing;; + ls-remote) : plumbing;; + ls-tree) : plumbing;; + mailinfo) : plumbing;; + mailsplit) : plumbing;; + merge-*) : plumbing;; + mktree) : plumbing;; + mktag) : plumbing;; + pack-objects) : plumbing;; + pack-redundant) : plumbing;; + pack-refs) : plumbing;; + parse-remote) : plumbing;; + patch-id) : plumbing;; + peek-remote) : plumbing;; + prune) : plumbing;; + prune-packed) : plumbing;; + quiltimport) : import;; + read-tree) : plumbing;; + receive-pack) : plumbing;; + remote-*) : transport;; + repo-config) : deprecated;; + rerere) : plumbing;; + rev-list) : plumbing;; + rev-parse) : plumbing;; + runstatus) : plumbing;; + sh-setup) : internal;; + shell) : daemon;; + show-ref) : plumbing;; + send-pack) : plumbing;; + show-index) : plumbing;; + ssh-*) : transport;; + stripspace) : plumbing;; + symbolic-ref) : plumbing;; + tar-tree) : deprecated;; + unpack-file) : plumbing;; + unpack-objects) : plumbing;; + update-index) : plumbing;; + update-ref) : plumbing;; + update-server-info) : daemon;; + upload-archive) : plumbing;; + upload-pack) : plumbing;; + write-tree) : plumbing;; + var) : infrequent;; + verify-pack) : infrequent;; + verify-tag) : plumbing;; + *) echo $i;; + esac + done +} + +__git_porcelain_commands= +__git_compute_porcelain_commands () +{ + __git_compute_all_commands + test -n "$__git_porcelain_commands" || + __git_porcelain_commands=$(__git_list_porcelain_commands) +} + +__git_pretty_aliases () +{ + local i IFS=$'\n' + for i in $(git --git-dir="$(__gitdir)" config --get-regexp "pretty\..*" 2>/dev/null); do + case "$i" in + pretty.*) + i="${i#pretty.}" + echo "${i/ */}" + ;; + esac + done +} + +__git_aliases () +{ + local i IFS=$'\n' + for i in $(git --git-dir="$(__gitdir)" config --get-regexp "alias\..*" 2>/dev/null); do + case "$i" in + alias.*) + i="${i#alias.}" + echo "${i/ */}" + ;; + esac + done +} + +# __git_aliased_command requires 1 argument +__git_aliased_command () +{ + local word cmdline=$(git --git-dir="$(__gitdir)" \ + config --get "alias.$1") + for word in $cmdline; do + case "$word" in + \!gitk|gitk) + echo "gitk" + return + ;; + \!*) : shell command alias ;; + -*) : option ;; + *=*) : setting env ;; + git) : git itself ;; + *) + echo "$word" + return + esac + done +} + +# __git_find_on_cmdline requires 1 argument +__git_find_on_cmdline () +{ + local word subcommand c=1 + while [ $c -lt $cword ]; do + word="${words[c]}" + for subcommand in $1; do + if [ "$subcommand" = "$word" ]; then + echo "$subcommand" + return + fi + done + ((c++)) + done +} + +__git_has_doubledash () +{ + local c=1 + while [ $c -lt $cword ]; do + if [ "--" = "${words[c]}" ]; then + return 0 + fi + ((c++)) + done + return 1 +} + +__git_whitespacelist="nowarn warn error error-all fix" + +_git_am () +{ + local dir="$(__gitdir)" + if [ -d "$dir"/rebase-apply ]; then + __gitcomp "--skip --continue --resolved --abort" + return + fi + case "$cur" in + --whitespace=*) + __gitcomp "$__git_whitespacelist" "" "${cur##--whitespace=}" + return + ;; + --*) + __gitcomp " + --3way --committer-date-is-author-date --ignore-date + --ignore-whitespace --ignore-space-change + --interactive --keep --no-utf8 --signoff --utf8 + --whitespace= --scissors + " + return + esac + COMPREPLY=() +} + +_git_apply () +{ + case "$cur" in + --whitespace=*) + __gitcomp "$__git_whitespacelist" "" "${cur##--whitespace=}" + return + ;; + --*) + __gitcomp " + --stat --numstat --summary --check --index + --cached --index-info --reverse --reject --unidiff-zero + --apply --no-add --exclude= + --ignore-whitespace --ignore-space-change + --whitespace= --inaccurate-eof --verbose + " + return + esac + COMPREPLY=() +} + +_git_add () +{ + __git_has_doubledash && return + + case "$cur" in + --*) + __gitcomp " + --interactive --refresh --patch --update --dry-run + --ignore-errors --intent-to-add + " + return + esac + COMPREPLY=() +} + +_git_archive () +{ + case "$cur" in + --format=*) + __gitcomp "$(git archive --list)" "" "${cur##--format=}" + return + ;; + --remote=*) + __gitcomp_nl "$(__git_remotes)" "" "${cur##--remote=}" + return + ;; + --*) + __gitcomp " + --format= --list --verbose + --prefix= --remote= --exec= + " + return + ;; + esac + __git_complete_file +} + +_git_bisect () +{ + __git_has_doubledash && return + + local subcommands="start bad good skip reset visualize replay log run" + local subcommand="$(__git_find_on_cmdline "$subcommands")" + if [ -z "$subcommand" ]; then + if [ -f "$(__gitdir)"/BISECT_START ]; then + __gitcomp "$subcommands" + else + __gitcomp "replay start" + fi + return + fi + + case "$subcommand" in + bad|good|reset|skip|start) + __gitcomp_nl "$(__git_refs)" + ;; + *) + COMPREPLY=() + ;; + esac +} + +_git_branch () +{ + local i c=1 only_local_ref="n" has_r="n" + + while [ $c -lt $cword ]; do + i="${words[c]}" + case "$i" in + -d|-m) only_local_ref="y" ;; + -r) has_r="y" ;; + esac + ((c++)) + done + + case "$cur" in + --set-upstream-to=*) + __gitcomp "$(__git_refs)" "" "${cur##--set-upstream-to=}" + ;; + --*) + __gitcomp " + --color --no-color --verbose --abbrev= --no-abbrev + --track --no-track --contains --merged --no-merged + --set-upstream-to= --edit-description --list + --unset-upstream + " + ;; + *) + if [ $only_local_ref = "y" -a $has_r = "n" ]; then + __gitcomp_nl "$(__git_heads)" + else + __gitcomp_nl "$(__git_refs)" + fi + ;; + esac +} + +_git_bundle () +{ + local cmd="${words[2]}" + case "$cword" in + 2) + __gitcomp "create list-heads verify unbundle" + ;; + 3) + # looking for a file + ;; + *) + case "$cmd" in + create) + __git_complete_revlist + ;; + esac + ;; + esac +} + +_git_checkout () +{ + __git_has_doubledash && return + + case "$cur" in + --conflict=*) + __gitcomp "diff3 merge" "" "${cur##--conflict=}" + ;; + --*) + __gitcomp " + --quiet --ours --theirs --track --no-track --merge + --conflict= --orphan --patch + " + ;; + *) + # check if --track, --no-track, or --no-guess was specified + # if so, disable DWIM mode + local flags="--track --no-track --no-guess" track=1 + if [ -n "$(__git_find_on_cmdline "$flags")" ]; then + track='' + fi + __gitcomp_nl "$(__git_refs '' $track)" + ;; + esac +} + +_git_cherry () +{ + __gitcomp "$(__git_refs)" +} + +_git_cherry_pick () +{ + case "$cur" in + --*) + __gitcomp "--edit --no-commit" + ;; + *) + __gitcomp_nl "$(__git_refs)" + ;; + esac +} + +_git_clean () +{ + __git_has_doubledash && return + + case "$cur" in + --*) + __gitcomp "--dry-run --quiet" + return + ;; + esac + COMPREPLY=() +} + +_git_clone () +{ + case "$cur" in + --*) + __gitcomp " + --local + --no-hardlinks + --shared + --reference + --quiet + --no-checkout + --bare + --mirror + --origin + --upload-pack + --template= + --depth + " + return + ;; + esac + COMPREPLY=() +} + +_git_commit () +{ + __git_has_doubledash && return + + case "$cur" in + --cleanup=*) + __gitcomp "default strip verbatim whitespace + " "" "${cur##--cleanup=}" + return + ;; + --reuse-message=*|--reedit-message=*|\ + --fixup=*|--squash=*) + __gitcomp_nl "$(__git_refs)" "" "${cur#*=}" + return + ;; + --untracked-files=*) + __gitcomp "all no normal" "" "${cur##--untracked-files=}" + return + ;; + --*) + __gitcomp " + --all --author= --signoff --verify --no-verify + --edit --no-edit + --amend --include --only --interactive + --dry-run --reuse-message= --reedit-message= + --reset-author --file= --message= --template= + --cleanup= --untracked-files --untracked-files= + --verbose --quiet --fixup= --squash= + " + return + esac + COMPREPLY=() +} + +_git_describe () +{ + case "$cur" in + --*) + __gitcomp " + --all --tags --contains --abbrev= --candidates= + --exact-match --debug --long --match --always + " + return + esac + __gitcomp_nl "$(__git_refs)" +} + +__git_diff_common_options="--stat --numstat --shortstat --summary + --patch-with-stat --name-only --name-status --color + --no-color --color-words --no-renames --check + --full-index --binary --abbrev --diff-filter= + --find-copies-harder + --text --ignore-space-at-eol --ignore-space-change + --ignore-all-space --exit-code --quiet --ext-diff + --no-ext-diff + --no-prefix --src-prefix= --dst-prefix= + --inter-hunk-context= + --patience + --raw + --dirstat --dirstat= --dirstat-by-file + --dirstat-by-file= --cumulative +" + +_git_diff () +{ + __git_has_doubledash && return + + case "$cur" in + --*) + __gitcomp "--cached --staged --pickaxe-all --pickaxe-regex + --base --ours --theirs --no-index + $__git_diff_common_options + " + return + ;; + esac + __git_complete_revlist_file +} + +__git_mergetools_common="diffuse ecmerge emerge kdiff3 meld opendiff + tkdiff vimdiff gvimdiff xxdiff araxis p4merge bc3 codecompare +" + +_git_difftool () +{ + __git_has_doubledash && return + + case "$cur" in + --tool=*) + __gitcomp "$__git_mergetools_common kompare" "" "${cur##--tool=}" + return + ;; + --*) + __gitcomp "--cached --staged --pickaxe-all --pickaxe-regex + --base --ours --theirs + --no-renames --diff-filter= --find-copies-harder + --relative --ignore-submodules + --tool=" + return + ;; + esac + __git_complete_file +} + +__git_fetch_options=" + --quiet --verbose --append --upload-pack --force --keep --depth= + --tags --no-tags --all --prune --dry-run +" + +_git_fetch () +{ + case "$cur" in + --*) + __gitcomp "$__git_fetch_options" + return + ;; + esac + __git_complete_remote_or_refspec +} + +_git_format_patch () +{ + case "$cur" in + --thread=*) + __gitcomp " + deep shallow + " "" "${cur##--thread=}" + return + ;; + --*) + __gitcomp " + --stdout --attach --no-attach --thread --thread= + --output-directory + --numbered --start-number + --numbered-files + --keep-subject + --signoff --signature --no-signature + --in-reply-to= --cc= + --full-index --binary + --not --all + --cover-letter + --no-prefix --src-prefix= --dst-prefix= + --inline --suffix= --ignore-if-in-upstream + --subject-prefix= + " + return + ;; + esac + __git_complete_revlist +} + +_git_fsck () +{ + case "$cur" in + --*) + __gitcomp " + --tags --root --unreachable --cache --no-reflogs --full + --strict --verbose --lost-found + " + return + ;; + esac + COMPREPLY=() +} + +_git_gc () +{ + case "$cur" in + --*) + __gitcomp "--prune --aggressive" + return + ;; + esac + COMPREPLY=() +} + +_git_gitk () +{ + _gitk +} + +__git_match_ctag() { + awk "/^${1////\\/}/ { print \$1 }" "$2" +} + +_git_grep () +{ + __git_has_doubledash && return + + case "$cur" in + --*) + __gitcomp " + --cached + --text --ignore-case --word-regexp --invert-match + --full-name --line-number + --extended-regexp --basic-regexp --fixed-strings + --perl-regexp + --files-with-matches --name-only + --files-without-match + --max-depth + --count + --and --or --not --all-match + " + return + ;; + esac + + case "$cword,$prev" in + 2,*|*,-*) + if test -r tags; then + __gitcomp_nl "$(__git_match_ctag "$cur" tags)" + return + fi + ;; + esac + + __gitcomp_nl "$(__git_refs)" +} + +_git_help () +{ + case "$cur" in + --*) + __gitcomp "--all --info --man --web" + return + ;; + esac + __git_compute_all_commands + __gitcomp "$__git_all_commands $(__git_aliases) + attributes cli core-tutorial cvs-migration + diffcore gitk glossary hooks ignore modules + namespaces repository-layout tutorial tutorial-2 + workflows + " +} + +_git_init () +{ + case "$cur" in + --shared=*) + __gitcomp " + false true umask group all world everybody + " "" "${cur##--shared=}" + return + ;; + --*) + __gitcomp "--quiet --bare --template= --shared --shared=" + return + ;; + esac + COMPREPLY=() +} + +_git_ls_files () +{ + __git_has_doubledash && return + + case "$cur" in + --*) + __gitcomp "--cached --deleted --modified --others --ignored + --stage --directory --no-empty-directory --unmerged + --killed --exclude= --exclude-from= + --exclude-per-directory= --exclude-standard + --error-unmatch --with-tree= --full-name + --abbrev --ignored --exclude-per-directory + " + return + ;; + esac + COMPREPLY=() +} + +_git_ls_remote () +{ + __gitcomp_nl "$(__git_remotes)" +} + +_git_ls_tree () +{ + __git_complete_file +} + +# Options that go well for log, shortlog and gitk +__git_log_common_options=" + --not --all + --branches --tags --remotes + --first-parent --merges --no-merges + --max-count= + --max-age= --since= --after= + --min-age= --until= --before= + --min-parents= --max-parents= + --no-min-parents --no-max-parents +" +# Options that go well for log and gitk (not shortlog) +__git_log_gitk_options=" + --dense --sparse --full-history + --simplify-merges --simplify-by-decoration + --left-right --notes --no-notes +" +# Options that go well for log and shortlog (not gitk) +__git_log_shortlog_options=" + --author= --committer= --grep= + --all-match +" + +__git_log_pretty_formats="oneline short medium full fuller email raw format:" +__git_log_date_formats="relative iso8601 rfc2822 short local default raw" + +_git_log () +{ + __git_has_doubledash && return + + local g="$(git rev-parse --git-dir 2>/dev/null)" + local merge="" + if [ -f "$g/MERGE_HEAD" ]; then + merge="--merge" + fi + case "$cur" in + --pretty=*|--format=*) + __gitcomp "$__git_log_pretty_formats $(__git_pretty_aliases) + " "" "${cur#*=}" + return + ;; + --date=*) + __gitcomp "$__git_log_date_formats" "" "${cur##--date=}" + return + ;; + --decorate=*) + __gitcomp "long short" "" "${cur##--decorate=}" + return + ;; + --*) + __gitcomp " + $__git_log_common_options + $__git_log_shortlog_options + $__git_log_gitk_options + --root --topo-order --date-order --reverse + --follow --full-diff + --abbrev-commit --abbrev= + --relative-date --date= + --pretty= --format= --oneline + --cherry-pick + --graph + --decorate --decorate= + --walk-reflogs + --parents --children + $merge + $__git_diff_common_options + --pickaxe-all --pickaxe-regex + " + return + ;; + esac + __git_complete_revlist +} + +__git_merge_options=" + --no-commit --no-stat --log --no-log --squash --strategy + --commit --stat --no-squash --ff --no-ff --ff-only --edit --no-edit +" + +_git_merge () +{ + __git_complete_strategy && return + + case "$cur" in + --*) + __gitcomp "$__git_merge_options" + return + esac + __gitcomp_nl "$(__git_refs)" +} + +_git_mergetool () +{ + case "$cur" in + --tool=*) + __gitcomp "$__git_mergetools_common tortoisemerge" "" "${cur##--tool=}" + return + ;; + --*) + __gitcomp "--tool=" + return + ;; + esac + COMPREPLY=() +} + +_git_merge_base () +{ + __gitcomp_nl "$(__git_refs)" +} + +_git_mv () +{ + case "$cur" in + --*) + __gitcomp "--dry-run" + return + ;; + esac + COMPREPLY=() +} + +_git_name_rev () +{ + __gitcomp "--tags --all --stdin" +} + +_git_notes () +{ + local subcommands='add append copy edit list prune remove show' + local subcommand="$(__git_find_on_cmdline "$subcommands")" + + case "$subcommand,$cur" in + ,--*) + __gitcomp '--ref' + ;; + ,*) + case "$prev" in + --ref) + __gitcomp_nl "$(__git_refs)" + ;; + *) + __gitcomp "$subcommands --ref" + ;; + esac + ;; + add,--reuse-message=*|append,--reuse-message=*|\ + add,--reedit-message=*|append,--reedit-message=*) + __gitcomp_nl "$(__git_refs)" "" "${cur#*=}" + ;; + add,--*|append,--*) + __gitcomp '--file= --message= --reedit-message= + --reuse-message=' + ;; + copy,--*) + __gitcomp '--stdin' + ;; + prune,--*) + __gitcomp '--dry-run --verbose' + ;; + prune,*) + ;; + *) + case "$prev" in + -m|-F) + ;; + *) + __gitcomp_nl "$(__git_refs)" + ;; + esac + ;; + esac +} + +_git_pull () +{ + __git_complete_strategy && return + + case "$cur" in + --*) + __gitcomp " + --rebase --no-rebase + $__git_merge_options + $__git_fetch_options + " + return + ;; + esac + __git_complete_remote_or_refspec +} + +_git_push () +{ + case "$prev" in + --repo) + __gitcomp_nl "$(__git_remotes)" + return + esac + case "$cur" in + --repo=*) + __gitcomp_nl "$(__git_remotes)" "" "${cur##--repo=}" + return + ;; + --*) + __gitcomp " + --all --mirror --tags --dry-run --force --verbose + --receive-pack= --repo= --set-upstream + " + return + ;; + esac + __git_complete_remote_or_refspec +} + +_git_rebase () +{ + local dir="$(__gitdir)" + if [ -d "$dir"/rebase-apply ] || [ -d "$dir"/rebase-merge ]; then + __gitcomp "--continue --skip --abort" + return + fi + __git_complete_strategy && return + case "$cur" in + --whitespace=*) + __gitcomp "$__git_whitespacelist" "" "${cur##--whitespace=}" + return + ;; + --*) + __gitcomp " + --onto --merge --strategy --interactive + --preserve-merges --stat --no-stat + --committer-date-is-author-date --ignore-date + --ignore-whitespace --whitespace= + --autosquash + " + + return + esac + __gitcomp_nl "$(__git_refs)" +} + +_git_reflog () +{ + local subcommands="show delete expire" + local subcommand="$(__git_find_on_cmdline "$subcommands")" + + if [ -z "$subcommand" ]; then + __gitcomp "$subcommands" + else + __gitcomp_nl "$(__git_refs)" + fi +} + +__git_send_email_confirm_options="always never auto cc compose" +__git_send_email_suppresscc_options="author self cc bodycc sob cccmd body all" + +_git_send_email () +{ + case "$cur" in + --confirm=*) + __gitcomp " + $__git_send_email_confirm_options + " "" "${cur##--confirm=}" + return + ;; + --suppress-cc=*) + __gitcomp " + $__git_send_email_suppresscc_options + " "" "${cur##--suppress-cc=}" + + return + ;; + --smtp-encryption=*) + __gitcomp "ssl tls" "" "${cur##--smtp-encryption=}" + return + ;; + --*) + __gitcomp "--annotate --bcc --cc --cc-cmd --chain-reply-to + --compose --confirm= --dry-run --envelope-sender + --from --identity + --in-reply-to --no-chain-reply-to --no-signed-off-by-cc + --no-suppress-from --no-thread --quiet + --signed-off-by-cc --smtp-pass --smtp-server + --smtp-server-port --smtp-encryption= --smtp-user + --subject --suppress-cc= --suppress-from --thread --to + --validate --no-validate" + return + ;; + esac + COMPREPLY=() +} + +_git_stage () +{ + _git_add +} + +__git_config_get_set_variables () +{ + local prevword word config_file= c=$cword + while [ $c -gt 1 ]; do + word="${words[c]}" + case "$word" in + --global|--system|--file=*) + config_file="$word" + break + ;; + -f|--file) + config_file="$word $prevword" + break + ;; + esac + prevword=$word + c=$((--c)) + done + + git --git-dir="$(__gitdir)" config $config_file --list 2>/dev/null | + while read -r line + do + case "$line" in + *.*=*) + echo "${line/=*/}" + ;; + esac + done +} + +_git_config () +{ + case "$prev" in + branch.*.remote) + __gitcomp_nl "$(__git_remotes)" + return + ;; + branch.*.merge) + __gitcomp_nl "$(__git_refs)" + return + ;; + remote.*.fetch) + local remote="${prev#remote.}" + remote="${remote%.fetch}" + if [ -z "$cur" ]; then + COMPREPLY=("refs/heads/") + return + fi + __gitcomp_nl "$(__git_refs_remotes "$remote")" + return + ;; + remote.*.push) + local remote="${prev#remote.}" + remote="${remote%.push}" + __gitcomp_nl "$(git --git-dir="$(__gitdir)" \ + for-each-ref --format='%(refname):%(refname)' \ + refs/heads)" + return + ;; + pull.twohead|pull.octopus) + __git_compute_merge_strategies + __gitcomp "$__git_merge_strategies" + return + ;; + color.branch|color.diff|color.interactive|\ + color.showbranch|color.status|color.ui) + __gitcomp "always never auto" + return + ;; + color.pager) + __gitcomp "false true" + return + ;; + color.*.*) + __gitcomp " + normal black red green yellow blue magenta cyan white + bold dim ul blink reverse + " + return + ;; + help.format) + __gitcomp "man info web html" + return + ;; + log.date) + __gitcomp "$__git_log_date_formats" + return + ;; + sendemail.aliasesfiletype) + __gitcomp "mutt mailrc pine elm gnus" + return + ;; + sendemail.confirm) + __gitcomp "$__git_send_email_confirm_options" + return + ;; + sendemail.suppresscc) + __gitcomp "$__git_send_email_suppresscc_options" + return + ;; + --get|--get-all|--unset|--unset-all) + __gitcomp_nl "$(__git_config_get_set_variables)" + return + ;; + *.*) + COMPREPLY=() + return + ;; + esac + case "$cur" in + --*) + __gitcomp " + --global --system --file= + --list --replace-all + --get --get-all --get-regexp + --add --unset --unset-all + --remove-section --rename-section + " + return + ;; + branch.*.*) + local pfx="${cur%.*}." cur_="${cur##*.}" + __gitcomp "remote merge mergeoptions rebase" "$pfx" "$cur_" + return + ;; + branch.*) + local pfx="${cur%.*}." cur_="${cur#*.}" + __gitcomp_nl "$(__git_heads)" "$pfx" "$cur_" "." + return + ;; + guitool.*.*) + local pfx="${cur%.*}." cur_="${cur##*.}" + __gitcomp " + argprompt cmd confirm needsfile noconsole norescan + prompt revprompt revunmerged title + " "$pfx" "$cur_" + return + ;; + difftool.*.*) + local pfx="${cur%.*}." cur_="${cur##*.}" + __gitcomp "cmd path" "$pfx" "$cur_" + return + ;; + man.*.*) + local pfx="${cur%.*}." cur_="${cur##*.}" + __gitcomp "cmd path" "$pfx" "$cur_" + return + ;; + mergetool.*.*) + local pfx="${cur%.*}." cur_="${cur##*.}" + __gitcomp "cmd path trustExitCode" "$pfx" "$cur_" + return + ;; + pager.*) + local pfx="${cur%.*}." cur_="${cur#*.}" + __git_compute_all_commands + __gitcomp_nl "$__git_all_commands" "$pfx" "$cur_" + return + ;; + remote.*.*) + local pfx="${cur%.*}." cur_="${cur##*.}" + __gitcomp " + url proxy fetch push mirror skipDefaultUpdate + receivepack uploadpack tagopt pushurl + " "$pfx" "$cur_" + return + ;; + remote.*) + local pfx="${cur%.*}." cur_="${cur#*.}" + __gitcomp_nl "$(__git_remotes)" "$pfx" "$cur_" "." + return + ;; + url.*.*) + local pfx="${cur%.*}." cur_="${cur##*.}" + __gitcomp "insteadOf pushInsteadOf" "$pfx" "$cur_" + return + ;; + esac + __gitcomp " + add.ignoreErrors + advice.commitBeforeMerge + advice.detachedHead + advice.implicitIdentity + advice.pushNonFastForward + advice.resolveConflict + advice.statusHints + alias. + am.keepcr + apply.ignorewhitespace + apply.whitespace + branch.autosetupmerge + branch.autosetuprebase + browser. + clean.requireForce + color.branch + color.branch.current + color.branch.local + color.branch.plain + color.branch.remote + color.decorate.HEAD + color.decorate.branch + color.decorate.remoteBranch + color.decorate.stash + color.decorate.tag + color.diff + color.diff.commit + color.diff.frag + color.diff.func + color.diff.meta + color.diff.new + color.diff.old + color.diff.plain + color.diff.whitespace + color.grep + color.grep.context + color.grep.filename + color.grep.function + color.grep.linenumber + color.grep.match + color.grep.selected + color.grep.separator + color.interactive + color.interactive.error + color.interactive.header + color.interactive.help + color.interactive.prompt + color.pager + color.showbranch + color.status + color.status.added + color.status.changed + color.status.header + color.status.nobranch + color.status.untracked + color.status.updated + color.ui + commit.status + commit.template + core.abbrev + core.askpass + core.attributesfile + core.autocrlf + core.bare + core.bigFileThreshold + core.compression + core.createObject + core.deltaBaseCacheLimit + core.editor + core.eol + core.excludesfile + core.fileMode + core.fsyncobjectfiles + core.gitProxy + core.ignoreCygwinFSTricks + core.ignoreStat + core.ignorecase + core.logAllRefUpdates + core.loosecompression + core.notesRef + core.packedGitLimit + core.packedGitWindowSize + core.pager + core.preferSymlinkRefs + core.preloadindex + core.quotepath + core.repositoryFormatVersion + core.safecrlf + core.sharedRepository + core.sparseCheckout + core.symlinks + core.trustctime + core.warnAmbiguousRefs + core.whitespace + core.worktree + diff.autorefreshindex + diff.statGraphWidth + diff.external + diff.ignoreSubmodules + diff.mnemonicprefix + diff.noprefix + diff.renameLimit + diff.renames + diff.suppressBlankEmpty + diff.tool + diff.wordRegex + difftool. + difftool.prompt + fetch.recurseSubmodules + fetch.unpackLimit + format.attach + format.cc + format.headers + format.numbered + format.pretty + format.signature + format.signoff + format.subjectprefix + format.suffix + format.thread + format.to + gc. + gc.aggressiveWindow + gc.auto + gc.autopacklimit + gc.packrefs + gc.pruneexpire + gc.reflogexpire + gc.reflogexpireunreachable + gc.rerereresolved + gc.rerereunresolved + gitcvs.allbinary + gitcvs.commitmsgannotation + gitcvs.dbTableNamePrefix + gitcvs.dbdriver + gitcvs.dbname + gitcvs.dbpass + gitcvs.dbuser + gitcvs.enabled + gitcvs.logfile + gitcvs.usecrlfattr + guitool. + gui.blamehistoryctx + gui.commitmsgwidth + gui.copyblamethreshold + gui.diffcontext + gui.encoding + gui.fastcopyblame + gui.matchtrackingbranch + gui.newbranchtemplate + gui.pruneduringfetch + gui.spellingdictionary + gui.trustmtime + help.autocorrect + help.browser + help.format + http.lowSpeedLimit + http.lowSpeedTime + http.maxRequests + http.minSessions + http.noEPSV + http.postBuffer + http.proxy + http.sslCAInfo + http.sslCAPath + http.sslCert + http.sslCertPasswordProtected + http.sslKey + http.sslVerify + http.useragent + i18n.commitEncoding + i18n.logOutputEncoding + imap.authMethod + imap.folder + imap.host + imap.pass + imap.port + imap.preformattedHTML + imap.sslverify + imap.tunnel + imap.user + init.templatedir + instaweb.browser + instaweb.httpd + instaweb.local + instaweb.modulepath + instaweb.port + interactive.singlekey + log.date + log.decorate + log.showroot + mailmap.file + man. + man.viewer + merge. + merge.conflictstyle + merge.log + merge.renameLimit + merge.renormalize + merge.stat + merge.tool + merge.verbosity + mergetool. + mergetool.keepBackup + mergetool.keepTemporaries + mergetool.prompt + notes.displayRef + notes.rewrite. + notes.rewrite.amend + notes.rewrite.rebase + notes.rewriteMode + notes.rewriteRef + pack.compression + pack.deltaCacheLimit + pack.deltaCacheSize + pack.depth + pack.indexVersion + pack.packSizeLimit + pack.threads + pack.window + pack.windowMemory + pager. + pretty. + pull.octopus + pull.twohead + push.default + rebase.autosquash + rebase.stat + receive.autogc + receive.denyCurrentBranch + receive.denyDeleteCurrent + receive.denyDeletes + receive.denyNonFastForwards + receive.fsckObjects + receive.unpackLimit + receive.updateserverinfo + remotes. + repack.usedeltabaseoffset + rerere.autoupdate + rerere.enabled + sendemail. + sendemail.aliasesfile + sendemail.aliasfiletype + sendemail.bcc + sendemail.cc + sendemail.cccmd + sendemail.chainreplyto + sendemail.confirm + sendemail.envelopesender + sendemail.from + sendemail.identity + sendemail.multiedit + sendemail.signedoffbycc + sendemail.smtpdomain + sendemail.smtpencryption + sendemail.smtppass + sendemail.smtpserver + sendemail.smtpserveroption + sendemail.smtpserverport + sendemail.smtpuser + sendemail.suppresscc + sendemail.suppressfrom + sendemail.thread + sendemail.to + sendemail.validate + showbranch.default + status.relativePaths + status.showUntrackedFiles + status.submodulesummary + submodule. + tar.umask + transfer.unpackLimit + url. + user.email + user.name + user.signingkey + web.browser + branch. remote. + " +} + +_git_remote () +{ + local subcommands="add rename remove set-head set-branches set-url show prune update" + local subcommand="$(__git_find_on_cmdline "$subcommands")" + if [ -z "$subcommand" ]; then + __gitcomp "$subcommands" + return + fi + + case "$subcommand" in + rename|remove|set-url|show|prune) + __gitcomp_nl "$(__git_remotes)" + ;; + set-head|set-branches) + __git_complete_remote_or_refspec + ;; + update) + local i c='' IFS=$'\n' + for i in $(git --git-dir="$(__gitdir)" config --get-regexp "remotes\..*" 2>/dev/null); do + i="${i#remotes.}" + c="$c ${i/ */}" + done + __gitcomp "$c" + ;; + *) + COMPREPLY=() + ;; + esac +} + +_git_replace () +{ + __gitcomp_nl "$(__git_refs)" +} + +_git_reset () +{ + __git_has_doubledash && return + + case "$cur" in + --*) + __gitcomp "--merge --mixed --hard --soft --patch" + return + ;; + esac + __gitcomp_nl "$(__git_refs)" +} + +_git_revert () +{ + case "$cur" in + --*) + __gitcomp "--edit --mainline --no-edit --no-commit --signoff" + return + ;; + esac + __gitcomp_nl "$(__git_refs)" +} + +_git_rm () +{ + __git_has_doubledash && return + + case "$cur" in + --*) + __gitcomp "--cached --dry-run --ignore-unmatch --quiet" + return + ;; + esac + COMPREPLY=() +} + +_git_shortlog () +{ + __git_has_doubledash && return + + case "$cur" in + --*) + __gitcomp " + $__git_log_common_options + $__git_log_shortlog_options + --numbered --summary + " + return + ;; + esac + __git_complete_revlist +} + +_git_show () +{ + __git_has_doubledash && return + + case "$cur" in + --pretty=*|--format=*) + __gitcomp "$__git_log_pretty_formats $(__git_pretty_aliases) + " "" "${cur#*=}" + return + ;; + --*) + __gitcomp "--pretty= --format= --abbrev-commit --oneline + $__git_diff_common_options + " + return + ;; + esac + __git_complete_file +} + +_git_show_branch () +{ + case "$cur" in + --*) + __gitcomp " + --all --remotes --topo-order --current --more= + --list --independent --merge-base --no-name + --color --no-color + --sha1-name --sparse --topics --reflog + " + return + ;; + esac + __git_complete_revlist +} + +_git_stash () +{ + local save_opts='--keep-index --no-keep-index --quiet --patch' + local subcommands='save list show apply clear drop pop create branch' + local subcommand="$(__git_find_on_cmdline "$subcommands")" + if [ -z "$subcommand" ]; then + case "$cur" in + --*) + __gitcomp "$save_opts" + ;; + *) + if [ -z "$(__git_find_on_cmdline "$save_opts")" ]; then + __gitcomp "$subcommands" + else + COMPREPLY=() + fi + ;; + esac + else + case "$subcommand,$cur" in + save,--*) + __gitcomp "$save_opts" + ;; + apply,--*|pop,--*) + __gitcomp "--index --quiet" + ;; + show,--*|drop,--*|branch,--*) + COMPREPLY=() + ;; + show,*|apply,*|drop,*|pop,*|branch,*) + __gitcomp_nl "$(git --git-dir="$(__gitdir)" stash list \ + | sed -n -e 's/:.*//p')" + ;; + *) + COMPREPLY=() + ;; + esac + fi +} + +_git_submodule () +{ + __git_has_doubledash && return + + local subcommands="add status init update summary foreach sync" + if [ -z "$(__git_find_on_cmdline "$subcommands")" ]; then + case "$cur" in + --*) + __gitcomp "--quiet --cached" + ;; + *) + __gitcomp "$subcommands" + ;; + esac + return + fi +} + +_git_svn () +{ + local subcommands=" + init fetch clone rebase dcommit log find-rev + set-tree commit-diff info create-ignore propget + proplist show-ignore show-externals branch tag blame + migrate mkdirs reset gc + " + local subcommand="$(__git_find_on_cmdline "$subcommands")" + if [ -z "$subcommand" ]; then + __gitcomp "$subcommands" + else + local remote_opts="--username= --config-dir= --no-auth-cache" + local fc_opts=" + --follow-parent --authors-file= --repack= + --no-metadata --use-svm-props --use-svnsync-props + --log-window-size= --no-checkout --quiet + --repack-flags --use-log-author --localtime + --ignore-paths= $remote_opts + " + local init_opts=" + --template= --shared= --trunk= --tags= + --branches= --stdlayout --minimize-url + --no-metadata --use-svm-props --use-svnsync-props + --rewrite-root= --prefix= --use-log-author + --add-author-from $remote_opts + " + local cmt_opts=" + --edit --rmdir --find-copies-harder --copy-similarity= + " + + case "$subcommand,$cur" in + fetch,--*) + __gitcomp "--revision= --fetch-all $fc_opts" + ;; + clone,--*) + __gitcomp "--revision= $fc_opts $init_opts" + ;; + init,--*) + __gitcomp "$init_opts" + ;; + dcommit,--*) + __gitcomp " + --merge --strategy= --verbose --dry-run + --fetch-all --no-rebase --commit-url + --revision --interactive $cmt_opts $fc_opts + " + ;; + set-tree,--*) + __gitcomp "--stdin $cmt_opts $fc_opts" + ;; + create-ignore,--*|propget,--*|proplist,--*|show-ignore,--*|\ + show-externals,--*|mkdirs,--*) + __gitcomp "--revision=" + ;; + log,--*) + __gitcomp " + --limit= --revision= --verbose --incremental + --oneline --show-commit --non-recursive + --authors-file= --color + " + ;; + rebase,--*) + __gitcomp " + --merge --verbose --strategy= --local + --fetch-all --dry-run $fc_opts + " + ;; + commit-diff,--*) + __gitcomp "--message= --file= --revision= $cmt_opts" + ;; + info,--*) + __gitcomp "--url" + ;; + branch,--*) + __gitcomp "--dry-run --message --tag" + ;; + tag,--*) + __gitcomp "--dry-run --message" + ;; + blame,--*) + __gitcomp "--git-format" + ;; + migrate,--*) + __gitcomp " + --config-dir= --ignore-paths= --minimize + --no-auth-cache --username= + " + ;; + reset,--*) + __gitcomp "--revision= --parent" + ;; + *) + COMPREPLY=() + ;; + esac + fi +} + +_git_tag () +{ + local i c=1 f=0 + while [ $c -lt $cword ]; do + i="${words[c]}" + case "$i" in + -d|-v) + __gitcomp_nl "$(__git_tags)" + return + ;; + -f) + f=1 + ;; + esac + ((c++)) + done + + case "$prev" in + -m|-F) + COMPREPLY=() + ;; + -*|tag) + if [ $f = 1 ]; then + __gitcomp_nl "$(__git_tags)" + else + COMPREPLY=() + fi + ;; + *) + __gitcomp_nl "$(__git_refs)" + ;; + esac +} + +_git_whatchanged () +{ + _git_log +} + +__git_main () +{ + local i c=1 command __git_dir + + while [ $c -lt $cword ]; do + i="${words[c]}" + case "$i" in + --git-dir=*) __git_dir="${i#--git-dir=}" ;; + --bare) __git_dir="." ;; + --help) command="help"; break ;; + -c) c=$((++c)) ;; + -*) ;; + *) command="$i"; break ;; + esac + ((c++)) + done + + if [ -z "$command" ]; then + case "$cur" in + --*) __gitcomp " + --paginate + --no-pager + --git-dir= + --bare + --version + --exec-path + --exec-path= + --html-path + --info-path + --work-tree= + --namespace= + --no-replace-objects + --help + " + ;; + *) __git_compute_porcelain_commands + __gitcomp "$__git_porcelain_commands $(__git_aliases)" ;; + esac + return + fi + + local completion_func="_git_${command//-/_}" + declare -f $completion_func >/dev/null && $completion_func && return + + local expansion=$(__git_aliased_command "$command") + if [ -n "$expansion" ]; then + completion_func="_git_${expansion//-/_}" + declare -f $completion_func >/dev/null && $completion_func + fi +} + +__gitk_main () +{ + __git_has_doubledash && return + + local g="$(__gitdir)" + local merge="" + if [ -f "$g/MERGE_HEAD" ]; then + merge="--merge" + fi + case "$cur" in + --*) + __gitcomp " + $__git_log_common_options + $__git_log_gitk_options + $merge + " + return + ;; + esac + __git_complete_revlist +} + +__git_func_wrap () +{ + if [[ -n ${ZSH_VERSION-} ]]; then + emulate -L bash + setopt KSH_TYPESET + + # workaround zsh's bug that leaves 'words' as a special + # variable in versions < 4.3.12 + typeset -h words + + # workaround zsh's bug that quotes spaces in the COMPREPLY + # array if IFS doesn't contain spaces. + typeset -h IFS + fi + local cur words cword prev + _get_comp_words_by_ref -n =: cur words cword prev + $1 +} + +# Setup completion for certain functions defined above by setting common +# variables and workarounds. +# This is NOT a public function; use at your own risk. +__git_complete () +{ + local wrapper="__git_wrap${2}" + eval "$wrapper () { __git_func_wrap $2 ; }" + complete -o bashdefault -o default -o nospace -F $wrapper $1 2>/dev/null \ + || complete -o default -o nospace -F $wrapper $1 +} + +# wrapper for backwards compatibility +_git () +{ + __git_wrap__git_main +} + +# wrapper for backwards compatibility +_gitk () +{ + __git_wrap__gitk_main +} + +__git_complete git __git_main +__git_complete gitk __gitk_main + +# The following are necessary only for Cygwin, and only are needed +# when the user has tab-completed the executable name and consequently +# included the '.exe' suffix. +# +if [ Cygwin = "$(uname -o 2>/dev/null)" ]; then +__git_complete git.exe __git_main +fi diff --git a/plugins/gitfast/git-prompt.sh b/plugins/gitfast/git-prompt.sh new file mode 100644 index 000000000..bf20491ec --- /dev/null +++ b/plugins/gitfast/git-prompt.sh @@ -0,0 +1,290 @@ +# bash/zsh git prompt support +# +# Copyright (C) 2006,2007 Shawn O. Pearce +# Distributed under the GNU General Public License, version 2.0. +# +# This script allows you to see the current branch in your prompt. +# +# To enable: +# +# 1) Copy this file to somewhere (e.g. ~/.git-prompt.sh). +# 2) Add the following line to your .bashrc/.zshrc: +# source ~/.git-prompt.sh +# 3) Change your PS1 to also show the current branch: +# Bash: PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ ' +# ZSH: PS1='[%n@%m %c$(__git_ps1 " (%s)")]\$ ' +# +# The argument to __git_ps1 will be displayed only if you are currently +# in a git repository. The %s token will be the name of the current +# branch. +# +# In addition, if you set GIT_PS1_SHOWDIRTYSTATE to a nonempty value, +# unstaged (*) and staged (+) changes will be shown next to the branch +# name. You can configure this per-repository with the +# bash.showDirtyState variable, which defaults to true once +# GIT_PS1_SHOWDIRTYSTATE is enabled. +# +# You can also see if currently something is stashed, by setting +# GIT_PS1_SHOWSTASHSTATE to a nonempty value. If something is stashed, +# then a '$' will be shown next to the branch name. +# +# If you would like to see if there're untracked files, then you can set +# GIT_PS1_SHOWUNTRACKEDFILES to a nonempty value. If there're untracked +# files, then a '%' will be shown next to the branch name. +# +# If you would like to see the difference between HEAD and its upstream, +# set GIT_PS1_SHOWUPSTREAM="auto". A "<" indicates you are behind, ">" +# indicates you are ahead, "<>" indicates you have diverged and "=" +# indicates that there is no difference. You can further control +# behaviour by setting GIT_PS1_SHOWUPSTREAM to a space-separated list +# of values: +# +# verbose show number of commits ahead/behind (+/-) upstream +# legacy don't use the '--count' option available in recent +# versions of git-rev-list +# git always compare HEAD to @{upstream} +# svn always compare HEAD to your SVN upstream +# +# By default, __git_ps1 will compare HEAD to your SVN upstream if it can +# find one, or @{upstream} otherwise. Once you have set +# GIT_PS1_SHOWUPSTREAM, you can override it on a per-repository basis by +# setting the bash.showUpstream config variable. + +# __gitdir accepts 0 or 1 arguments (i.e., location) +# returns location of .git repo +__gitdir () +{ + # Note: this function is duplicated in git-completion.bash + # When updating it, make sure you update the other one to match. + if [ -z "${1-}" ]; then + if [ -n "${__git_dir-}" ]; then + echo "$__git_dir" + elif [ -n "${GIT_DIR-}" ]; then + test -d "${GIT_DIR-}" || return 1 + echo "$GIT_DIR" + elif [ -d .git ]; then + echo .git + else + git rev-parse --git-dir 2>/dev/null + fi + elif [ -d "$1/.git" ]; then + echo "$1/.git" + else + echo "$1" + fi +} + +# stores the divergence from upstream in $p +# used by GIT_PS1_SHOWUPSTREAM +__git_ps1_show_upstream () +{ + local key value + local svn_remote svn_url_pattern count n + local upstream=git legacy="" verbose="" + + svn_remote=() + # get some config options from git-config + local output="$(git config -z --get-regexp '^(svn-remote\..*\.url|bash\.showupstream)$' 2>/dev/null | tr '\0\n' '\n ')" + while read -r key value; do + case "$key" in + bash.showupstream) + GIT_PS1_SHOWUPSTREAM="$value" + if [[ -z "${GIT_PS1_SHOWUPSTREAM}" ]]; then + p="" + return + fi + ;; + svn-remote.*.url) + svn_remote[ $((${#svn_remote[@]} + 1)) ]="$value" + svn_url_pattern+="\\|$value" + upstream=svn+git # default upstream is SVN if available, else git + ;; + esac + done <<< "$output" + + # parse configuration values + for option in ${GIT_PS1_SHOWUPSTREAM}; do + case "$option" in + git|svn) upstream="$option" ;; + verbose) verbose=1 ;; + legacy) legacy=1 ;; + esac + done + + # Find our upstream + case "$upstream" in + git) upstream="@{upstream}" ;; + svn*) + # get the upstream from the "git-svn-id: ..." in a commit message + # (git-svn uses essentially the same procedure internally) + local svn_upstream=($(git log --first-parent -1 \ + --grep="^git-svn-id: \(${svn_url_pattern#??}\)" 2>/dev/null)) + if [[ 0 -ne ${#svn_upstream[@]} ]]; then + svn_upstream=${svn_upstream[ ${#svn_upstream[@]} - 2 ]} + svn_upstream=${svn_upstream%@*} + local n_stop="${#svn_remote[@]}" + for ((n=1; n <= n_stop; n++)); do + svn_upstream=${svn_upstream#${svn_remote[$n]}} + done + + if [[ -z "$svn_upstream" ]]; then + # default branch name for checkouts with no layout: + upstream=${GIT_SVN_ID:-git-svn} + else + upstream=${svn_upstream#/} + fi + elif [[ "svn+git" = "$upstream" ]]; then + upstream="@{upstream}" + fi + ;; + esac + + # Find how many commits we are ahead/behind our upstream + if [[ -z "$legacy" ]]; then + count="$(git rev-list --count --left-right \ + "$upstream"...HEAD 2>/dev/null)" + else + # produce equivalent output to --count for older versions of git + local commits + if commits="$(git rev-list --left-right "$upstream"...HEAD 2>/dev/null)" + then + local commit behind=0 ahead=0 + for commit in $commits + do + case "$commit" in + "<"*) ((behind++)) ;; + *) ((ahead++)) ;; + esac + done + count="$behind $ahead" + else + count="" + fi + fi + + # calculate the result + if [[ -z "$verbose" ]]; then + case "$count" in + "") # no upstream + p="" ;; + "0 0") # equal to upstream + p="=" ;; + "0 "*) # ahead of upstream + p=">" ;; + *" 0") # behind upstream + p="<" ;; + *) # diverged from upstream + p="<>" ;; + esac + else + case "$count" in + "") # no upstream + p="" ;; + "0 0") # equal to upstream + p=" u=" ;; + "0 "*) # ahead of upstream + p=" u+${count#0 }" ;; + *" 0") # behind upstream + p=" u-${count% 0}" ;; + *) # diverged from upstream + p=" u+${count#* }-${count% *}" ;; + esac + fi + +} + + +# __git_ps1 accepts 0 or 1 arguments (i.e., format string) +# returns text to add to bash PS1 prompt (includes branch name) +__git_ps1 () +{ + local g="$(__gitdir)" + if [ -n "$g" ]; then + local r="" + local b="" + if [ -f "$g/rebase-merge/interactive" ]; then + r="|REBASE-i" + b="$(cat "$g/rebase-merge/head-name")" + elif [ -d "$g/rebase-merge" ]; then + r="|REBASE-m" + b="$(cat "$g/rebase-merge/head-name")" + else + if [ -d "$g/rebase-apply" ]; then + if [ -f "$g/rebase-apply/rebasing" ]; then + r="|REBASE" + elif [ -f "$g/rebase-apply/applying" ]; then + r="|AM" + else + r="|AM/REBASE" + fi + elif [ -f "$g/MERGE_HEAD" ]; then + r="|MERGING" + elif [ -f "$g/CHERRY_PICK_HEAD" ]; then + r="|CHERRY-PICKING" + elif [ -f "$g/BISECT_LOG" ]; then + r="|BISECTING" + fi + + b="$(git symbolic-ref HEAD 2>/dev/null)" || { + + b="$( + case "${GIT_PS1_DESCRIBE_STYLE-}" in + (contains) + git describe --contains HEAD ;; + (branch) + git describe --contains --all HEAD ;; + (describe) + git describe HEAD ;; + (* | default) + git describe --tags --exact-match HEAD ;; + esac 2>/dev/null)" || + + b="$(cut -c1-7 "$g/HEAD" 2>/dev/null)..." || + b="unknown" + b="($b)" + } + fi + + local w="" + local i="" + local s="" + local u="" + local c="" + local p="" + + if [ "true" = "$(git rev-parse --is-inside-git-dir 2>/dev/null)" ]; then + if [ "true" = "$(git rev-parse --is-bare-repository 2>/dev/null)" ]; then + c="BARE:" + else + b="GIT_DIR!" + fi + elif [ "true" = "$(git rev-parse --is-inside-work-tree 2>/dev/null)" ]; then + if [ -n "${GIT_PS1_SHOWDIRTYSTATE-}" ]; then + if [ "$(git config --bool bash.showDirtyState)" != "false" ]; then + git diff --no-ext-diff --quiet --exit-code || w="*" + if git rev-parse --quiet --verify HEAD >/dev/null; then + git diff-index --cached --quiet HEAD -- || i="+" + else + i="#" + fi + fi + fi + if [ -n "${GIT_PS1_SHOWSTASHSTATE-}" ]; then + git rev-parse --verify refs/stash >/dev/null 2>&1 && s="$" + fi + + if [ -n "${GIT_PS1_SHOWUNTRACKEDFILES-}" ]; then + if [ -n "$(git ls-files --others --exclude-standard)" ]; then + u="%" + fi + fi + + if [ -n "${GIT_PS1_SHOWUPSTREAM-}" ]; then + __git_ps1_show_upstream + fi + fi + + local f="$w$i$s$u" + printf -- "${1:- (%s)}" "$c${b##refs/heads/}${f:+ $f}$r$p" + fi +} diff --git a/plugins/gitfast/gitfast.plugin.zsh b/plugins/gitfast/gitfast.plugin.zsh new file mode 100644 index 000000000..7e50cf721 --- /dev/null +++ b/plugins/gitfast/gitfast.plugin.zsh @@ -0,0 +1,7 @@ +dir=$(dirname $0) +source $dir/../git/git.plugin.zsh +source $dir/git-prompt.sh + +function git_prompt_info() { + __git_ps1 "${ZSH_THEME_GIT_PROMPT_PREFIX//\%/%%}%s${ZSH_THEME_GIT_PROMPT_SUFFIX//\%/%%}" +} From 7991562e768733be9565fb05615c3f0f83ba4eb0 Mon Sep 17 00:00:00 2001 From: Stanislav Mekhonoshin Date: Sat, 24 Nov 2012 11:23:44 +0400 Subject: [PATCH 380/421] Added gwc(git whatchanged alias) Allows to view commit history in extended way --- plugins/git/git.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index d3d3f702a..03ad2edb0 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -38,6 +38,7 @@ alias gm='git merge' compdef _git gm=git-merge alias grh='git reset HEAD' alias grhh='git reset HEAD --hard' +alias gwc='git whatchanged -p --abbrev-commit --pretty=medium' # Git and svn mix alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk' From b2b5e3a7549fc323d3801054c51143142baf4f17 Mon Sep 17 00:00:00 2001 From: Srihari Sriraman Date: Sat, 24 Nov 2012 20:42:40 +0530 Subject: [PATCH 381/421] Added alias to rake db:test:prepare Quite often, db:test:prepare is run after db:migrate. Added for convenience. --- plugins/rails/rails.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/rails/rails.plugin.zsh b/plugins/rails/rails.plugin.zsh index 4aa7a05d6..cd232a6ae 100644 --- a/plugins/rails/rails.plugin.zsh +++ b/plugins/rails/rails.plugin.zsh @@ -5,6 +5,7 @@ alias sp='ruby script/plugin' alias sr='ruby script/runner' alias ssp='ruby script/spec' alias rdbm='rake db:migrate' +alias rdbtp='rake db:test:prepare' alias sc='ruby script/console' alias sd='ruby script/server --debugger' alias devlog='tail -f log/development.log' From 7c768543df965ce5102b34e83fab78cf5e73b626 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristian=20M=C4=83gheru=C8=99an-Stanciu?= Date: Sat, 24 Nov 2012 20:33:25 +0100 Subject: [PATCH 382/421] Added a small mod of the tjkirch theme - single-line prompt - removed the extra line after each command output --- themes/tjkirch_mod.zsh-theme | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 themes/tjkirch_mod.zsh-theme diff --git a/themes/tjkirch_mod.zsh-theme b/themes/tjkirch_mod.zsh-theme new file mode 100644 index 000000000..1b206a7e1 --- /dev/null +++ b/themes/tjkirch_mod.zsh-theme @@ -0,0 +1,13 @@ +ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[green]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}⚡" +ZSH_THEME_GIT_PROMPT_CLEAN="" + +function prompt_char { + if [ $UID -eq 0 ]; then echo "%{$fg[red]%}#%{$reset_color%}"; else echo $; fi +} + +PROMPT='%(?,,%{$fg[red]%}FAIL: $?%{$reset_color%} +)%{$fg[magenta]%}%n%{$reset_color%}@%{$fg[yellow]%}%m%{$reset_color%}: %{$fg_bold[blue]%}%~%{$reset_color%}$(git_prompt_info) %_$(prompt_char) ' + +RPROMPT='%{$fg[green]%}[%*]%{$reset_color%}' From 75e5a6dcfc20a582a4b4653a25c074f4263dd7dc Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Sun, 25 Nov 2012 20:34:12 -0200 Subject: [PATCH 383/421] fixes my wrong commit - fixes #1423 --- .gitignore | 1 + custom/totvs.zsh | 124 ----------------------------------------------- 2 files changed, 1 insertion(+), 124 deletions(-) delete mode 100644 custom/totvs.zsh diff --git a/.gitignore b/.gitignore index 4cb1720e7..51a5ee6c3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ locals.zsh log/.zsh_history projects.zsh +custom/* !custom/example !custom/example.zsh *.swp diff --git a/custom/totvs.zsh b/custom/totvs.zsh deleted file mode 100644 index 883bdf7dd..000000000 --- a/custom/totvs.zsh +++ /dev/null @@ -1,124 +0,0 @@ -# -# Just some utilities for use in ecm development. -# - -setopt rmstarsilent - -HOME="/home/carlos" -ECM_WS="$HOME/totvs/ws" -ECM_JBOSS="$HOME/Public/ecm/JBoss-7.1.1" -ECM_PORT="8080" -VOLDEMORT=$ECM_WS/voldemort -ECM=$ECM_WS/ecm -INSTALLER="n" -DRY_CLEAN="n" - -# fuckin aliases -alias ecmu=ecmup -alias ecmb=ecmbuild -alias ecmc=ecmclean -alias ecms=ecmstart -alias ecmo=ecmstop -alias ecmi=ecminstall -alias ecmri=ecmruninstall -alias ecm=ecmfull -alias e='MAVEN_OPTS="-Xmx2048m -XX:MaxPermSize=512m -DskipTests=true" ecm' - - -# update ecm -ecmup() { - echo "update all the things!" - cd $VOLDEMORT && svn up - cd $ECM && svn up -} - -# build it! -ecmbuild() { - echo "build? no problem sir..." - cd $VOLDEMORT && mvncie && \ - cd $VOLDEMORT/social-ecm && \ - cd $VOLDEMORT/wcm && mvncie && \ - cd $ECM/wecmpackage && mvncie && \ - cd $VOLDEMORT/ecm && mvncie && \ - ecminstall -} - -# gen installer or cp wars... -ecminstall() { - case $@ in - -*i*) - INSTALLER=y - ;; - esac - if [[ "$INSTALLER" == "y" ]]; then - echo "generating installer..." - cd $VOLDEMORT/ecm/installer - mvnci -am -Drun=installer -DLinux64=true -DappServer=jboss - else - echo "cpying wars..." - cd $VOLDEMORT/ecm/build && mvnci && \ - cd $VOLDEMORT/wcm/build && mvnci && \ - cd $VOLDEMORT/social-ecm/build && mvnci - fi -} - -# clean jboss trash folders -ecmclean() { - echo "cleaning jboss shit" - case $@ in - -*d*) - DRY_CLEAN="y" - ;; - esac - if [[ "$DRY_CLEAN" == "y" ]]; then - rm -rf $ECM_JBOSS/standalone/deployments/*.{failed,deployed,dodeploy,deploying} - else - rm -rf $ECM_JBOSS/standalone/deployments/* - fi - rm -rf $ECM_JBOSS/standalone/{log,tmp,data} - rm -rf $ECM_JBOSS/solr/zoo_data -} - -# start jboss server -ecmstart() { - # why shall I start server if i just gen a installer? - if [[ "$INSTALLER" == "y" ]]; then - ecmruninstall - else - echo "starting jboss" - cd $ECM_JBOSS/bin - JAVA_OPTS="-Xmx2048m -XX:MaxPermSize=512m -DzkRun -Dbootstrap_conf=true" ./standalone.sh - fi -} - -ecmruninstall() { - echo "ok, lets install this crap :)" - cd $VOLDEMORT/ecm/installer/izpack/target - if [[ -f ECM-Linux64.zip ]]; then - mkdir -p /tmp/ecmi - rm -rf /tmp/ecmi/* - unzip ECM-Linux64 -d /tmp/ecmi/ - cd /tmp/ecmi/ - chmod a+x ECM-Installer-64.sh - ./ECM-Installer-64.sh - else - echo "uhoh, installer doesnt exist ($VOLDEMORT/ecm/installer/izpack/target/ECM-Linux64.zip)" - fi -} - -# stop jboss (usually on 8080) -ecmstop() { - echo "kill jboss (or whatever you are running on 8080" - fuser -k $ECM_PORT/tcp -} - -# do all the things -ecmfull() { - echo "serious business here. let's have a coffee.." - ecmstop - ecmclean - ecmup - ecmbuild && ecmstart -} - - From 200a25818adf9570186c8ee0abf9d425577ae53b Mon Sep 17 00:00:00 2001 From: Eric Danielson Date: Mon, 26 Nov 2012 11:35:16 -0800 Subject: [PATCH 384/421] Add UPDATE_ZSH_DAYS setting --- templates/zshrc.zsh-template | 3 +++ tools/check_for_upgrade.sh | 8 +++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/templates/zshrc.zsh-template b/templates/zshrc.zsh-template index e52553241..758fc26b8 100644 --- a/templates/zshrc.zsh-template +++ b/templates/zshrc.zsh-template @@ -17,6 +17,9 @@ ZSH_THEME="robbyrussell" # Comment this out to disable weekly auto-update checks # DISABLE_AUTO_UPDATE="true" +# Change this value to set how frequently ZSH updates¬ +export UPDATE_ZSH_DAYS=13 + # Uncomment following line if you want to disable colors in ls # DISABLE_LS_COLORS="true" diff --git a/tools/check_for_upgrade.sh b/tools/check_for_upgrade.sh index 612901cbe..581f03a07 100644 --- a/tools/check_for_upgrade.sh +++ b/tools/check_for_upgrade.sh @@ -14,6 +14,12 @@ function _upgrade_zsh() { _update_zsh_update } +epoch_target=$UPDATE_ZSH_DAYS +if [[ -z "$epoch_target" ]]; then + # Default to old behavior + epoch_target=13 +fi + if [ -f ~/.zsh-update ] then . ~/.zsh-update @@ -23,7 +29,7 @@ then fi epoch_diff=$(($(_current_epoch) - $LAST_EPOCH)) - if [ $epoch_diff -gt 13 ] + if [ $epoch_diff -gt $epoch_target ] then if [ "$DISABLE_UPDATE_PROMPT" = "true" ] then From 79e620c392393f254d9614b18963af1c9ac234e7 Mon Sep 17 00:00:00 2001 From: Drarok Ithaqua Date: Tue, 27 Nov 2012 12:03:51 +0000 Subject: [PATCH 385/421] Whitespace cleanup. --- plugins/svn/svn.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/svn/svn.plugin.zsh b/plugins/svn/svn.plugin.zsh index bd2767e3e..142ac3bd3 100644 --- a/plugins/svn/svn.plugin.zsh +++ b/plugins/svn/svn.plugin.zsh @@ -15,7 +15,7 @@ function in_svn() { function svn_get_repo_name { if [ $(in_svn) ]; then svn info | sed -n 's/Repository\ Root:\ .*\///p' | read SVN_ROOT - + svn info | sed -n "s/URL:\ .*$SVN_ROOT\///p" fi } @@ -31,7 +31,7 @@ function svn_dirty_choose { svn status 2> /dev/null | grep -Eq '^\s*[ACDIM!?L]' if [ $pipestatus[-1] -ne 0 ]; then echo $1 - else + else echo $2 fi fi From 120db35b2dd7792b981401f66323e8886668c909 Mon Sep 17 00:00:00 2001 From: Drarok Ithaqua Date: Tue, 27 Nov 2012 12:08:18 +0000 Subject: [PATCH 386/421] Fix the backwards svn status, and add comments explaining which way grep does things. --- plugins/svn/svn.plugin.zsh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plugins/svn/svn.plugin.zsh b/plugins/svn/svn.plugin.zsh index 142ac3bd3..79c8bdcdf 100644 --- a/plugins/svn/svn.plugin.zsh +++ b/plugins/svn/svn.plugin.zsh @@ -1,3 +1,4 @@ + function svn_prompt_info { if [ $(in_svn) ]; then echo "$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_PREFIX\ @@ -29,9 +30,11 @@ function svn_get_rev_nr { function svn_dirty_choose { if [ $(in_svn) ]; then svn status 2> /dev/null | grep -Eq '^\s*[ACDIM!?L]' - if [ $pipestatus[-1] -ne 0 ]; then + if [ $pipestatus[-1] -eq 0 ]; then + # Grep exits with 0 when "One or more lines were selected", return "dirty". echo $1 else + # Otherwise, no lines were found, or an error occurred. Return clean. echo $2 fi fi From 7fc612bcb991919d561fedc18eeaedfd9c568942 Mon Sep 17 00:00:00 2001 From: Hauke Stange Date: Tue, 27 Nov 2012 21:20:56 +0100 Subject: [PATCH 387/421] removed 'x' from prompt_context() function name --- themes/agnoster.zsh-theme | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/themes/agnoster.zsh-theme b/themes/agnoster.zsh-theme index 84b9649a6..5f83b820f 100644 --- a/themes/agnoster.zsh-theme +++ b/themes/agnoster.zsh-theme @@ -106,10 +106,10 @@ prompt_status() { build_prompt() { RETVAL=$? prompt_status - prompt_contextx + prompt_context prompt_dir prompt_git prompt_end } -PROMPT='%{%f%b%k%}$(build_prompt) ' \ No newline at end of file +PROMPT='%{%f%b%k%}$(build_prompt) ' From 3d7622831fd86a3eaf4bbe3a11102929716d3781 Mon Sep 17 00:00:00 2001 From: Hauke Stange Date: Tue, 27 Nov 2012 21:43:23 +0100 Subject: [PATCH 388/421] fixed symbolic-ref git view of agnoster theme --- themes/agnoster.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/agnoster.zsh-theme b/themes/agnoster.zsh-theme index 5f83b820f..bd6f1a6a2 100644 --- a/themes/agnoster.zsh-theme +++ b/themes/agnoster.zsh-theme @@ -73,7 +73,7 @@ prompt_git() { if $(git rev-parse --is-inside-work-tree >/dev/null 2>&1); then ZSH_THEME_GIT_PROMPT_DIRTY='±' dirty=$(parse_git_dirty) - ref=$(git symbolic-Fref HEAD 2> /dev/null) || ref="➦ $(git show-ref --head -s --abbrev |head -n1 2> /dev/null)" + ref=$(git symbolic-ref HEAD 2> /dev/null) || ref="➦ $(git show-ref --head -s --abbrev |head -n1 2> /dev/null)" if [[ -n $dirty ]]; then prompt_segment yellow black else From 53854754e0d052c41587c7d84b9be7868f31bfe8 Mon Sep 17 00:00:00 2001 From: Max Bane Date: Wed, 28 Nov 2012 02:02:58 -0500 Subject: [PATCH 389/421] Revert "Fix to restore bindings after switching to vi-mode" This reverts commit b609aa0e6c981f2039d777687cb01a84587f6edc -- this commit was a bad idea, because it makes vi-mode very difficult to use. The default `bindkey` keybindings are NOT MEANT to coexist with `bindkey -v` Vi mode; that's why `bindkey -v` clears them in the first place! Restoring all of the default keybindings after enabling Vi mode, the way the reverted commit did, causes many collisions between those default keybindings that begin with ESC and the command-mode-initiating ESC of Vi mode. See Issue 1438 of robbyrussell/oh-my-zsh. If people have custom keybindings, they should create them in their ~/.zshrc AFTER enabling the vi-mode plugin and sourcing oh-my-zsh.sh. # Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # On branch master # Changes to be committed: # (use "git reset HEAD ..." to unstage) # # modified: plugins/vi-mode/vi-mode.plugin.zsh # --- plugins/vi-mode/vi-mode.plugin.zsh | 5 ----- 1 file changed, 5 deletions(-) diff --git a/plugins/vi-mode/vi-mode.plugin.zsh b/plugins/vi-mode/vi-mode.plugin.zsh index d29eb1dda..c47ab7211 100644 --- a/plugins/vi-mode/vi-mode.plugin.zsh +++ b/plugins/vi-mode/vi-mode.plugin.zsh @@ -5,12 +5,7 @@ function zle-line-init zle-keymap-select { zle -N zle-line-init zle -N zle-keymap-select -#changing mode clobbers the keybinds, so store the keybinds before and execute -#them after -binds=`bindkey -L` bindkey -v -for bind in ${(@f)binds}; do eval $bind; done -unset binds # if mode indicator wasn't setup by theme, define default if [[ "$MODE_INDICATOR" == "" ]]; then From 5d6252c6d0e3598f2e19b9a02f7eb8a49317b1f1 Mon Sep 17 00:00:00 2001 From: Hauke Stange Date: Wed, 28 Nov 2012 10:39:59 +0100 Subject: [PATCH 390/421] fixed autojump plugin: works with homebrew again now --- plugins/autojump/autojump.plugin.zsh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/autojump/autojump.plugin.zsh b/plugins/autojump/autojump.plugin.zsh index d367863b8..42d2d44d6 100644 --- a/plugins/autojump/autojump.plugin.zsh +++ b/plugins/autojump/autojump.plugin.zsh @@ -1,11 +1,11 @@ -if [ $commands[autojump] ]; then # check if autojump is installed +if [ $commands[autojump] ]; then # check if autojump is if [ -f /usr/share/autojump/autojump.zsh ]; then # debian and ubuntu package . /usr/share/autojump/autojump.zsh elif [ -f /etc/profile.d/autojump.zsh ]; then # manual installation . /etc/profile.d/autojump.zsh elif [ -f /opt/local/etc/profile.d/autojump.zsh ]; then # mac os x with ports . /opt/local/etc/profile.d/autojump.zsh - elif [ $commands[brew] -a -f `brew --prefix`/etc/autojump ]; then # mac os x with brew - . `brew --prefix`/etc/autojump + elif [ $commands[brew] -a -f `brew --prefix`/etc/autojump.zsh ]; then # mac os x with brew + . `brew --prefix`/etc/autojump.zsh fi fi From 5c983257726dfc8ac97d5a5e259dcaa9540b808b Mon Sep 17 00:00:00 2001 From: Hauke Stange Date: Wed, 28 Nov 2012 10:47:31 +0100 Subject: [PATCH 391/421] fixed autojump: autocompletion works with homebrew again --- plugins/autojump/autojump.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/autojump/autojump.plugin.zsh b/plugins/autojump/autojump.plugin.zsh index 42d2d44d6..fdce3a246 100644 --- a/plugins/autojump/autojump.plugin.zsh +++ b/plugins/autojump/autojump.plugin.zsh @@ -1,4 +1,4 @@ -if [ $commands[autojump] ]; then # check if autojump is +if [ $commands[autojump] ]; then # check if autojump is installed if [ -f /usr/share/autojump/autojump.zsh ]; then # debian and ubuntu package . /usr/share/autojump/autojump.zsh elif [ -f /etc/profile.d/autojump.zsh ]; then # manual installation From 1b4393fbb67b24d90caad71067c1cb58e8706a69 Mon Sep 17 00:00:00 2001 From: Will Weaver Date: Wed, 28 Nov 2012 08:09:25 -0500 Subject: [PATCH 392/421] Add autocomplete for git "hubflow" This was copied from the git-flow plugin and necessary changes made for the additional features. http://dev.datasift.com/blog/hubflow-github-and-gitflow-model-together HubFlow is git flow with additional features to help with use of github. --- plugins/git-hubflow/git-hubflow.plugin.zsh | 348 +++++++++++++++++++++ 1 file changed, 348 insertions(+) create mode 100644 plugins/git-hubflow/git-hubflow.plugin.zsh diff --git a/plugins/git-hubflow/git-hubflow.plugin.zsh b/plugins/git-hubflow/git-hubflow.plugin.zsh new file mode 100644 index 000000000..a09f88391 --- /dev/null +++ b/plugins/git-hubflow/git-hubflow.plugin.zsh @@ -0,0 +1,348 @@ +#!zsh +# +# Installation +# ------------ +# +# To achieve git-hubflow completion nirvana: +# +# 0. Update your zsh's git-completion module to the newest verion. +# From here. http://zsh.git.sourceforge.net/git/gitweb.cgi?p=zsh/zsh;a=blob_plain;f=Completion/Unix/Command/_git;hb=HEAD +# +# 1. Install this file. Either: +# +# a. Place it in your .zshrc: +# +# b. Or, copy it somewhere (e.g. ~/.git-hubflow-completion.zsh) and put the following line in +# your .zshrc: +# +# source ~/.git-hubflow-completion.zsh +# +# c. Or, use this file as a oh-my-zsh plugin. +# + +_git-hf () +{ + local curcontext="$curcontext" state line + typeset -A opt_args + + _arguments -C \ + ':command:->command' \ + '*::options:->options' + + case $state in + (command) + + local -a subcommands + subcommands=( + 'init:Initialize a new git repo with support for the branching model.' + 'feature:Manage your feature branches.' + 'release:Manage your release branches.' + 'hotfix:Manage your hotfix branches.' + 'support:Manage your support branches.' + 'update:Pull upstream changes down into your master and develop branches.' + 'version:Shows version information.' + ) + _describe -t commands 'git hf' subcommands + ;; + + (options) + case $line[1] in + + (init) + _arguments \ + -f'[Force setting of gitflow branches, even if already configured]' + ;; + + (version) + ;; + + (hotfix) + __git-hf-hotfix + ;; + + (release) + __git-hf-release + ;; + + (feature) + __git-hf-feature + ;; + esac + ;; + esac +} + +__git-hf-release () +{ + local curcontext="$curcontext" state line + typeset -A opt_args + + _arguments -C \ + ':command:->command' \ + '*::options:->options' + + case $state in + (command) + + local -a subcommands + subcommands=( + 'start:Start a new release branch.' + 'finish:Finish a release branch.' + 'list:List all your release branches. (Alias to `git hf release`)' + 'cancel:Cancel release' + 'push:Push release to github' + 'pull:Pull release from github' + 'track:Track release' + ) + _describe -t commands 'git hf release' subcommands + _arguments \ + -v'[Verbose (more) output]' + ;; + + (options) + case $line[1] in + + (start) + _arguments \ + -F'[Fetch from origin before performing finish]'\ + ':version:__git_hf_version_list' + ;; + + (finish) + _arguments \ + -F'[Fetch from origin before performing finish]' \ + -s'[Sign the release tag cryptographically]'\ + -u'[Use the given GPG-key for the digital signature (implies -s)]'\ + -m'[Use the given tag message]'\ + -p'[Push to $ORIGIN after performing finish]'\ + -k'[Keep branch after performing finish]'\ + -n"[Don't tag this release]"\ + ':version:__git_hf_version_list' + ;; + + *) + _arguments \ + -v'[Verbose (more) output]' + ;; + esac + ;; + esac +} + +__git-hf-hotfix () +{ + local curcontext="$curcontext" state line + typeset -A opt_args + + _arguments -C \ + ':command:->command' \ + '*::options:->options' + + case $state in + (command) + + local -a subcommands + subcommands=( + 'start:Start a new hotfix branch.' + 'finish:Finish a hotfix branch.' + 'list:List all your hotfix branches. (Alias to `git hf hotfix`)' + 'publish:Publish the hotfix branch.' + 'track:Track the hotfix branch.' + 'pull:Pull the hotfix from github.' + 'push:Push the hotfix to github.' + 'cancel:Cancel the hotfix.' + ) + _describe -t commands 'git hf hotfix' subcommands + _arguments \ + -v'[Verbose (more) output]' + ;; + + (options) + case $line[1] in + + (start) + _arguments \ + -F'[Fetch from origin before performing finish]'\ + ':hotfix:__git_hf_version_list'\ + ':branch-name:__git_branch_names' + ;; + + (finish) + _arguments \ + -F'[Fetch from origin before performing finish]' \ + -s'[Sign the release tag cryptographically]'\ + -u'[Use the given GPG-key for the digital signature (implies -s)]'\ + -m'[Use the given tag message]'\ + -p'[Push to $ORIGIN after performing finish]'\ + -k'[Keep branch after performing finish]'\ + -n"[Don't tag this release]"\ + ':hotfix:__git_hf_hotfix_list' + ;; + + *) + _arguments \ + -v'[Verbose (more) output]' + ;; + esac + ;; + esac +} + +__git-hf-feature () +{ + local curcontext="$curcontext" state line + typeset -A opt_args + + _arguments -C \ + ':command:->command' \ + '*::options:->options' + + case $state in + (command) + + local -a subcommands + subcommands=( + 'list:List all your feature branches. (Alias to `git hf feature`)' + 'start:Start a new feature branch' + 'finish:Finish a feature branch' + 'submit:submit' + 'track:track' + 'diff:Diff' + 'rebase:Rebase feature branch against develop' + 'checkout:Checkout feature' + 'pull:Pull feature branch from github' + 'push:Push feature branch to github' + 'cancel:Cancel feature' + ) + _describe -t commands 'git hf feature' subcommands + _arguments \ + -v'[Verbose (more) output]' + ;; + + (options) + case $line[1] in + + (start) + _arguments \ + -F'[Fetch from origin before performing finish]'\ + ':feature:__git_hf_feature_list'\ + ':branch-name:__git_branch_names' + ;; + + (finish) + _arguments \ + -F'[Fetch from origin before performing finish]' \ + -r'[Rebase instead of merge]'\ + ':feature:__git_hf_feature_list' + ;; + + (publish) + _arguments \ + ':feature:__git_hf_feature_list'\ + ;; + + (track) + _arguments \ + ':feature:__git_hf_feature_list'\ + ;; + + (diff) + _arguments \ + ':branch:__git_branch_names'\ + ;; + + (rebase) + _arguments \ + -i'[Do an interactive rebase]' \ + ':branch:__git_branch_names' + ;; + + (checkout) + _arguments \ + ':branch:__git_hf_feature_list'\ + ;; + + (pull) + _arguments \ + ':remote:__git_remotes'\ + ':branch:__git_branch_names' + ;; + + *) + _arguments \ + -v'[Verbose (more) output]' + ;; + esac + ;; + esac +} + +__git_hf_version_list () +{ + local expl + declare -a versions + + versions=(${${(f)"$(_call_program versions git hf release list 2> /dev/null | tr -d ' |*')"}}) + __git_command_successful || return + + _wanted versions expl 'version' compadd $versions +} + +__git_hf_feature_list () +{ + local expl + declare -a features + + features=(${${(f)"$(_call_program features git hf feature list 2> /dev/null | tr -d ' |*')"}}) + __git_command_successful || return + + _wanted features expl 'feature' compadd $features +} + +__git_remotes () { + local expl gitdir remotes + + gitdir=$(_call_program gitdir git rev-parse --git-dir 2>/dev/null) + __git_command_successful || return + + remotes=(${${(f)"$(_call_program remotes git config --get-regexp '"^remote\..*\.url$"')"}//#(#b)remote.(*).url */$match[1]}) + __git_command_successful || return + + # TODO: Should combine the two instead of either or. + if (( $#remotes > 0 )); then + _wanted remotes expl remote compadd $* - $remotes + else + _wanted remotes expl remote _files $* - -W "($gitdir/remotes)" -g "$gitdir/remotes/*" + fi +} + +__git_hf_hotfix_list () +{ + local expl + declare -a hotfixes + + hotfixes=(${${(f)"$(_call_program hotfixes git hf hotfix list 2> /dev/null | tr -d ' |*')"}}) + __git_command_successful || return + + _wanted hotfixes expl 'hotfix' compadd $hotfixes +} + +__git_branch_names () { + local expl + declare -a branch_names + + branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads 2>/dev/null)"}#refs/heads/}) + __git_command_successful || return + + _wanted branch-names expl branch-name compadd $* - $branch_names +} + +__git_command_successful () { + if (( ${#pipestatus:#0} > 0 )); then + _message 'not a git repository' + return 1 + fi + return 0 +} + +zstyle ':completion:*:*:git:*' user-commands flow:'description for foo' From 3b6fae14fb6f700bb623d48b2915736de552b387 Mon Sep 17 00:00:00 2001 From: Gustavo Date: Wed, 28 Nov 2012 20:33:45 -0300 Subject: [PATCH 393/421] Node.js version of urltools es more fast (53% aprox), you can try this with strace -o trace -c -Ttt --- plugins/urltools/urltools.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/urltools/urltools.plugin.zsh b/plugins/urltools/urltools.plugin.zsh index 0d29314d6..3de74ae3d 100644 --- a/plugins/urltools/urltools.plugin.zsh +++ b/plugins/urltools/urltools.plugin.zsh @@ -4,6 +4,6 @@ # Taken from: # http://ruslanspivak.com/2010/06/02/urlencode-and-urldecode-from-a-command-line/ -alias urlencode='python -c "import sys, urllib as ul; print ul.quote_plus(sys.argv[1])"' +alias urlencode='node -e "console.log(encodeURIComponent(process.argv[1]))"' -alias urldecode='python -c "import sys, urllib as ul; print ul.unquote_plus(sys.argv[1])"' \ No newline at end of file +alias urldecode='node -e "console.log(decodeURIComponent(process.argv[1]))"' From 263107ed7faa7df15e70f5592c352021e74c6958 Mon Sep 17 00:00:00 2001 From: satoru Date: Fri, 30 Nov 2012 11:55:45 +0800 Subject: [PATCH 394/421] fix typo --- themes/agnoster.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/agnoster.zsh-theme b/themes/agnoster.zsh-theme index 84b9649a6..2e390640c 100644 --- a/themes/agnoster.zsh-theme +++ b/themes/agnoster.zsh-theme @@ -106,7 +106,7 @@ prompt_status() { build_prompt() { RETVAL=$? prompt_status - prompt_contextx + prompt_context prompt_dir prompt_git prompt_end From ded745bf1471487c7dc537c781685615ff4c2515 Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Fri, 30 Nov 2012 05:58:08 -0800 Subject: [PATCH 395/421] Modifying documentation in zshrc template for new config option --- templates/zshrc.zsh-template | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/templates/zshrc.zsh-template b/templates/zshrc.zsh-template index 758fc26b8..2ea9934af 100644 --- a/templates/zshrc.zsh-template +++ b/templates/zshrc.zsh-template @@ -14,11 +14,11 @@ ZSH_THEME="robbyrussell" # Set to this to use case-sensitive completion # CASE_SENSITIVE="true" -# Comment this out to disable weekly auto-update checks +# Comment this out to disable bi-weekly auto-update checks # DISABLE_AUTO_UPDATE="true" -# Change this value to set how frequently ZSH updates¬ -export UPDATE_ZSH_DAYS=13 +# Uncomment to change how many often would you like to wait before auto-updates occur? (in days) +# export UPDATE_ZSH_DAYS=13 # Uncomment following line if you want to disable colors in ls # DISABLE_LS_COLORS="true" From 5b201468d109f87b0ec3dd0b190fa71813af542e Mon Sep 17 00:00:00 2001 From: Ryan Castillo Date: Sat, 1 Dec 2012 21:03:07 -0500 Subject: [PATCH 396/421] Improve formatting of step 2 for clarity --- README.textile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.textile b/README.textile index a38e2d7cf..e114da6d2 100644 --- a/README.textile +++ b/README.textile @@ -28,10 +28,10 @@ h3. The manual way 2. Create a new zsh config by copying the zsh template we've provided. - *NOTE*: If you already have a ~/.zshrc file, you should back it up. @cp ~/.zshrc ~/.zshrc.orig@ in case you want to go back to your original settings. - @cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc@ + *NOTE*: If you already have a ~/.zshrc file, you should back it up. @cp ~/.zshrc ~/.zshrc.orig@ in case you want to go back to your original settings. + 3. Set zsh as your default shell: @chsh -s /bin/zsh@ From 60c38134725e4a41c9849bb9ffc1a5cea86c00e3 Mon Sep 17 00:00:00 2001 From: Ryan Castillo Date: Sat, 1 Dec 2012 21:10:23 -0500 Subject: [PATCH 397/421] Make the NOTE an optional for improved instructions --- README.textile | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/README.textile b/README.textile index e114da6d2..0a4545bac 100644 --- a/README.textile +++ b/README.textile @@ -26,17 +26,20 @@ h3. The manual way @git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh@ -2. Create a new zsh config by copying the zsh template we've provided. +2. *OPTIONAL* Backup your existing ~/.zshrc file + + @cp ~/.zshrc ~/.zshrc.orig@ + +3. Create a new zsh config by copying the zsh template we've provided. @cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc@ - *NOTE*: If you already have a ~/.zshrc file, you should back it up. @cp ~/.zshrc ~/.zshrc.orig@ in case you want to go back to your original settings. -3. Set zsh as your default shell: +4. Set zsh as your default shell: @chsh -s /bin/zsh@ -4. Start / restart zsh (open a new terminal is easy enough...) +5. Start / restart zsh (open a new terminal is easy enough...) h3. Problems? From f29daef2973018e60900553b0ea69074a5d9a5de Mon Sep 17 00:00:00 2001 From: Michael Nikitochkin Date: Sun, 2 Dec 2012 14:16:58 +0200 Subject: [PATCH 398/421] Fix repo for github. --- plugins/github/github.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/github/github.plugin.zsh b/plugins/github/github.plugin.zsh index 197e86a48..598b059c1 100644 --- a/plugins/github/github.plugin.zsh +++ b/plugins/github/github.plugin.zsh @@ -61,6 +61,7 @@ exist_gh() { # [DIRECTORY] cd "$1" name=$( git config user.name ) ghuser=$( git config github.user ) + repo=$1 git remote add origin git@github.com:${ghuser}/${repo}.git git push -u origin master From f9de64460ce51e105f27d30a9ecb20612ab65d57 Mon Sep 17 00:00:00 2001 From: Alexander Simonov Date: Sun, 22 May 2011 01:29:41 +0200 Subject: [PATCH 399/421] Simonoff theme --- themes/simonoff.zsh-theme | 142 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 themes/simonoff.zsh-theme diff --git a/themes/simonoff.zsh-theme b/themes/simonoff.zsh-theme new file mode 100644 index 000000000..01f381c48 --- /dev/null +++ b/themes/simonoff.zsh-theme @@ -0,0 +1,142 @@ +# Prompt +# +# Below are the color init strings for the basic file types. A color init +# string consists of one or more of the following numeric codes: +# Attribute codes: +# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed +# Text color codes: +# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white +# Background color codes: +# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white +function precmd { + + local TERMWIDTH + (( TERMWIDTH = ${COLUMNS} - 1 )) + + + ### + # Truncate the path if it's too long. + + PR_FILLBAR="" + PR_PWDLEN="" + + local promptsize=${#${(%):---(%n@%M:%l)---()}} + local pwdsize=${#${(%):-%~}} + local gitbranch="$(git_prompt_info)" + local rvmprompt="$(rvm_prompt_info)" + local gitbranchsize=${#${gitbranch:-''}} + local rvmpromptsize=${#${rvmprompt:-''}} + + if [[ "$promptsize + $pwdsize + $rvmpromptsize + $gitbranchsize" -gt $TERMWIDTH ]]; then + ((PR_PWDLEN=$TERMWIDTH - $promptsize)) + else + PR_FILLBAR="\${(l.(($TERMWIDTH - ($promptsize + $pwdsize + $rvmpromptsize + $gitbranchsize)))..${PR_SPACE}.)}" + fi +} + + +setopt extended_glob + +preexec () { + if [[ "$TERM" == "screen" ]]; then + local CMD=${1[(wr)^(*=*|sudo|-*)]} + echo -n "\ek$CMD\e\\" + fi + + if [[ "$TERM" == "xterm" ]]; then + print -Pn "\e]0;$1\a" + fi + + if [[ "$TERM" == "rxvt" ]]; then + print -Pn "\e]0;$1\a" + fi + +} + +setprompt () { +### +# Need this so the prompt will work. + + setopt prompt_subst + + +### +# See if we can use colors. + + autoload colors zsh/terminfo + if [[ "$terminfo[colors]" -ge 8 ]]; then + colors + fi + for color in RED GREEN YELLOW BLUE MAGENTA CYAN WHITE; do + eval PR_$color='%{$terminfo[bold]$fg[${(L)color}]%}' + eval PR_LIGHT_$color='%{$fg[${(L)color}]%}' + (( count = $count + 1 )) + done + PR_NO_COLOUR="%{$terminfo[sgr0]%}" + + +### +# See if we can use extended characters to look nicer. + + typeset -A altchar +# set -A altchar "${(s..)terminfo[acsc]}" + PR_SET_CHARSET="%{$terminfo[enacs]%}" + PR_HBAR=${altchar[q]:--} + PR_ULCORNER=${altchar[l]:--} + PR_LLCORNER=${altchar[m]:--} + PR_LRCORNER=${altchar[j]:--} + PR_URCORNER=${altchar[k]:--} + + ### + # Modify Git prompt + ZSH_THEME_GIT_PROMPT_PREFIX=" [" + ZSH_THEME_GIT_PROMPT_SUFFIX="]" + ### + # Modify RVM prompt + ZSH_THEME_RVM_PROMPT_PREFIX=" [" + ZSH_THEME_RVM_PROMPT_SUFFIX="]" + ZSH_THEME_RVM_PROMPT_OPTIONS=(v i) + + +### +# Decide if we need to set titlebar text. + + case $TERM in + xterm*|*rxvt*) + PR_TITLEBAR=$'%{\e]0;%(!.-=*[ROOT]*=- | .)%n@%M:%~ $(git_prompt_info) $(rvm_prompt_info) | ${COLUMNS}x${LINES} | %y\a%}' + ;; + screen) + PR_TITLEBAR=$'%{\e_screen \005 (\005t) | %(!.-=[ROOT]=- | .)%n@%m:%~ | ${COLUMNS}x${LINES} | %y\e\\%}' + ;; + *) + PR_TITLEBAR='' + ;; + esac + + +### +# Decide whether to set a screen title + if [[ "$TERM" == "screen" ]]; then + PR_STITLE=$'%{\ekzsh\e\\%}' + else + PR_STITLE='' + fi + +### +# Finally, the prompt. +# + PROMPT='$PR_SET_CHARSET$PR_STITLE${(e)PR_TITLEBAR}\ +$PR_RED$PR_HBAR<\ +$PR_BLUE%(!.$PR_RED%SROOT%s.%n)$PR_GREEN@$PR_BLUE%M:$PR_GREEN%$PR_PWDLEN<...<%~$PR_CYAN$(git_prompt_info)$(rvm_prompt_info)\ +$PR_RED>$PR_HBAR$PR_SPACE${(e)PR_FILLBAR}\ +$PR_RED$PR_HBAR<\ +$PR_GREEN%l$PR_RED>$PR_HBAR\ + +$PR_RED$PR_HBAR<\ +%(?..$PR_LIGHT_RED%?$PR_BLUE:)\ +$PR_LIGHT_BLUE%(!.$PR_RED.$PR_WHITE)%#$PR_RED>$PR_HBAR\ +$PR_NO_COLOUR ' + +} + +setprompt From 30687c414785fbc7d7d7d44ae60166075be75da7 Mon Sep 17 00:00:00 2001 From: Alexander Simonov Date: Sun, 22 May 2011 01:31:11 +0200 Subject: [PATCH 400/421] Fix RVM loading and RVM ruby version info --- lib/rvm.zsh | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/rvm.zsh b/lib/rvm.zsh index cb870a9bb..a0a48960e 100644 --- a/lib/rvm.zsh +++ b/lib/rvm.zsh @@ -1,5 +1,11 @@ -# get the name of the branch we are on +# load RVM +[[ -s $HOME/.rvm/scripts/rvm ]] && source $HOME/.rvm/scripts/rvm + +# get the name of the ruby version function rvm_prompt_info() { - ruby_version=$(~/.rvm/bin/rvm-prompt 2> /dev/null) || return - [[ ! -z $ruby_version ]] && echo "($ruby_version)" + [ -f $HOME/.rvm/bin/rvm-prompt ] || return + local rvm_prompt + rvm_prompt=$($HOME/.rvm/bin/rvm-prompt ${ZSH_THEME_RVM_PROMPT_OPTIONS} 2>/dev/null) + [[ "${rvm_prompt}x" == "x" ]] && return + echo "$ZSH_THEME_RVM_PROMPT_PREFIX$rvm_prompt$ZSH_THEME_RVM_PROMPT_SUFFIX" } From 27841ca7c1bb6bd19e0eb66e1dcc8fa3a6a6ebba Mon Sep 17 00:00:00 2001 From: Alexander Simonov Date: Sun, 2 Dec 2012 20:30:25 +0200 Subject: [PATCH 401/421] Set default for rvm prompt prefix/suffix --- lib/rvm.zsh | 5 +---- themes/simonoff.zsh-theme | 1 - 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/lib/rvm.zsh b/lib/rvm.zsh index a0a48960e..e8744e61e 100644 --- a/lib/rvm.zsh +++ b/lib/rvm.zsh @@ -1,11 +1,8 @@ -# load RVM -[[ -s $HOME/.rvm/scripts/rvm ]] && source $HOME/.rvm/scripts/rvm - # get the name of the ruby version function rvm_prompt_info() { [ -f $HOME/.rvm/bin/rvm-prompt ] || return local rvm_prompt rvm_prompt=$($HOME/.rvm/bin/rvm-prompt ${ZSH_THEME_RVM_PROMPT_OPTIONS} 2>/dev/null) [[ "${rvm_prompt}x" == "x" ]] && return - echo "$ZSH_THEME_RVM_PROMPT_PREFIX$rvm_prompt$ZSH_THEME_RVM_PROMPT_SUFFIX" + echo "${ZSH_THEME_RVM_PROMPT_PREFIX:=(}${rvm_prompt}${ZSH_THEME_RVM_PROMPT_SUFFIX:=)}" } diff --git a/themes/simonoff.zsh-theme b/themes/simonoff.zsh-theme index 01f381c48..fb4d32e24 100644 --- a/themes/simonoff.zsh-theme +++ b/themes/simonoff.zsh-theme @@ -95,7 +95,6 @@ setprompt () { # Modify RVM prompt ZSH_THEME_RVM_PROMPT_PREFIX=" [" ZSH_THEME_RVM_PROMPT_SUFFIX="]" - ZSH_THEME_RVM_PROMPT_OPTIONS=(v i) ### From 54f199051124cbbbb3e555c681d65f1aa6942856 Mon Sep 17 00:00:00 2001 From: Viktor Gamov Date: Sun, 2 Dec 2012 13:54:24 -0500 Subject: [PATCH 402/421] Update plugins/sublime/sublime.plugin.zsh MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit updated run sublime on linux with parameters  --- plugins/sublime/sublime.plugin.zsh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/sublime/sublime.plugin.zsh b/plugins/sublime/sublime.plugin.zsh index 171f00ef5..9fee18610 100755 --- a/plugins/sublime/sublime.plugin.zsh +++ b/plugins/sublime/sublime.plugin.zsh @@ -3,10 +3,11 @@ if [[ $('uname') == 'Linux' ]]; then if [ -f '/usr/bin/sublime_text' ]; then - alias st='/usr/bin/sublime_text&' + st_run() { nohup /usr/bin/sublime_text $@ > /dev/null & } else - alias st='/usr/bin/sublime-text&' + st_run() { nohup /usr/bin/sublime-text $@ > /dev/null & } fi +alias st=st_run elif [[ $('uname') == 'Darwin' ]]; then alias st='/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl' fi From e226fc048afaf7c849e089304f855f4ebb26ee95 Mon Sep 17 00:00:00 2001 From: Sean Jones Date: Sun, 2 Dec 2012 19:36:33 +0000 Subject: [PATCH 403/421] Added support for Mac to battery plugin --- plugins/battery/battery.plugin.zsh | 83 ++++++++++++++++++++++++------ 1 file changed, 67 insertions(+), 16 deletions(-) diff --git a/plugins/battery/battery.plugin.zsh b/plugins/battery/battery.plugin.zsh index bc75c5cf9..9f404088a 100644 --- a/plugins/battery/battery.plugin.zsh +++ b/plugins/battery/battery.plugin.zsh @@ -1,20 +1,71 @@ -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' +########################################### +# Battery plugin for oh-my-zsh # +# Original Author: Peter hoeg (peterhoeg) # +# Email: peter@speartail.com # +########################################### +# Author: Sean Jones (neuralsandwich) # +# Email: neuralsandwich@gmail.com # +# Modified to add support for Apple Mac # +########################################### + +if [[ $(uname) -eq "Darwin" ]] ; then + + function battery_pct_remaining() { + if [[ $(ioreg -rc AppleSmartBattery | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]] ; then + typeset -F maxcapacity=$(ioreg -rc "AppleSmartBattery"| grep '^.*"MaxCapacity"\ =\ ' | sed -e 's/^.*"MaxCapacity"\ =\ //') + typeset -F currentcapacity=$(ioreg -rc "AppleSmartBattery"| grep '^.*"CurrentCapacity"\ =\ ' | sed -e 's/^.*CurrentCapacity"\ =\ //') + integer i=$(((currentcapacity/maxcapacity) * 100)) + echo $i else - color='red' + echo "External Power" 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 '' } + + function battery_time_remaining() { + if [[ $(ioreg -rc AppleSmartBattery | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]] ; then + timeremaining=$(ioreg -rc "AppleSmartBattery"| grep '^.*"AvgTimeToEmpty"\ =\ ' | sed -e 's/^.*"AvgTimeToEmpty"\ =\ //') + echo "~$((timeremaining / 60)):$((timeremaining % 60))" + else + echo "∞" + fi + } + + function battery_pct_prompt () { + if [[ $(ioreg -rc AppleSmartBattery | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]] ; then + 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 + echo "" + fi + } + +elif [[ $(uname) -eq "Linux" ]] ; then + + 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 fi From 5f62d2c183f93ef02b79675c6a51950cb530dfcb Mon Sep 17 00:00:00 2001 From: Sean Jones Date: Sun, 2 Dec 2012 19:46:53 +0000 Subject: [PATCH 404/421] Added Candy-Kingdom theme --- themes/candy-kingdom.zsh-theme | 37 ++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 themes/candy-kingdom.zsh-theme diff --git a/themes/candy-kingdom.zsh-theme b/themes/candy-kingdom.zsh-theme new file mode 100644 index 000000000..25aeb6597 --- /dev/null +++ b/themes/candy-kingdom.zsh-theme @@ -0,0 +1,37 @@ +# neuralsanwich.zsh-theme +# +# Author: Sean Jones +# URL: http://www.neuralsandwich.com +# Repo: +# Direct link: +# Create: +# Modified: + +if [ "x$OH_MY_ZSH_HG" = "x" ]; then + OH_MY_ZSH_HG="hg" +fi + +function hg_prompt_info { + $OH_MY_ZSH_HG prompt --angle-brackets "\ +< on %{$fg[magenta]%}%{$reset_color%}>\ +< at %{$fg[yellow]%}%{$reset_color%}>\ +%{$fg[green]%}%{$reset_color%}< +patches: >" 2>/dev/null +} + +function box_name { + [ -f ~/.box-name ] && cat ~/.box-name || hostname -s +} + +PROMPT=' +%{$fg[magenta]%}%n%{$reset_color%}@%{$fg[yellow]%}$(box_name)%{$reset_color%}:%{$fg_bold[green]%}${PWD/#$HOME/~}%{$reset_color%}$(hg_prompt_info)$(git_prompt_info) +%(?,,%{${fg_bold[white]}%}[%?]%{$reset_color%} )$ ' + +ZSH_THEME_GIT_PROMPT_PREFIX=" (%{$fg[magenta]%}branch: " +ZSH_THEME_GIT_PROMPT_CLEAN="" +ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[red]%}?" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[orange]%}!" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%})" + +local return_status="%{$fg[red]%}%(?..✘)%{$reset_color%}" +RPROMPT='${return_status}$(battery_time_remaining) $(battery_pct_prompt)%{$reset_color%}' From 8fe6ea388973defc6bb77a32fb86cef5b8231aea Mon Sep 17 00:00:00 2001 From: Martin Putniorz Date: Sun, 2 Dec 2012 20:55:19 +0100 Subject: [PATCH 405/421] Functions for managing pacman-key --- plugins/archlinux/archlinux.plugin.zsh | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/plugins/archlinux/archlinux.plugin.zsh b/plugins/archlinux/archlinux.plugin.zsh index 294dc5354..ae92a0b4c 100644 --- a/plugins/archlinux/archlinux.plugin.zsh +++ b/plugins/archlinux/archlinux.plugin.zsh @@ -11,7 +11,7 @@ if [[ -x `which yaourt` ]]; then 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 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 alias yarem='yaourt -Rns' # Remove the specified package(s), its configuration(s) and unneeded dependencies alias yarep='yaourt -Si' # Display information about a given package in the repositories @@ -35,7 +35,7 @@ fi # Pacman - https://wiki.archlinux.org/index.php/Pacman_Tips alias pacupg='sudo pacman -Syu' # Synchronize with repositories before upgrading packages that are out of date on the local system. alias pacin='sudo pacman -S' # Install specific package(s) from the repositories -alias pacins='sudo pacman -U' # Install specific package not from the repositories but from a file +alias pacins='sudo pacman -U' # Install specific package not from the repositories but from a file alias pacre='sudo pacman -R' # Remove the specified package(s), retaining its configuration(s) and required dependencies alias pacrem='sudo pacman -Rns' # Remove the specified package(s), its configuration(s) and unneeded dependencies alias pacrep='pacman -Si' # Display information about a given package in the repositories @@ -75,3 +75,19 @@ pacdisowned() { comm -23 "$fs" "$db" } + +pacmanallkeys() { + # Get all keys for developers and trusted users + curl https://www.archlinux.org/{developers,trustedusers}/ | + awk -F\" '(/pgp.mit.edu/) {sub(/.*search=0x/,"");print $1}' | + xargs sudo pacman-key --recv-keys +} + +pacmansignkeys() { + for key in $*; do + sudo pacman-key --recv-keys $key + sudo pacman-key --lsign-key $key + printf 'trust\n3\n' | sudo gpg --homedir /etc/pacman.d/gnupg \ + --no-permission-warning --command-fd 0 --edit-key $key + done +} From ab13d0756fcbf690d9550ec1329ff99da0dc3c75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcus=20M=C3=BCller?= Date: Fri, 28 Sep 2012 17:19:28 +0200 Subject: [PATCH 406/421] git find --- plugins/git/git.plugin.zsh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 14ae78d41..0a19e0c1c 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -39,11 +39,14 @@ compdef _git gm=git-merge alias grh='git reset HEAD' alias grhh='git reset HEAD --hard' alias gwc='git whatchanged -p --abbrev-commit --pretty=medium' +alias gf='git ls-files | grep' # Will cd into the top of the current repository # or submodule. alias grt='cd $(git rev-parse --show-toplevel || echo ".")' + + # Git and svn mix alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk' compdef git-svn-dcommit-push=git From fe094712fb0c896eeec55b686807011226bc9208 Mon Sep 17 00:00:00 2001 From: Trae Robrock Date: Tue, 20 Dec 2011 18:15:19 -0800 Subject: [PATCH 407/421] resolving conflict in termsupport plugin --- lib/termsupport.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index 4701e46c5..c056989eb 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -26,7 +26,7 @@ function omz_termsupport_precmd { 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 + local CMD=${1[(wr)^(*=*|sudo|ssh|rake|-*)]} #cmd name only, or if this is sudo or ssh, the next cmd title "$CMD" "%100>...>${2:gs/%/%%}%<<" } From 5991bf3ac1865819fd43cbf38681c71c3d5c9ecb Mon Sep 17 00:00:00 2001 From: Sean Jones Date: Sun, 2 Dec 2012 20:39:01 +0000 Subject: [PATCH 408/421] Fixed Kernel Detection in battery plugin --- plugins/battery/battery.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/battery/battery.plugin.zsh b/plugins/battery/battery.plugin.zsh index 9f404088a..95f890632 100644 --- a/plugins/battery/battery.plugin.zsh +++ b/plugins/battery/battery.plugin.zsh @@ -8,7 +8,7 @@ # Modified to add support for Apple Mac # ########################################### -if [[ $(uname) -eq "Darwin" ]] ; then +if [[ $(uname) == "Darwin" ]] ; then function battery_pct_remaining() { if [[ $(ioreg -rc AppleSmartBattery | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]] ; then @@ -46,7 +46,7 @@ if [[ $(uname) -eq "Darwin" ]] ; then fi } -elif [[ $(uname) -eq "Linux" ]] ; then +elif [[ $(uname) == "Linux" ]] ; then if [[ $(acpi 2&>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]] ; then function battery_pct_remaining() { echo "$(acpi | cut -f2 -d ',' | tr -cd '[:digit:]')" } From dfbafe6d58bf1463df393fd4478154be36a675aa Mon Sep 17 00:00:00 2001 From: Probably Not Date: Sat, 4 Aug 2012 11:41:47 -0700 Subject: [PATCH 409/421] Fixing conflict in install scripts --- tools/install.sh | 3 +-- tools/uninstall.sh | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/tools/install.sh b/tools/install.sh index 6f58db939..41f83e354 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -14,8 +14,7 @@ echo "\033[0;34mLooking for an existing zsh config...\033[0m" if [ -f ~/.zshrc ] || [ -h ~/.zshrc ] then echo "\033[0;33mFound ~/.zshrc.\033[0m \033[0;32mBacking up to ~/.zshrc.pre-oh-my-zsh\033[0m"; - cp ~/.zshrc ~/.zshrc.pre-oh-my-zsh; - rm ~/.zshrc; + mv ~/.zshrc ~/.zshrc.pre-oh-my-zsh; fi echo "\033[0;34mUsing the Oh My Zsh template file and adding it to ~/.zshrc\033[0m" diff --git a/tools/uninstall.sh b/tools/uninstall.sh index 8ff583322..41d601576 100644 --- a/tools/uninstall.sh +++ b/tools/uninstall.sh @@ -4,12 +4,20 @@ then rm -rf ~/.oh-my-zsh fi -echo "Looking for an existing zsh config..." +echo "Looking for original zsh config..." if [ -f ~/.zshrc.pre-oh-my-zsh ] || [ -h ~/.zshrc.pre-oh-my-zsh ] then - echo "Found ~/.zshrc. Backing up to ~/.zshrc.pre-oh-my-zsh"; - rm ~/.zshrc; - cp ~/.zshrc.pre-oh-my-zsh ~/.zshrc; + echo "Found ~/.zshrc.pre-oh-my-zsh -- Restoring to ~/.zshrc"; + + if [ -f ~/.zshrc ] || [ -h ~/.zshrc ] + then + ZSHRC_SAVE=".zshrc.omz-uninstalled-`date +%Y%m%d%H%M%S`"; + echo "Found ~/.zshrc -- Renaming to ~/${ZSHRC_SAVE}"; + mv ~/.zshrc ~/${ZSHRC_SAVE}; + fi + + mv ~/.zshrc.pre-oh-my-zsh ~/.zshrc; + source ~/.zshrc; else echo "Switching back to bash" @@ -17,4 +25,4 @@ else source /etc/profile fi -echo "Thanks for trying out Oh My Zsh. It's been uninstalled." \ No newline at end of file +echo "Thanks for trying out Oh My Zsh. It's been uninstalled." From 51e05b7579a26266a0ed26398ab9eb5071800cd8 Mon Sep 17 00:00:00 2001 From: Lucas Sampaio Date: Fri, 5 Oct 2012 17:27:05 -0300 Subject: [PATCH 410/421] hg_current_branch added to mercurial plugin --- plugins/mercurial/mercurial.plugin.zsh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/plugins/mercurial/mercurial.plugin.zsh b/plugins/mercurial/mercurial.plugin.zsh index caf0d9efc..a3a6ff8b6 100644 --- a/plugins/mercurial/mercurial.plugin.zsh +++ b/plugins/mercurial/mercurial.plugin.zsh @@ -12,3 +12,9 @@ alias hgp='hg push' alias hgs='hg status' # this is the 'git commit --amend' equivalent alias hgca='hg qimport -r tip ; hg qrefresh -e ; hg qfinish tip' + +function hg_current_branch() { + if [ -d .hg ]; then + echo hg:$(hg branch) + fi +} \ No newline at end of file From b9d5a39098036f4f62b1e88b8c2c045a35582546 Mon Sep 17 00:00:00 2001 From: "J. Randall Hunt" Date: Sun, 2 Dec 2012 16:32:29 -0500 Subject: [PATCH 411/421] use lazy load for virtualenvwrapper Using lazy loading for virtualenvwrapper gives a mariginal speed improvement and doesn't stop workon_cd from working. It has the undesired effect of forcing you to call certain virtualenv commands twice before they work (only once per shell instantiation). --- plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh index a5abb77c3..0ed2565b4 100644 --- a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh +++ b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh @@ -1,4 +1,4 @@ -wrapsource=`which virtualenvwrapper.sh` +wrapsource=`which virtualenvwrapper_lazy.sh` if [[ -f "$wrapsource" ]]; then source $wrapsource @@ -36,5 +36,5 @@ if [[ -f "$wrapsource" ]]; then } fi else - print "zsh virtualenvwrapper plugin: Cannot find virtualenvwrapper.sh. Please install with \`pip install virtualenvwrapper\`." + print "zsh virtualenvwrapper plugin: Cannot find virtualenvwrapper_lazy.sh. Please install with \`pip install virtualenvwrapper\`." fi From 39e5c9a6d7a88feb570f340ca52e87c8ff8cce61 Mon Sep 17 00:00:00 2001 From: Brian Hartvigsen Date: Sun, 2 Dec 2012 22:59:05 -0700 Subject: [PATCH 412/421] Backwards Compatible Jira URLs #1378 Adds support for Rapid Board without breaking backwards compatibility (like #1378) Allows JIRA url to be set in .zshrc, current directory, and/or home directory. --- plugins/jira/jira.plugin.zsh | 34 +++++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/plugins/jira/jira.plugin.zsh b/plugins/jira/jira.plugin.zsh index de8d10529..b91f93c95 100644 --- a/plugins/jira/jira.plugin.zsh +++ b/plugins/jira/jira.plugin.zsh @@ -1,20 +1,36 @@ # To use: add a .jira-url file in the base of your project +# You can also set JIRA_URL in your .zshrc or put .jira-url in your home directory +# .jira-url in the current directory takes precedence +# +# If you use Rapid Board, set: +#JIRA_RAPID_BOARD="yes" +# in you .zshrc +# # Setup: cd to/my/project # echo "https://name.jira.com" >> .jira-url # Usage: jira # opens a new issue # jira ABC-123 # Opens an existing issue open_jira_issue () { - if [ ! -f .jira-url ]; then - echo "There is no .jira-url file in the current directory..." - return 0; + if [ -f .jira-url ]; then + jira_url=$(cat .jira-url) + elif [ -f ~/.jira-url ]; then + jira_url=$(cat ~/.jira-url) + elif [[ "x$JIRA_URL" != "x" ]]; then + jira_url=$JIRA_URL else - jira_url=$(cat .jira-url); - if [ -z "$1" ]; then - echo "Opening new issue"; - `open $jira_url/secure/CreateIssue!default.jspa`; + echo "JIRA url is not specified anywhere." + return 0 + fi + + if [ -z "$1" ]; then + echo "Opening new issue" + `open $jira_url/secure/CreateIssue!default.jspa` + else + echo "Opening issue #$1" + if [[ "x$JIRA_RAPID_BOARD" = "yes" ]]; then + `open $jira_url/issues/$1` else - echo "Opening issue #$1"; - `open $jira_url/browse/$1`; + `open $jira_url/browse/$1` fi fi } From 80f151e56d7d6d30858acf581141fa84bfd79bc7 Mon Sep 17 00:00:00 2001 From: Brian Hartvigsen Date: Sun, 2 Dec 2012 23:06:11 -0700 Subject: [PATCH 413/421] urltools for Everyone MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #1445 is great, if you use node.  For those that don't this should mean we can find a reasonable fallback. Users can force urltools to use a specific system by setting `URLTOOLS_METHOD` to one of: * `node` * `python` * `ruby` * `php` * `perl` Note that you can't (currently) choose which `perl` sublibrary to use, it will use either `URI::Encode`, `URI::Escape`, or regular expressions in that order of preference. --- plugins/urltools/urltools.plugin.zsh | 31 ++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/plugins/urltools/urltools.plugin.zsh b/plugins/urltools/urltools.plugin.zsh index 3de74ae3d..4ddfff8ce 100644 --- a/plugins/urltools/urltools.plugin.zsh +++ b/plugins/urltools/urltools.plugin.zsh @@ -4,6 +4,33 @@ # Taken from: # http://ruslanspivak.com/2010/06/02/urlencode-and-urldecode-from-a-command-line/ -alias urlencode='node -e "console.log(encodeURIComponent(process.argv[1]))"' +if [[ $(whence $URLTOOLS_METHOD) = "" ]]; then + URLTOOLS_METHOD="" +fi -alias urldecode='node -e "console.log(decodeURIComponent(process.argv[1]))"' +if [[ $(whence node) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xnode" ) ]]; then + alias urlencode='node -e "console.log(encodeURIComponent(process.argv[1]))"' + alias urldecode='node -e "console.log(decodeURIComponent(process.argv[1]))"' +elif [[ $(whence python) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xpython" ) ]]; then + alias urlencode='python -c "import sys, urllib as ul; print ul.quote_plus(sys.argv[1])"' + alias urldecode='python -c "import sys, urllib as ul; print ul.unquote_plus(sys.argv[1])"' +elif [[ $(whence ruby) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xruby" ) ]]; then + alias urlencode='ruby -r cgi -e "puts CGI.escape(ARGV[0])"' + alias urldecode='ruby -r cgi -e "puts CGI.unescape(ARGV[0])"' +elif [[ $(whence php) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xphp" ) ]]; then + alias urlencode='php -r "echo rawurlencode(\$argv[1]); echo \"\n\";"' + alias urldecode='php -r "echo rawurldecode(\$argv[1]); echo \"\\n\";"' +elif [[ $(whence perl) != "" && ( "x$URLTOOLS_METHOD" = "x" || "x$URLTOOLS_METHOD" = "xperl" ) ]]; then + if perl -MURI::Encode -e 1&> /dev/null; then + alias urlencode='perl -MURI::Encode -ep "uri_encode($ARGV[0]);"' + alias urldecode='perl -MURI::Encode -ep "uri_decode($ARGV[0]);"' + elif perl -MURI::Escape -e 1 &> /dev/null; then + alias urlencode='perl -MURI::Escape -ep "uri_escape($ARGV[0]);"' + alias urldecode='perl -MURI::Escape -ep "uri_unescape($ARGV[0]);"' + else + alias urlencode="perl -e '\$new=\$ARGV[0]; \$new =~ s/([^A-Za-z0-9])/sprintf(\"%%%02X\", ord(\$1))/seg; print \"\$new\n\";'" + alias urldecode="perl -e '\$new=\$ARGV[0]; \$new =~ s/\%([A-Fa-f0-9]{2})/pack(\"C\", hex(\$1))/seg; print \"\$new\n\";'" + fi +fi + +unset URLTOOLS_METHOD \ No newline at end of file From e096e4041f76c70a621df2b02bb67bed88e6bcee Mon Sep 17 00:00:00 2001 From: Andrei Gorgan Date: Mon, 3 Dec 2012 12:03:43 +0200 Subject: [PATCH 414/421] Print last exit status in mortalscumbag prompt --- themes/mortalscumbag.zsh-theme | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/themes/mortalscumbag.zsh-theme b/themes/mortalscumbag.zsh-theme index 7e25b149f..ae3f1c9fc 100644 --- a/themes/mortalscumbag.zsh-theme +++ b/themes/mortalscumbag.zsh-theme @@ -46,7 +46,8 @@ function ssh_connection() { fi } -PROMPT=$'\n$(ssh_connection)%{$fg_bold[green]%}%n@%m%{$reset_color%}$(my_git_prompt) : %~\n%# ' +local ret_status="%(?:%{$fg_bold[green]%}:%{$fg_bold[red]%})%?%{$reset_color%}" +PROMPT=$'\n$(ssh_connection)%{$fg_bold[cyan]%}%n@%m%{$reset_color%}$(my_git_prompt) : %~\n[${ret_status}] %# ' ZSH_THEME_PROMPT_RETURNCODE_PREFIX="%{$fg_bold[red]%}" ZSH_THEME_GIT_PROMPT_PREFIX=" $fg[white]‹ %{$fg_bold[yellow]%}" From 98bd19a036c0c702591f456e1081e420ffb17ce0 Mon Sep 17 00:00:00 2001 From: Denis Cornehl Date: Mon, 3 Dec 2012 11:06:31 +0100 Subject: [PATCH 415/421] plugin last-working-dir: create cache-directory if it doesn't exist --- plugins/last-working-dir/last-working-dir.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/last-working-dir/last-working-dir.plugin.zsh b/plugins/last-working-dir/last-working-dir.plugin.zsh index 5b3121d11..190bc279d 100644 --- a/plugins/last-working-dir/last-working-dir.plugin.zsh +++ b/plugins/last-working-dir/last-working-dir.plugin.zsh @@ -4,6 +4,7 @@ # Flag indicating if we've previously jumped to last directory. typeset -g ZSH_LAST_WORKING_DIRECTORY +mkdir -p "$ZSH/cache" local cache_file="$ZSH/cache/last-working-dir" # Updates the last directory once directory is changed. From 8925cff334f9009a0f27d38922731bbcd82c42cb Mon Sep 17 00:00:00 2001 From: Andrei Gorgan Date: Mon, 3 Dec 2012 12:29:45 +0200 Subject: [PATCH 416/421] Fix prompt color: Change it back to green --- themes/mortalscumbag.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/mortalscumbag.zsh-theme b/themes/mortalscumbag.zsh-theme index ae3f1c9fc..5dbf2e4f6 100644 --- a/themes/mortalscumbag.zsh-theme +++ b/themes/mortalscumbag.zsh-theme @@ -47,7 +47,7 @@ function ssh_connection() { } local ret_status="%(?:%{$fg_bold[green]%}:%{$fg_bold[red]%})%?%{$reset_color%}" -PROMPT=$'\n$(ssh_connection)%{$fg_bold[cyan]%}%n@%m%{$reset_color%}$(my_git_prompt) : %~\n[${ret_status}] %# ' +PROMPT=$'\n$(ssh_connection)%{$fg_bold[green]%}%n@%m%{$reset_color%}$(my_git_prompt) : %~\n[${ret_status}] %# ' ZSH_THEME_PROMPT_RETURNCODE_PREFIX="%{$fg_bold[red]%}" ZSH_THEME_GIT_PROMPT_PREFIX=" $fg[white]‹ %{$fg_bold[yellow]%}" From f7fc164377f3f5243c9aade09e4d17efc60ffc47 Mon Sep 17 00:00:00 2001 From: Timothy Andrew Date: Wed, 5 Dec 2012 08:21:42 +0530 Subject: [PATCH 417/421] Added a `migrate` alias. It migrates the DB and prepares the test DB. --- plugins/rails/rails.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/rails/rails.plugin.zsh b/plugins/rails/rails.plugin.zsh index cd232a6ae..d3849b4f4 100644 --- a/plugins/rails/rails.plugin.zsh +++ b/plugins/rails/rails.plugin.zsh @@ -6,6 +6,7 @@ alias sr='ruby script/runner' alias ssp='ruby script/spec' alias rdbm='rake db:migrate' alias rdbtp='rake db:test:prepare' +alias migrate='rake db:migrate && rake db:test:prepare' alias sc='ruby script/console' alias sd='ruby script/server --debugger' alias devlog='tail -f log/development.log' From 6c5e63022d9f8c0c9a930b0110da3a4b8fee6cf0 Mon Sep 17 00:00:00 2001 From: Larry Lv Date: Wed, 5 Dec 2012 16:13:53 +0800 Subject: [PATCH 418/421] Unset `config_file` variable in oh-my-zsh.sh `config_file` variable will mess up with `cd` auto-complete command. eg. I have a local dir named `Code`, and when I type `cd co`, config_file will show up, and doesn't make any sense... --- oh-my-zsh.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index 4a5b175d5..689a79fef 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -56,6 +56,7 @@ done for config_file ($ZSH_CUSTOM/*.zsh(N)); do source $config_file done +unset config_file # Load the theme if [ "$ZSH_THEME" = "random" ] From 1b91c84d2b49f00b64e5b6048678c5d4f26cd971 Mon Sep 17 00:00:00 2001 From: Benjamin Teuber Date: Thu, 6 Dec 2012 14:09:09 +0100 Subject: [PATCH 419/421] use feature names instead of failing branch names in "git flow feature" --- plugins/git-flow/git-flow.plugin.zsh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/git-flow/git-flow.plugin.zsh b/plugins/git-flow/git-flow.plugin.zsh index 4afb85b8b..ec21019e6 100644 --- a/plugins/git-flow/git-flow.plugin.zsh +++ b/plugins/git-flow/git-flow.plugin.zsh @@ -237,13 +237,13 @@ __git-flow-feature () (diff) _arguments \ - ':branch:__git_branch_names'\ + ':branch:__git_flow_feature_list'\ ;; (rebase) _arguments \ -i'[Do an interactive rebase]' \ - ':branch:__git_branch_names' + ':branch:__git_flow_feature_list' ;; (checkout) @@ -254,7 +254,7 @@ __git-flow-feature () (pull) _arguments \ ':remote:__git_remotes'\ - ':branch:__git_branch_names' + ':branch:__git_flow_feature_list' ;; *) @@ -334,4 +334,4 @@ __git_command_successful () { return 0 } -zstyle ':completion:*:*:git:*' user-commands flow:'description for foo' \ No newline at end of file +zstyle ':completion:*:*:git:*' user-commands flow:'description for foo' From f3fea45dd2c8208cd951e813b82453d38aea3539 Mon Sep 17 00:00:00 2001 From: Weston Platter Date: Thu, 6 Dec 2012 18:28:41 -0600 Subject: [PATCH 420/421] fixes #1474 add zeus to bundle exec listx --- plugins/bundler/bundler.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh index 2305c4979..f9843696b 100644 --- a/plugins/bundler/bundler.plugin.zsh +++ b/plugins/bundler/bundler.plugin.zsh @@ -6,7 +6,7 @@ alias bu="bundle update" # The following is based on https://github.com/gma/bundler-exec -bundled_commands=(annotate cap capify cucumber foreman guard middleman nanoc rackup rainbows rake rspec ruby shotgun spec spork thin thor unicorn unicorn_rails puma) +bundled_commands=(annotate cap capify cucumber foreman guard middleman nanoc rackup rainbows rake rspec ruby shotgun spec spork thin thor unicorn unicorn_rails puma zeus) ## Functions From b9a989fea5f0462b3ced71a33abd3cec3e7809cb Mon Sep 17 00:00:00 2001 From: MAD Date: Fri, 7 Dec 2012 10:07:45 +0100 Subject: [PATCH 421/421] Add Stash toogle to display if there's some stash or not in `git_prompt_status` --- lib/git.zsh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/git.zsh b/lib/git.zsh index 95dd3dd43..b1dfce357 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -85,6 +85,9 @@ git_prompt_status() { elif $(echo "$INDEX" | grep '^AD ' &> /dev/null); then STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS" fi + if $(git rev-parse --verify refs/stash >/dev/null 2>&1); then + STATUS="$ZSH_THEME_GIT_PROMPT_STASHED$STATUS" + fi if $(echo "$INDEX" | grep '^UU ' &> /dev/null); then STATUS="$ZSH_THEME_GIT_PROMPT_UNMERGED$STATUS" fi @@ -102,7 +105,7 @@ git_prompt_status() { #compare the provided version of git to the version installed and on path #prints 1 if input version <= installed version -#prints -1 otherwise +#prints -1 otherwise function git_compare_version() { local INPUT_GIT_VERSION=$1; local INSTALLED_GIT_VERSION