From 8aec32b48bb88e980150a43586e7e02b9156e165 Mon Sep 17 00:00:00 2001 From: Allan Caffee Date: Mon, 7 Feb 2011 15:09:06 -0500 Subject: [PATCH 001/349] 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 2d5412e99be6d9fab50169ad0cf290e022fc6e9b Mon Sep 17 00:00:00 2001 From: James Smith Date: Sat, 19 Mar 2011 17:50:24 -0700 Subject: [PATCH 002/349] 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 003/349] 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 004/349] 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 3b8f65477e989d534d2ce19aaec65ab2c1179aa3 Mon Sep 17 00:00:00 2001 From: Reza Date: Sat, 13 Nov 2010 09:08:24 -0800 Subject: [PATCH 005/349] 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 25adbe81a55664335e0166c202b8d8424a67c8aa Mon Sep 17 00:00:00 2001 From: Andrew Hodges Date: Sun, 29 May 2011 09:32:44 -0400 Subject: [PATCH 006/349] 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 f0451195f63b3607461bda1570c5fb2a4e429b3e Mon Sep 17 00:00:00 2001 From: Maxim Filatov Date: Sun, 5 Jun 2011 16:57:21 -0700 Subject: [PATCH 007/349] 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 008/349] 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 6c95c4b68a97b41682084834b6e30822b6f06ab9 Mon Sep 17 00:00:00 2001 From: Ryan Doenges Date: Sun, 12 Jun 2011 13:57:00 -0700 Subject: [PATCH 009/349] use /home/ryan/d/.oh-my-zsh instead of ~/.oh-my-zsh for cache --- lib/completion.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/completion.zsh b/lib/completion.zsh index fdd0a8536..8c0e7701b 100644 --- a/lib/completion.zsh +++ b/lib/completion.zsh @@ -44,7 +44,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 \ From c5a01fe422c0b511be5972735b1dd9ac22a82dff Mon Sep 17 00:00:00 2001 From: meh Date: Wed, 15 Jun 2011 16:15:52 +0200 Subject: [PATCH 010/349] 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 b727e337adb0264b3d03ffdd0a4af3ba9802572a Mon Sep 17 00:00:00 2001 From: Sagie Maoz Date: Mon, 27 Jun 2011 01:37:27 -0700 Subject: [PATCH 011/349] 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 1d17502aed5fc04cd1ca3eb35757b5ba2822414a Mon Sep 17 00:00:00 2001 From: meh Date: Sat, 16 Jul 2011 07:18:14 +0200 Subject: [PATCH 012/349] 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 3bc32eef6dbad942fd137a7c7d04050d9b87fed4 Mon Sep 17 00:00:00 2001 From: Adolfo Benedetti Date: Tue, 2 Aug 2011 09:42:23 +0200 Subject: [PATCH 013/349] 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 0061dda057bb3b8b67f2bf06b374ab0b786e80fe Mon Sep 17 00:00:00 2001 From: artemk Date: Sat, 6 Aug 2011 16:46:37 +0300 Subject: [PATCH 014/349] Add bundle open alias, which open gem using EDITOR var --- 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 f005700ff..af5bf2b3b 100644 --- a/plugins/bundler/bundler.plugin.zsh +++ b/plugins/bundler/bundler.plugin.zsh @@ -3,6 +3,7 @@ alias bi="bundle install" alias bl="bundle list" alias bu="bundle update" alias bp="bundle package" +alias bo="bundle open" # The following is based on https://github.com/gma/bundler-exec From efa5593f88e552fbd3fde850b283fa43d36f481c Mon Sep 17 00:00:00 2001 From: Reza Date: Tue, 16 Aug 2011 13:54:47 -0700 Subject: [PATCH 015/349] 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 878d569c6845198005dacc4e9a56b6610e46ffd9 Mon Sep 17 00:00:00 2001 From: Aslam Najeebdeen Date: Mon, 4 Jul 2011 15:37:11 +0530 Subject: [PATCH 016/349] 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 017/349] 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 914e1b52583e09298f10fab7a301711bd9613ac6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20M-B?= Date: Sat, 5 Nov 2011 00:34:15 +0100 Subject: [PATCH 018/349] Adding custom theme --- themes/essembeh.zsh-theme | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 themes/essembeh.zsh-theme diff --git a/themes/essembeh.zsh-theme b/themes/essembeh.zsh-theme new file mode 100644 index 000000000..f9cd6c241 --- /dev/null +++ b/themes/essembeh.zsh-theme @@ -0,0 +1,29 @@ +# Theme with full path names and hostname +# Handy if you work on different servers all the time; + + +local return_code="%(?..%{$fg_bold[red]%}%? ↵%{$reset_color%})" + +function my_git_prompt_info() { + ref=$(git symbolic-ref HEAD 2> /dev/null) || return + GIT_STATUS=$(git_prompt_status) + [[ -n $GIT_STATUS ]] && GIT_STATUS=" $GIT_STATUS" + echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$GIT_STATUS$ZSH_THEME_GIT_PROMPT_SUFFIX" +} + +LOGIN_COLOR=green +test -n "$SSH_CONNECTION" && LOGIN_COLOR=red +test $UID -eq 0 && LOGIN_COLOR=pink + +PROMPT='%{$fg[$LOGIN_COLOR]%}%B%n@%M:%{$fg[yellow]%}%B%~%{$reset_color%}%b $(my_git_prompt_info)%(!.#.$) ' +RPS1="${return_code}" + +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[yellow]%}(" +ZSH_THEME_GIT_PROMPT_SUFFIX=") %{$reset_color%}" +ZSH_THEME_GIT_PROMPT_UNTRACKED="%%" +ZSH_THEME_GIT_PROMPT_ADDED="+" +ZSH_THEME_GIT_PROMPT_MODIFIED="*" +ZSH_THEME_GIT_PROMPT_RENAMED="~" +ZSH_THEME_GIT_PROMPT_DELETED="!" +ZSH_THEME_GIT_PROMPT_UNMERGED="?" + From c4434d2ddedd62737ad3f99111ef47d722e2b74e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20M-B?= Date: Sat, 5 Nov 2011 00:34:37 +0100 Subject: [PATCH 019/349] Update completion for SSH Add all hosts found in ~/.ssh/config. Tip found on: http://www.nerux.org/wiki/OpenSSH#coupler_avec_zsh_completion --- lib/completion.zsh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/completion.zsh b/lib/completion.zsh index b3cc91822..dab9bb1d3 100644 --- a/lib/completion.zsh +++ b/lib/completion.zsh @@ -33,14 +33,17 @@ cdpath=(.) # use /etc/hosts and known_hosts for hostname completion [ -r ~/.ssh/known_hosts ] && _ssh_hosts=(${${${${(f)"$(<$HOME/.ssh/known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _ssh_hosts=() +[ -r ~/.ssh/config ] && _ssh_config=($(cat ~/.ssh/config | sed -ne 's/Host[=\t ]//p')) || _ssh_config=() [ -r /etc/hosts ] && : ${(A)_etc_hosts:=${(s: :)${(ps:\t:)${${(f)~~"$( Date: Wed, 16 Nov 2011 19:44:02 +0100 Subject: [PATCH 020/349] Update theme Use different colors in case of root or ssh connection for prompt. --- themes/essembeh.zsh-theme | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/themes/essembeh.zsh-theme b/themes/essembeh.zsh-theme index f9cd6c241..8c98ea1ed 100644 --- a/themes/essembeh.zsh-theme +++ b/themes/essembeh.zsh-theme @@ -11,14 +11,16 @@ function my_git_prompt_info() { echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$GIT_STATUS$ZSH_THEME_GIT_PROMPT_SUFFIX" } -LOGIN_COLOR=green -test -n "$SSH_CONNECTION" && LOGIN_COLOR=red -test $UID -eq 0 && LOGIN_COLOR=pink - -PROMPT='%{$fg[$LOGIN_COLOR]%}%B%n@%M:%{$fg[yellow]%}%B%~%{$reset_color%}%b $(my_git_prompt_info)%(!.#.$) ' +# Colored prompt +ZSH_THEME_COLOR_USER="green" +ZSH_THEME_COLOR_HOST="green" +ZSH_THEME_COLOR_PWD="yellow" +test -n "$SSH_CONNECTION" && ZSH_THEME_COLOR_USER="red" && ZSH_THEME_COLOR_HOST="red" +test `id -u` = 0 && ZSH_THEME_COLOR_USER="magenta" && ZSH_THEME_COLOR_HOST="magenta" +PROMPT='%{$fg_bold[$ZSH_THEME_COLOR_USER]%}%n@%{$fg_bold[$ZSH_THEME_COLOR_HOST]%}%M%{$reset_color%}:%{$fg_bold[$ZSH_THEME_COLOR_PWD]%}%~%{$reset_color%} $(my_git_prompt_info)%(!.#.$) ' RPS1="${return_code}" -ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[yellow]%}(" +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[cyan]%}(" ZSH_THEME_GIT_PROMPT_SUFFIX=") %{$reset_color%}" ZSH_THEME_GIT_PROMPT_UNTRACKED="%%" ZSH_THEME_GIT_PROMPT_ADDED="+" From 20b025ba2cd419a99630458052bfa9a9e8c99e91 Mon Sep 17 00:00:00 2001 From: Ian Yang Date: Fri, 2 Dec 2011 18:32:15 +0800 Subject: [PATCH 021/349] tmuxinator completion A utility to automate tmux session creation https://github.com/aziz/tmuxinator --- plugins/tmuxinator/_tmuxinator | 36 ++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 plugins/tmuxinator/_tmuxinator diff --git a/plugins/tmuxinator/_tmuxinator b/plugins/tmuxinator/_tmuxinator new file mode 100644 index 000000000..f0ff304dd --- /dev/null +++ b/plugins/tmuxinator/_tmuxinator @@ -0,0 +1,36 @@ +#compdef tmuxinator +#autoload + +local curcontext="$curcontext" state line ret=1 +local -a _configs + +_arguments -C \ + '1: :->cmds' \ + '2:: :->args' && ret=0 + +case $state in + cmds) + _values "tmuxinator command" \ + "start[start a tmux session using project's tmuxinator config]" \ + "open[create a new project file and open it in your editor]" \ + "copy[copy source_project project file to a new project called new_project]" \ + "delete[deletes the project called project_name]" \ + "implode[deletes all existing projects!]" \ + "list[list all existing projects]" \ + "doctor[look for problems in your configuration]" \ + "help[shows this help document]" \ + "version[shows tmuxinator version number]" + ret=0 + ;; + args) + case $line[1] in + start|open|copy|delete) + _configs=(`tmuxinator list | sed -n 's/^[ \t]\+//p'`) + _values 'configs' $_configs + ret=0 + ;; + esac + ;; +esac + +return ret \ No newline at end of file From 30890b9eb9e1b6fc4b553d94a97424049bd6003e Mon Sep 17 00:00:00 2001 From: Jason Gill Date: Wed, 16 Nov 2011 15:51:30 -0500 Subject: [PATCH 022/349] Fixes and improves the behavior of the tm command --- plugins/textmate/textmate.plugin.zsh | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/plugins/textmate/textmate.plugin.zsh b/plugins/textmate/textmate.plugin.zsh index a11a097f5..773c4f8d2 100644 --- a/plugins/textmate/textmate.plugin.zsh +++ b/plugins/textmate/textmate.plugin.zsh @@ -6,7 +6,16 @@ alias etts='mate app config lib db public script spec test vendor/plugins vendor # Edit Ruby app in TextMate alias mr='mate CHANGELOG app config db lib public script spec test' +# If the tm command is called without an argument, open TextMate in the current directory +# If tm is passed a directory, cd to it and open it in TextMate +# If tm is passed a file, open it in TextMate function tm() { - cd $1 - mate $1 + if [[ -z $1 ]]; then + mate . + else + mate $1 + if [[ -d $1 ]]; then + cd $1 + fi + fi } From 70e51186ec3f67b1126339c7570bd9f6549f0408 Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Fri, 16 Dec 2011 14:01:59 +0100 Subject: [PATCH 023/349] Only `setopt correct`, not "correct_all". Using the correct_all option is too distracting, and needs a lot of `nocorrect` aliases to work around this. Using only "correct" to correct the command itself is more friendly. --- lib/correction.zsh | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/lib/correction.zsh b/lib/correction.zsh index fc60dcdbd..176ec16d5 100644 --- a/lib/correction.zsh +++ b/lib/correction.zsh @@ -1,10 +1,2 @@ -setopt correct_all - -alias man='nocorrect man' -alias mv='nocorrect mv' -alias mysql='nocorrect mysql' -alias mkdir='nocorrect mkdir' -alias gist='nocorrect gist' -alias heroku='nocorrect heroku' -alias ebuild='nocorrect ebuild' -alias hpodder='nocorrect hpodder' +# correct commands, but not any arguments (correct_all would do that) +setopt correct From 4a813cf1a2ccddc58059271065a8abc8f9079019 Mon Sep 17 00:00:00 2001 From: Ryan Schmukler Date: Tue, 27 Dec 2011 21:02:31 -0600 Subject: [PATCH 024/349] 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: Sat, 31 Dec 2011 12:13:31 -0500 Subject: [PATCH 025/349] 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 730e0296640fed91b6db83745abf920428aa5abf Mon Sep 17 00:00:00 2001 From: Jordan MacDonald Date: Sat, 7 Jan 2012 15:36:58 -0500 Subject: [PATCH 026/349] Added alias 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 c1b382b2c..00667a215 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -3,6 +3,8 @@ alias g='git' compdef g=git alias gst='git status' compdef _git gst=git-status +alias gd='git diff' +compdef _git diff=git-diff alias gl='git pull' compdef _git gl=git-pull alias gup='git fetch && git rebase' From 6040d72e2a438529f5850b68d1a87d54a3c96f45 Mon Sep 17 00:00:00 2001 From: "Thomas (nezza-_-) Roth" Date: Mon, 16 Jan 2012 12:20:06 +0100 Subject: [PATCH 027/349] Fix the behaviour of the sprunge plugin so that is preserves whitespaces and tabs. --- plugins/sprunge/sprunge.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/sprunge/sprunge.plugin.zsh b/plugins/sprunge/sprunge.plugin.zsh index 9f9432ac8..e542b437f 100644 --- a/plugins/sprunge/sprunge.plugin.zsh +++ b/plugins/sprunge/sprunge.plugin.zsh @@ -57,7 +57,7 @@ sprunge() { fi else echo Using input from a pipe or STDIN redirection... >&2 - while read -r line ; do + while IFS= read -r line ; do echo $line done | curl -F 'sprunge=<-' http://sprunge.us fi From 54a30c470145be2d7aa055bc7a05815ce051d540 Mon Sep 17 00:00:00 2001 From: "Thomas (nezza-_-) Roth" Date: Mon, 16 Jan 2012 13:26:08 +0100 Subject: [PATCH 028/349] sprunge-plugin: Remove the unnecessary while loop. --- plugins/sprunge/sprunge.plugin.zsh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/plugins/sprunge/sprunge.plugin.zsh b/plugins/sprunge/sprunge.plugin.zsh index e542b437f..fcc9004f8 100644 --- a/plugins/sprunge/sprunge.plugin.zsh +++ b/plugins/sprunge/sprunge.plugin.zsh @@ -57,8 +57,6 @@ sprunge() { fi else echo Using input from a pipe or STDIN redirection... >&2 - while IFS= read -r line ; do - echo $line - done | curl -F 'sprunge=<-' http://sprunge.us + curl -F 'sprunge=<-' http://sprunge.us fi } From 49d44adb09f417fac24ea8e664b12f6546f22e9d Mon Sep 17 00:00:00 2001 From: Jordan MacDonald Date: Fri, 20 Jan 2012 13:07:03 -0500 Subject: [PATCH 029/349] Fixed compdef alias to use 'gd' as shortcut. --- 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 00667a215..a42148fd9 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -4,7 +4,7 @@ compdef g=git alias gst='git status' compdef _git gst=git-status alias gd='git diff' -compdef _git diff=git-diff +compdef _git gd=git-diff alias gl='git pull' compdef _git gl=git-pull alias gup='git fetch && git rebase' From 52733cb3bb0b1c85230c5c69e6c7231fb41c67fe Mon Sep 17 00:00:00 2001 From: Tadaya Tsuyukubo Date: Thu, 26 Jan 2012 15:20:08 -0800 Subject: [PATCH 030/349] 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 8f89d4d5a5d584bae288d8111d83a6489a1369dc Mon Sep 17 00:00:00 2001 From: Darren Clark Date: Fri, 27 Jan 2012 01:20:06 -0700 Subject: [PATCH 031/349] 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 72aeaa9d9ee55fbfe15b371c0bf127ab3948a965 Mon Sep 17 00:00:00 2001 From: Hao Hong Date: Mon, 6 Feb 2012 15:51:31 +0800 Subject: [PATCH 032/349] added "publish" and "track" command completion for git-flow plugin --- plugins/git-flow/git-flow.plugin.zsh | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/plugins/git-flow/git-flow.plugin.zsh b/plugins/git-flow/git-flow.plugin.zsh index 270bcbe38..b94f1a81f 100644 --- a/plugins/git-flow/git-flow.plugin.zsh +++ b/plugins/git-flow/git-flow.plugin.zsh @@ -88,6 +88,8 @@ __git-flow-release () 'start:Start a new release branch.' 'finish:Finish a release branch.' 'list:List all your release branches. (Alias to `git flow release`)' + 'publish: public' + 'track: track' ) _describe -t commands 'git flow release' subcommands _arguments \ @@ -113,6 +115,16 @@ __git-flow-release () ':version:__git_flow_version_list' ;; + (publish) + _arguments \ + ':version:__git_flow_version_list'\ + ;; + + (track) + _arguments \ + ':version:__git_flow_version_list'\ + ;; + *) _arguments \ -v'[Verbose (more) output]' From fbf5b0ecb6b551b7d4ee2f1e85780c9fdbe052a0 Mon Sep 17 00:00:00 2001 From: Brent Faulkner Date: Mon, 6 Feb 2012 21:50:17 -0500 Subject: [PATCH 033/349] add default rbenv_prompt_info implementation to close #878 --- lib/rbenv.zsh | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 lib/rbenv.zsh diff --git a/lib/rbenv.zsh b/lib/rbenv.zsh new file mode 100644 index 000000000..a8b6c323c --- /dev/null +++ b/lib/rbenv.zsh @@ -0,0 +1,2 @@ +# using the rbenv plugin will override this with a real implementation +function rbenv_prompt_info() {} From b62a3e89602bca23b794dd1e808d92a89880ad3f Mon Sep 17 00:00:00 2001 From: Brent Faulkner Date: Sun, 12 Feb 2012 12:27:06 -0500 Subject: [PATCH 034/349] handle case where ~/.rvm/bin/rvm-prompt is not in path, so "which" can't find it --- themes/crunch.zsh-theme | 2 +- themes/dallas.zsh-theme | 2 +- themes/macovsky-ruby.zsh-theme | 2 +- themes/macovsky.zsh-theme | 2 +- themes/superjarin.zsh-theme | 2 +- themes/zhann.zsh-theme | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/themes/crunch.zsh-theme b/themes/crunch.zsh-theme index b2759a1b0..2fc066381 100644 --- a/themes/crunch.zsh-theme +++ b/themes/crunch.zsh-theme @@ -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%}" -if which rvm-prompt &> /dev/null; then +if [ -e ~/.rvm/bin/rvm-prompt ]; 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 diff --git a/themes/dallas.zsh-theme b/themes/dallas.zsh-theme index e9b4f852a..02285df52 100644 --- a/themes/dallas.zsh-theme +++ b/themes/dallas.zsh-theme @@ -3,7 +3,7 @@ # 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] -if which rvm-prompt &> /dev/null; then +if [ -e ~/.rvm/bin/rvm-prompt ]; 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 diff --git a/themes/macovsky-ruby.zsh-theme b/themes/macovsky-ruby.zsh-theme index 045376761..69d80d588 100644 --- a/themes/macovsky-ruby.zsh-theme +++ b/themes/macovsky-ruby.zsh-theme @@ -1,7 +1,7 @@ # ZSH Theme - Preview: http://gyazo.com/8becc8a7ed5ab54a0262a470555c3eed.png local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})" -if which rvm-prompt &> /dev/null; then +if [ -e ~/.rvm/bin/rvm-prompt ]; 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 diff --git a/themes/macovsky.zsh-theme b/themes/macovsky.zsh-theme index b6978b929..2e6dce42d 100644 --- a/themes/macovsky.zsh-theme +++ b/themes/macovsky.zsh-theme @@ -1,7 +1,7 @@ # ZSH Theme - Preview: http://gyazo.com/8becc8a7ed5ab54a0262a470555c3eed.png local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})" -if which rvm-prompt &> /dev/null; then +if [ -e ~/.rvm/bin/rvm-prompt ]; 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 diff --git a/themes/superjarin.zsh-theme b/themes/superjarin.zsh-theme index 0be816de0..86955a560 100644 --- a/themes/superjarin.zsh-theme +++ b/themes/superjarin.zsh-theme @@ -1,5 +1,5 @@ # Grab the current version of ruby in use (via RVM): [ruby-1.8.7] -if which rvm-prompt &> /dev/null; then +if [ -e ~/.rvm/bin/rvm-prompt ]; 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 diff --git a/themes/zhann.zsh-theme b/themes/zhann.zsh-theme index 574e0cec3..5c49fe79b 100644 --- a/themes/zhann.zsh-theme +++ b/themes/zhann.zsh-theme @@ -1,6 +1,6 @@ PROMPT='%{$fg_bold[green]%}%p %{$fg[cyan]%}%c%{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}' -if which rvm-prompt &> /dev/null; then +if [ -e ~/.rvm/bin/rvm-prompt ]; then RPROMPT='%{$reset_color%} %{$fg[red]%}$(~/.rvm/bin/rvm-prompt i v g) %{$reset_color%}' else if which rbenv &> /dev/null; then From 8f8767a566b24ba62cfa73a7aa4b12a95a1af285 Mon Sep 17 00:00:00 2001 From: Douglas Creager Date: Fri, 17 Feb 2012 16:56:09 -0500 Subject: [PATCH 035/349] blinks theme works with light and dark Solarized The blinks theme now looks good if you're using the light version of the Solarized color scheme, too. It still defaults to the dark version, so it should work as before if you don't override things. If you're using the light version, just set SOLARIZED_THEME to "light" before sourcing oh-my-zsh. --- themes/blinks.zsh-theme | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/themes/blinks.zsh-theme b/themes/blinks.zsh-theme index 3db7012f4..ddb32f7c3 100644 --- a/themes/blinks.zsh-theme +++ b/themes/blinks.zsh-theme @@ -8,13 +8,23 @@ function _prompt_char() { fi } +# This theme works with both the "dark" and "light" variants of the +# Solarized color schema. Set the SOLARIZED_THEME variable to one of +# these two values to choose. If you don't specify, we'll assume you're +# using the "dark" variant. + +case ${SOLARIZED_THEME:-dark} in + light) bkg=white;; + *) bkg=black;; +esac + ZSH_THEME_GIT_PROMPT_PREFIX=" [%{%B%F{blue}%}" -ZSH_THEME_GIT_PROMPT_SUFFIX="%{%f%k%b%K{black}%B%F{green}%}]" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{%f%k%b%K{${bkg}}%B%F{green}%}]" ZSH_THEME_GIT_PROMPT_DIRTY=" %{%F{red}%}*%{%f%k%b%}" ZSH_THEME_GIT_PROMPT_CLEAN="" PROMPT='%{%f%k%b%} -%{%K{black}%B%F{green}%}%n%{%B%F{blue}%}@%{%B%F{cyan}%}%m%{%B%F{green}%} %{%b%F{yellow}%K{black}%}%~%{%B%F{green}%}$(git_prompt_info)%E%{%f%k%b%} -%{%K{black}%}$(_prompt_char)%{%K{black}%} %#%{%f%k%b%} ' +%{%K{${bkg}}%B%F{green}%}%n%{%B%F{blue}%}@%{%B%F{cyan}%}%m%{%B%F{green}%} %{%b%F{yellow}%K{${bkg}}%}%~%{%B%F{green}%}$(git_prompt_info)%E%{%f%k%b%} +%{%K{${bkg}}%}$(_prompt_char)%{%K{${bkg}}%} %#%{%f%k%b%} ' RPROMPT='!%{%B%F{cyan}%}%!%{%f%k%b%}' From 4e0b5be145cb0f4eda769906e9e72e31aec7c236 Mon Sep 17 00:00:00 2001 From: Andrew Ash Date: Thu, 23 Feb 2012 23:12:07 -0800 Subject: [PATCH 036/349] Fix spurious correction with sudo vim user@host:~ $ sudo vim /etc/rc.conf zsh: correct 'vim' to '.vim' [nyae]? http://www.zsh.org/mla/users/2012/msg00028.html --- lib/correction.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/correction.zsh b/lib/correction.zsh index fc60dcdbd..53c477d46 100644 --- a/lib/correction.zsh +++ b/lib/correction.zsh @@ -8,3 +8,4 @@ alias gist='nocorrect gist' alias heroku='nocorrect heroku' alias ebuild='nocorrect ebuild' alias hpodder='nocorrect hpodder' +alias sudo='nocorrect sudo' \ No newline at end of file From 09c5996cd0528eb03a93dd464f3cbd755eafd624 Mon Sep 17 00:00:00 2001 From: Henry Yan Date: Mon, 5 Mar 2012 21:36:50 +0800 Subject: [PATCH 037/349] 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 038/349] 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 039/349] =?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 040/349] 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 814ecfc60daffc1eac250d41643d05fb1f43bd4c Mon Sep 17 00:00:00 2001 From: Henry Yan Date: Wed, 7 Mar 2012 23:52:51 +0800 Subject: [PATCH 041/349] 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 605ad8725b06cc15f8523404f59060b6a71bb7a2 Mon Sep 17 00:00:00 2001 From: mapc Date: Tue, 20 Mar 2012 02:25:21 +0100 Subject: [PATCH 042/349] 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 e9feccf6a94f9f5238ff0b3501f62575d14ae148 Mon Sep 17 00:00:00 2001 From: Henry Yan Date: Thu, 22 Mar 2012 09:33:55 +0800 Subject: [PATCH 043/349] 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 a75aabad1e455dcbf62891ba7370f6c0ea1108b2 Mon Sep 17 00:00:00 2001 From: Corey Woodcox Date: Wed, 9 Nov 2011 14:43:32 -0700 Subject: [PATCH 044/349] add the half-life theme based on steeef and lambda --- themes/half-life.zsh-theme | 99 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 themes/half-life.zsh-theme diff --git a/themes/half-life.zsh-theme b/themes/half-life.zsh-theme new file mode 100644 index 000000000..699880027 --- /dev/null +++ b/themes/half-life.zsh-theme @@ -0,0 +1,99 @@ +# prompt style and colors based on Steve Losh's Prose theme: +# http://github.com/sjl/oh-my-zsh/blob/master/themes/prose.zsh-theme +# +# vcs_info modifications from Bart Trojanowski's zsh prompt: +# http://www.jukie.net/bart/blog/pimping-out-zsh-prompt +# +# git untracked files modification from Brian Carper: +# http://briancarper.net/blog/570/git-info-in-your-zsh-prompt + +function virtualenv_info { + [ $VIRTUAL_ENV ] && echo '('`basename $VIRTUAL_ENV`') ' +} +PR_GIT_UPDATE=1 + +setopt prompt_subst +autoload colors +colors + +autoload -U add-zsh-hook +autoload -Uz vcs_info + +#use extended color pallete if available +if [[ $TERM = *256color* || $TERM = *rxvt* ]]; then + turquoise="%F{81}" + orange="%F{166}" + purple="%F{135}" + hotpink="%F{161}" + limegreen="%F{118}" +else + turquoise="$fg[cyan]" + orange="$fg[yellow]" + purple="$fg[magenta]" + hotpink="$fg[red]" + limegreen="$fg[green]" +fi + +# enable VCS systems you use +zstyle ':vcs_info:*' enable git svn + +# check-for-changes can be really slow. +# you should disable it, if you work with large repositories +zstyle ':vcs_info:*:prompt:*' check-for-changes true + +# set formats +# %b - branchname +# %u - unstagedstr (see below) +# %c - stagedstr (see below) +# %a - action (e.g. rebase-i) +# %R - repository path +# %S - path in the repository +PR_RST="%{${reset_color}%}" +FMT_BRANCH="(%{$turquoise%}%b%u%c${PR_RST})" +FMT_ACTION="(%{$limegreen%}%a${PR_RST})" +FMT_UNSTAGED="%{$orange%}●" +FMT_STAGED="%{$limegreen%}●" + +zstyle ':vcs_info:*:prompt:*' unstagedstr "${FMT_UNSTAGED}" +zstyle ':vcs_info:*:prompt:*' stagedstr "${FMT_STAGED}" +zstyle ':vcs_info:*:prompt:*' actionformats "${FMT_BRANCH}${FMT_ACTION}" +zstyle ':vcs_info:*:prompt:*' formats "${FMT_BRANCH}" +zstyle ':vcs_info:*:prompt:*' nvcsformats "" + + +function steeef_preexec { + case "$(history $HISTCMD)" in + *git*) + PR_GIT_UPDATE=1 + ;; + *svn*) + PR_GIT_UPDATE=1 + ;; + esac +} +add-zsh-hook preexec steeef_preexec + +function steeef_chpwd { + PR_GIT_UPDATE=1 +} +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 + PR_GIT_UPDATE=1 + FMT_BRANCH="${PM_RST} on %{$turquoise%}%b%u%c%{$hotpink%}●${PR_RST}" + else + FMT_BRANCH="${PM_RST} on %{$turquoise%}%b%u%c${PR_RST}" + fi + zstyle ':vcs_info:*:prompt:*' formats "${FMT_BRANCH}" + + vcs_info 'prompt' + PR_GIT_UPDATE= + fi +} +add-zsh-hook precmd steeef_precmd + +PROMPT=$' +%{$purple%}%n%{$reset_color%} in %{$limegreen%}%~%{$reset_color%}$(rvm-prompt " with%{$fg[red]%} " v g "%{$reset_color%}")$vcs_info_msg_0_%{$orange%} λ%{$reset_color%} ' From 0b70b6d0483210b7fcc74ee1073c7de887f4f3ac Mon Sep 17 00:00:00 2001 From: Corey Woodcox Date: Wed, 4 Apr 2012 00:58:09 -0600 Subject: [PATCH 045/349] small changes to make it prettier --- themes/half-life.zsh-theme | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/themes/half-life.zsh-theme b/themes/half-life.zsh-theme index 699880027..c8d09ce47 100644 --- a/themes/half-life.zsh-theme +++ b/themes/half-life.zsh-theme @@ -49,8 +49,8 @@ zstyle ':vcs_info:*:prompt:*' check-for-changes true # %R - repository path # %S - path in the repository PR_RST="%{${reset_color}%}" -FMT_BRANCH="(%{$turquoise%}%b%u%c${PR_RST})" -FMT_ACTION="(%{$limegreen%}%a${PR_RST})" +FMT_BRANCH=" on %{$turquoise%}%b%u%c${PR_RST}" +FMT_ACTION=" performing a %{$limegreen%}%a${PR_RST}" FMT_UNSTAGED="%{$orange%}●" FMT_STAGED="%{$limegreen%}●" From dc3074309555965e47b604499ca64a1489f639ed Mon Sep 17 00:00:00 2001 From: Peter Tillemans Date: Wed, 4 Apr 2012 19:52:14 +0200 Subject: [PATCH 046/349] Added subcommands for leiningen 1.7.0 --- plugins/lein/lein.plugin.zsh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/plugins/lein/lein.plugin.zsh b/plugins/lein/lein.plugin.zsh index 19af3556a..11c92979b 100644 --- a/plugins/lein/lein.plugin.zsh +++ b/plugins/lein/lein.plugin.zsh @@ -5,15 +5,29 @@ function _lein_commands() { case $state in subcommand) subcommands=( + "classpath:print the classpath of the current project" "clean:remove compiled files and dependencies from project" "compile:ahead-of-time compile the project" + "deploy:build jar and deploy to remote repository" "deps:download and install all dependencies" "help:display a list of tasks or help for a given task" "install:install the project and its dependencies in your local repository" + "int:enter an interactive task shell" + "interactive:enter an interactive task shell" + "jack-in:jack in to a clojure slime session from emacs." "jar:create a jar file containing the compiled .class files" + "javac:compile java source files" "new:create a new project skeleton" + "plugin:manage user-level plugins" "pom:write a pom.xml file to disk for maven interop" + "repl:start a repl session either with the current project or standalone" + "retest:run only the test namespaces which failed last time around" + "run:run the project's -main function" + "search:search remote maven repositories for matching jars" + "swank:launch swank server for Emacs to connect" "test:run the project's tests" + "test!:run a project's tests after cleaning and fetching dependencies" + "trampoline:run a task without nesting the project's JVM inside Leiningen's." "uberjar:Create a jar including the contents of each of deps" "upgrade:upgrade leiningen to the latest stable release" "version:print leiningen's version" From 9b05a44387f84ae0b24e24023286534d0bbdf65f Mon Sep 17 00:00:00 2001 From: "Steven G. Harms" Date: Thu, 5 Apr 2012 10:18:16 -0700 Subject: [PATCH 047/349] Adds glo; glp (arg) * glo := git log --oneline * glp := git log --pretty=arg --- plugins/git/git.plugin.zsh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index c1b382b2c..63a276d25 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 glo='git log --oneline' +compdef _git glo=git-log alias gss='git status -s' compdef _git gss=git-status alias ga='git add' @@ -59,3 +61,12 @@ 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 + +# Pretty log messages +function _git_log_prettily(){ + if ! [ -z $1 ]; then + git log --pretty=$1 + fi +} +alias glp="_git_log_prettily" +compdef _git glp=git-log From 8942d304ff55ad9467872ecab3f343552b5c2083 Mon Sep 17 00:00:00 2001 From: Daniel Bayerlein Date: Sat, 7 Apr 2012 18:23:12 +0200 Subject: [PATCH 048/349] Add Theme "itchy" --- themes/itchy.zsh-theme | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 themes/itchy.zsh-theme diff --git a/themes/itchy.zsh-theme b/themes/itchy.zsh-theme new file mode 100644 index 000000000..afc2abf69 --- /dev/null +++ b/themes/itchy.zsh-theme @@ -0,0 +1,19 @@ +# Created by Daniel Bayerlein https://github.com/danielbayerlein +# Inspired by http://peepcode.com/blog/2012/my-command-line-prompt + +local smiley="%(?,%{$fg[green]%}☺%{$reset_color%},%{$fg[red]%}☹%{$reset_color%})" + +local user="%{$fg[cyan]%}%n%{$reset_color%}" +local host="%{$fg[cyan]%}@%m%{$reset_color%}" +local pwd="%{$fg[yellow]%}%~%{$reset_color%}" + +PROMPT='${user}${host} ${pwd} +${smiley} ' + +RPROMPT='$(rvm-prompt || rbenv version) %{$fg[white]%}$(git_prompt_info)%{$reset_color%}' + +ZSH_THEME_GIT_PROMPT_PREFIX="" +ZSH_THEME_GIT_PROMPT_SUFFIX="" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%} ✗%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[green]%} ✔%{$reset_color%}" + From 8ce35df2c5aa333dd394f6e7e2700538c10d9a90 Mon Sep 17 00:00:00 2001 From: Martin Meredith Date: Wed, 18 Apr 2012 11:45:22 +0100 Subject: [PATCH 049/349] Add option to disable status notification For certain git repositories, this slows down usage of the shell horifically. This option can be set with git config --add oh-my-zsh.hide-status 1 which will disable checking/showing the status notification --- lib/git.zsh | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/lib/git.zsh b/lib/git.zsh index fb4ad8ca6..6c878afff 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -8,13 +8,15 @@ 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 - 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" + if [[ "$(git config --get oh-my-zsh.hide-status)" != "1" ]]; 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 + echo "$ZSH_THEME_GIT_PROMPT_DIRTY" + else + echo "$ZSH_THEME_GIT_PROMPT_CLEAN" + fi fi } From 6f4c69cb48d6fb746149afddee264509a5245305 Mon Sep 17 00:00:00 2001 From: Justin Mazzi Date: Wed, 25 Apr 2012 11:59:53 -0300 Subject: [PATCH 050/349] Add instructions on handling updates and prompts. --- README.textile | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.textile b/README.textile index bf6776665..f6b59fa26 100644 --- a/README.textile +++ b/README.textile @@ -59,6 +59,14 @@ If you want to override any of the default behavior, just add a new file (ending 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/@. +h3. Updates +By default you will be prompted to check for updates. If you would like oh-my-zsh to automatically update itself without prompting you, set the following in your ~/.zshrc + +@DISABLE_UPDATE_PROMPT=true@ + +To disable updates entirely, put this in your ~/.zshrc + +@DISABLE_AUTO_UPDATE=true@ h3. Uninstalling From 7fd1bf597fd866480d41a4208fa23d04b1a79044 Mon Sep 17 00:00:00 2001 From: Justin Mazzi Date: Wed, 25 Apr 2012 11:02:17 -0400 Subject: [PATCH 051/349] Fix formatting --- README.textile | 1 + 1 file changed, 1 insertion(+) diff --git a/README.textile b/README.textile index f6b59fa26..701485690 100644 --- a/README.textile +++ b/README.textile @@ -60,6 +60,7 @@ If you have many functions which go well together you can put them as a *.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/@. h3. Updates + By default you will be prompted to check for updates. If you would like oh-my-zsh to automatically update itself without prompting you, set the following in your ~/.zshrc @DISABLE_UPDATE_PROMPT=true@ From 79847ad77d1613fa823b2c6e097895b3b5193074 Mon Sep 17 00:00:00 2001 From: Dr Nic Williams Date: Wed, 2 May 2012 10:32:30 -0700 Subject: [PATCH 052/349] 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 e1d682508..340485104 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 3dd3c1f4158365b98e0754de9f0c1cbcb33d026c Mon Sep 17 00:00:00 2001 From: mapc Date: Tue, 29 May 2012 01:07:36 +0200 Subject: [PATCH 053/349] 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 ce4431a160350e4d2d384251a9471cfed493b834 Mon Sep 17 00:00:00 2001 From: Kir Shatrov Date: Mon, 4 Jun 2012 11:50:42 +0300 Subject: [PATCH 054/349] Added spin to bundled_commands (Bundler plugin) --- 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..7d2d1dcfd 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 ey foreman guard middleman nanoc rackup rainbows rails rake rspec ruby shotgun spec spin spork thin thor unicorn unicorn_rails) ## Functions From 43c09216939d3936a3a3887a975c4b16e8664806 Mon Sep 17 00:00:00 2001 From: Vitaliy Yanchuk Date: Thu, 14 Jun 2012 13:31:00 +0300 Subject: [PATCH 055/349] More usable and shorter aliases --- plugins/encode64/encode64.plugin.zsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/encode64/encode64.plugin.zsh b/plugins/encode64/encode64.plugin.zsh index cfb7c6a18..3b59447c5 100644 --- a/plugins/encode64/encode64.plugin.zsh +++ b/plugins/encode64/encode64.plugin.zsh @@ -1,2 +1,4 @@ encode64(){ echo -n $1 | base64 } -decode64(){ echo -n $1 | base64 -D } \ No newline at end of file +decode64(){ echo -n $1 | base64 -D } +alias e64=encode64 +alias d64=decode64 From 8088e8ac7935e9289d049278e117befd87f48809 Mon Sep 17 00:00:00 2001 From: Paul McKellar Date: Mon, 18 Jun 2012 01:01:05 -0700 Subject: [PATCH 056/349] 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 8ba97c36443d8551a28de194a3da4b7c4d6c7949 Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Fri, 22 Jun 2012 15:30:51 +0300 Subject: [PATCH 057/349] 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 058/349] 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 5e9a16b88a5cffe015101f992e29fa0d50027f5d Mon Sep 17 00:00:00 2001 From: Roey Darwish Dror Date: Fri, 22 Jun 2012 20:25:44 +0300 Subject: [PATCH 059/349] 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 060/349] 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 18cb11903f8208403a0ba5a8f2ece1a0bd4ef9a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20M-B?= Date: Wed, 27 Jun 2012 00:12:21 +0200 Subject: [PATCH 061/349] Comment l alias --- lib/aliases.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/aliases.zsh b/lib/aliases.zsh index 0555be264..d33d71cf0 100644 --- a/lib/aliases.zsh +++ b/lib/aliases.zsh @@ -16,7 +16,7 @@ alias history='fc -l 1' # List direcory contents alias lsa='ls -lah' -alias l='ls -la' +#alias l='ls -la' alias ll='ls -l' alias sl=ls # often screw this up From c23392ac5b9e8655a42e827983ba93636801136b Mon Sep 17 00:00:00 2001 From: jaischeema Date: Tue, 3 Jul 2012 13:02:29 +1000 Subject: [PATCH 062/349] Add new theme : jaischeema --- themes/jaischeema.zsh-theme | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 themes/jaischeema.zsh-theme diff --git a/themes/jaischeema.zsh-theme b/themes/jaischeema.zsh-theme new file mode 100644 index 000000000..06778216d --- /dev/null +++ b/themes/jaischeema.zsh-theme @@ -0,0 +1,22 @@ +# ------------------------------------------------------------------------------ +# FILE: jaischeema.zsh-theme +# DESCRIPTION: oh-my-zsh theme file. +# AUTHOR: Jais Cheema +# VERSION: 0.0.1 +# ------------------------------------------------------------------------------ + + + +PROMPT='%{$fg_bold[magenta]%}%m%{$reset_color%} at %{$fg_bold[green]%}%~%{$reset_color%} %{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%}% %{$reset_color%}%{$fg[red]%}❯%{$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]%}) " + +if which rbenv &> /dev/null; then + RPROMPT='%{$fg[red]%}$(rbenv version | sed -e "s/ (set.*$//")%{$reset_color%}' +else +if which rvm-prompt &> /dev/null; then + RPROMPT='%{$fg[red]%}$(rvm-prompt)%{$reset_color%}' +fi From 8d60f9a0d8eaf7f72eb64f600fcecbe48a26300f Mon Sep 17 00:00:00 2001 From: jais Date: Tue, 3 Jul 2012 15:12:55 +1000 Subject: [PATCH 063/349] Fix the rvm gemset right prompt:wq --- themes/jaischeema.zsh-theme | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/themes/jaischeema.zsh-theme b/themes/jaischeema.zsh-theme index 06778216d..aecc5b961 100644 --- a/themes/jaischeema.zsh-theme +++ b/themes/jaischeema.zsh-theme @@ -17,6 +17,7 @@ ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%}) " if which rbenv &> /dev/null; then RPROMPT='%{$fg[red]%}$(rbenv version | sed -e "s/ (set.*$//")%{$reset_color%}' else -if which rvm-prompt &> /dev/null; then - RPROMPT='%{$fg[red]%}$(rvm-prompt)%{$reset_color%}' + if which rvm-prompt &> /dev/null; then + RPROMPT='%{$fg[red]%}$(rvm-prompt)%{$reset_color%}' + fi fi From 0b2da8f11b2e84a73f3fbe019a086da28ae6d2a3 Mon Sep 17 00:00:00 2001 From: Justin Caratzas Date: Wed, 11 Jul 2012 23:40:12 -0400 Subject: [PATCH 064/349] Add very basic virtualenv plugin checks for $VIRTUAL_ENV and provides to basename in a function for the prompt. --- plugins/virtualenv/virtualenv.plugin.zsh | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 plugins/virtualenv/virtualenv.plugin.zsh diff --git a/plugins/virtualenv/virtualenv.plugin.zsh b/plugins/virtualenv/virtualenv.plugin.zsh new file mode 100644 index 000000000..e8458389f --- /dev/null +++ b/plugins/virtualenv/virtualenv.plugin.zsh @@ -0,0 +1,9 @@ +function virtualenv_prompt_info(){ + local virtualenv_path="$VIRTUAL_ENV" + if [[ -n $virtualenv_path ]]; then + local virtualenv_name=`basename $virtualenv_path` + printf "%s[%s] " "%{${fg[yellow]}%}" $virtualenv_name + fi +} + +export VIRTUAL_ENV_DISABLE_PROMPT=1 From 5001412f6d127d8360ea8e0d775e7184aae2091d Mon Sep 17 00:00:00 2001 From: Bob Maerten Date: Thu, 12 Jul 2012 14:19:10 +0300 Subject: [PATCH 065/349] vagrant uses 'ssh-config' command, not 'ssh_config' --- plugins/vagrant/_vagrant | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/vagrant/_vagrant b/plugins/vagrant/_vagrant index 483b29c53..1eed7f988 100644 --- a/plugins/vagrant/_vagrant +++ b/plugins/vagrant/_vagrant @@ -15,7 +15,7 @@ _1st_arguments=( 'reload:Reload the vagrant environment' 'resume:Resumes a suspend vagrant environment' 'ssh:SSH into the currently running environment' - 'ssh_config:outputs .ssh/config valid syntax for connecting to this environment via ssh.' + 'ssh-config:outputs .ssh/config valid syntax for connecting to this environment via ssh.' 'status:Shows the status of the current Vagrant environment.' 'suspend:Suspends the currently running vagrant environment' 'up:Creates the vagrant environment' From bb34abd5186c0d87126b13af8643614d0aa50367 Mon Sep 17 00:00:00 2001 From: Mugen Kenichi Date: Wed, 18 Jul 2012 12:07:16 +0200 Subject: [PATCH 066/349] 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 067/349] 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 068/349] 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 3fea7c3b278ccf73421cbdcc61a1c1dd6d4a0a70 Mon Sep 17 00:00:00 2001 From: Andrew Vit Date: Sun, 6 Nov 2011 04:07:16 -0800 Subject: [PATCH 069/349] Added avit theme --- themes/avit.zsh-theme | 120 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 themes/avit.zsh-theme diff --git a/themes/avit.zsh-theme b/themes/avit.zsh-theme new file mode 100644 index 000000000..51f5e375a --- /dev/null +++ b/themes/avit.zsh-theme @@ -0,0 +1,120 @@ +# +# Author:: Andrew Vit () +# +# AVIT ZSH Theme +# +# Copyright 2011, Andrew Vit +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +PROMPT=' +$(_user_host)${_current_dir} $(git_prompt_info) $(_ruby_version) +▶ ' + +PROMPT2='%{$fg[grey]%}◀%{$reset_color%} ' + +RPROMPT='$(_vi_status)%{$(echotc UP 1)%}$(_git_time_since_commit) $(git_prompt_status) ${_return_status}%{$(echotc DO 1)%}' + +local _current_dir="%{$fg[blue]%}%3~%{$reset_color%} " +local _return_status="%{$fg[red]%}%(?..⍉)%{$reset_color%}" +local _hist_no="%{$fg[grey]%}%h%{$reset_color%}" + +function _user_host() { + if [[ -n $SSH_CONNECTION ]]; then + me="%n@%m" + elif [[ $LOGNAME != $USER ]]; then + me="%n" + fi + if [[ -n $me ]]; then + echo "%{$fg[cyan]%}$me%{$reset_color%}:" + fi +} + +function _vi_status() { + if {echo $fpath | grep -q "plugins/vi-mode"}; then + echo "$(vi_mode_prompt_info)" + fi +} + +function _ruby_version() { + if {echo $fpath | grep -q "plugins/rvm"}; then + echo "%{$fg[grey]%}$(rvm_prompt_info)%{$reset_color%}" + fi +} + +# Determine the time since last commit. If branch is clean, +# use a neutral color, otherwise colors will vary according to time. +function _git_time_since_commit() { + if git rev-parse --git-dir > /dev/null 2>&1; then + # Only proceed if there is actually a commit. + if [[ $(git log 2>&1 > /dev/null | grep -c "^fatal: bad default revision") == 0 ]]; then + # Get the last commit. + last_commit=$(git log --pretty=format:'%at' -1 2> /dev/null) + now=$(date +%s) + seconds_since_last_commit=$((now-last_commit)) + + # Totals + minutes=$((seconds_since_last_commit / 60)) + hours=$((seconds_since_last_commit/3600)) + + # Sub-hours and sub-minutes + days=$((seconds_since_last_commit / 86400)) + sub_hours=$((hours % 24)) + sub_minutes=$((minutes % 60)) + + if [ $hours -gt 24 ]; then + commit_age="${days}d" + elif [ $minutes -gt 60 ]; then + commit_age="${sub_hours}h${sub_minutes}m" + else + commit_age="${minutes}m" + fi + + color=$ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL + echo "$color$commit_age%{$reset_color%}" + fi + fi +} + +if [[ $USER == "root" ]]; then + CARETCOLOR="red" +else + CARETCOLOR="white" +fi + +MODE_INDICATOR="%{$fg_bold[yellow]%}❮%{$reset_color%}%{$fg[yellow]%}❮❮%{$reset_color%}" + +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[green]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" + +ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}✗%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_CLEAN=" %{$fg[green]%}✔%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_ADDED="%{$fg[green]%}✚ " +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[cyan]%}§ " +ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[grey]%}◒ " + +# Colors vary depending on time lapsed. +ZSH_THEME_GIT_TIME_SINCE_COMMIT_SHORT="%{$fg[green]%}" +ZSH_THEME_GIT_TIME_SHORT_COMMIT_MEDIUM="%{$fg[yellow]%}" +ZSH_THEME_GIT_TIME_SINCE_COMMIT_LONG="%{$fg[red]%}" +ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL="%{$fg[grey]%}" + +# 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:' +export GREP_COLOR='1;33' + From 0b757825a2c23af6fcf17f540cbfacd390321fa8 Mon Sep 17 00:00:00 2001 From: Alexis GRIMALDI Date: Thu, 19 Jul 2012 12:50:53 +0200 Subject: [PATCH 070/349] 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 071/349] 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 072/349] 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 73df0c8e93399c8281076d660aa48b1fc5203ce1 Mon Sep 17 00:00:00 2001 From: Dr Nic Williams Date: Wed, 2 May 2012 10:32:30 -0700 Subject: [PATCH 073/349] 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 61e708f91f36420e1c5ebe68c23d94738989c9d1 Mon Sep 17 00:00:00 2001 From: Graham Christensen Date: Mon, 23 Jul 2012 23:33:14 -0400 Subject: [PATCH 074/349] 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 a8d795872989ddce5bbda0926f5ebca1d769ff6b Mon Sep 17 00:00:00 2001 From: apm Date: Wed, 25 Jul 2012 10:55:28 +0600 Subject: [PATCH 075/349] 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 9ee4b9c8f7b21db2c20500cacd72471e8cdbf6a5 Mon Sep 17 00:00:00 2001 From: oemer Date: Thu, 26 Jul 2012 16:05:03 +0200 Subject: [PATCH 076/349] Added go completion script. Taken from /misc/zsh/go --- plugins/go/go.plugin.zsh | 151 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 plugins/go/go.plugin.zsh diff --git a/plugins/go/go.plugin.zsh b/plugins/go/go.plugin.zsh new file mode 100644 index 000000000..23afa9656 --- /dev/null +++ b/plugins/go/go.plugin.zsh @@ -0,0 +1,151 @@ +# install in /etc/zsh/zshrc or your personal .zshrc + +# gc +prefixes=(5 6 8) +for p in $prefixes; do + compctl -g "*.${p}" ${p}l + compctl -g "*.go" ${p}g +done + +# standard go tools +compctl -g "*.go" gofmt + +# gccgo +compctl -g "*.go" gccgo + +# go tool +__go_tool_complete() { + typeset -a commands build_flags + commands+=( + 'build[compile packages and dependencies]' + 'clean[remove object files]' + 'doc[run godoc on package sources]' + 'fix[run go tool fix on packages]' + 'fmt[run gofmt on package sources]' + 'get[download and install packages and dependencies]' + 'help[display help]' + 'install[compile and install packages and dependencies]' + 'list[list packages]' + 'run[compile and run Go program]' + 'test[test packages]' + 'tool[run specified go tool]' + 'version[print Go version]' + 'vet[run go tool vet on packages]' + ) + if (( CURRENT == 2 )); then + # explain go commands + _values 'go tool commands' ${commands[@]} + return + fi + build_flags=( + '-a[force reinstallation of packages that are already up-to-date]' + '-n[print the commands but do not run them]' + "-p[number of parallel builds]:number" + '-x[print the commands]' + "-work[print temporary directory name and keep it]" + "-gcflags[flags for 5g/6g/8g]:flags" + "-ldflags[flags for 5l/6l/8l]:flags" + "-gccgoflags[flags for gccgo]:flags" + ) + __go_list() { + local expl importpaths + declare -a importpaths + importpaths=($(go list ${words[$CURRENT]}... 2>/dev/null)) + _wanted importpaths expl 'import paths' compadd "$@" - "${importpaths[@]}" + } + case ${words[2]} in + clean|doc) + _arguments -s -w : '*:importpaths:__go_list' + ;; + fix|fmt|list|vet) + _alternative ':importpaths:__go_list' ':files:_path_files -g "*.go"' + ;; + install) + _arguments -s -w : ${build_flags[@]} \ + "-v[show package names]" \ + '*:importpaths:__go_list' + ;; + get) + _arguments -s -w : \ + ${build_flags[@]} + ;; + build) + _arguments -s -w : \ + ${build_flags[@]} \ + "-v[show package names]" \ + "-o[output file]:file:_files" \ + "*:args:{ _alternative ':importpaths:__go_list' ':files:_path_files -g \"*.go\"' }" + ;; + test) + _arguments -s -w : \ + ${build_flags[@]} \ + "-c[do not run, compile the test binary]" \ + "-i[do not run, install dependencies]" \ + "-v[print test output]" \ + "-x[print the commands]" \ + "-short[use short mode]" \ + "-parallel[number of parallel tests]:number" \ + "-cpu[values of GOMAXPROCS to use]:number list" \ + "-run[run tests and examples matching regexp]:regexp" \ + "-bench[run benchmarks matching regexp]:regexp" \ + "-benchtime[run each benchmark during n seconds]:duration" \ + "-timeout[kill test after that duration]:duration" \ + "-cpuprofile[write CPU profile to file]:file:_files" \ + "-memprofile[write heap profile to file]:file:_files" \ + "-memprofilerate[set heap profiling rate]:number" \ + "*:args:{ _alternative ':importpaths:__go_list' ':files:_path_files -g \"*.go\"' }" + ;; + help) + _values "${commands[@]}" \ + 'gopath[GOPATH environment variable]' \ + 'importpath[description of import paths]' \ + 'remote[remote import path syntax]' \ + 'testflag[description of testing flags]' \ + 'testfunc[description of testing functions]' + ;; + run) + _arguments -s -w : \ + ${build_flags[@]} \ + '*:file:_path_files -g "*.go"' + ;; + tool) + if (( CURRENT == 3 )); then + _values "go tool" $(go tool) + return + fi + case ${words[3]} in + [568]g) + _arguments -s -w : \ + '-I[search for packages in DIR]:includes:_path_files -/' \ + '-L[show full path in file:line prints]' \ + '-S[print the assembly language]' \ + '-V[print the compiler version]' \ + '-e[no limit on number of errors printed]' \ + '-h[panic on an error]' \ + '-l[disable inlining]' \ + '-m[print optimization decisions]' \ + '-o[file specify output file]:file' \ + '-p[assumed import path for this code]:importpath' \ + '-u[disable package unsafe]' \ + "*:file:_files -g '*.go'" + ;; + [568]l) + local O=${words[3]%l} + _arguments -s -w : \ + '-o[file specify output file]:file' \ + '-L[search for packages in DIR]:includes:_path_files -/' \ + "*:file:_files -g '*.[ao$O]'" + ;; + dist) + _values "dist tool" banner bootstrap clean env install version + ;; + *) + # use files by default + _files + ;; + esac + ;; + esac +} + +compdef __go_tool_complete go 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 077/349] 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 078/349] 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 682961e9304c6bf7bd500d741b01640682d35ac9 Mon Sep 17 00:00:00 2001 From: Morgan Larosa Date: Sat, 28 Jul 2012 08:25:15 +1000 Subject: [PATCH 079/349] Add a configuration option to disable autocorrect --- lib/correction.zsh | 22 +++++++++++++--------- templates/zshrc.zsh-template | 3 +++ 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/lib/correction.zsh b/lib/correction.zsh index fc60dcdbd..07fbcfd36 100644 --- a/lib/correction.zsh +++ b/lib/correction.zsh @@ -1,10 +1,14 @@ -setopt correct_all +if [[ "$DISABLE_CORRECTION" == "true" ]]; then + return +else + setopt correct_all -alias man='nocorrect man' -alias mv='nocorrect mv' -alias mysql='nocorrect mysql' -alias mkdir='nocorrect mkdir' -alias gist='nocorrect gist' -alias heroku='nocorrect heroku' -alias ebuild='nocorrect ebuild' -alias hpodder='nocorrect hpodder' + alias man='nocorrect man' + alias mv='nocorrect mv' + alias mysql='nocorrect mysql' + alias mkdir='nocorrect mkdir' + alias gist='nocorrect gist' + alias heroku='nocorrect heroku' + alias ebuild='nocorrect ebuild' + alias hpodder='nocorrect hpodder' +fi diff --git a/templates/zshrc.zsh-template b/templates/zshrc.zsh-template index e52553241..cb9c5855e 100644 --- a/templates/zshrc.zsh-template +++ b/templates/zshrc.zsh-template @@ -23,6 +23,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 to disable command autocorrection +# DISABLE_CORRECTION="true" + # Uncomment following line if you want red dots to be displayed while waiting for completion # COMPLETION_WAITING_DOTS="true" From aaf705c5faf3ebe27604277809ca1260705430c9 Mon Sep 17 00:00:00 2001 From: bwl Date: Sun, 29 Jul 2012 00:53:20 -0400 Subject: [PATCH 080/349] 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 081/349] 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 082/349] 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 083/349] 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 084/349] 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 085/349] 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 086/349] 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: Fri, 17 Aug 2012 16:58:35 +0100 Subject: [PATCH 087/349] 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 f995218d081ac66b86d40a0141db5d445147b50d Mon Sep 17 00:00:00 2001 From: "jamie sa (jsa)" Date: Fri, 10 Aug 2012 23:01:55 +0800 Subject: [PATCH 088/349] 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 089/349] 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 090/349] 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 091/349] 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 2643ac975bff9513753b6e3d99a34164e48955f7 Mon Sep 17 00:00:00 2001 From: Nicholas Hutchinson Date: Sun, 2 Sep 2012 10:38:08 +1200 Subject: [PATCH 092/349] 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 3ef82a908a10979d9a4d14e0674902c85b14a99e Mon Sep 17 00:00:00 2001 From: mikka Date: Sun, 2 Sep 2012 15:43:20 +0200 Subject: [PATCH 093/349] nginx and php-fpm plugins --- plugins/nginx/nginx.plugin.zsh | 195 +++++++++++++++++++++++++++++ plugins/nginx/templates/plain_php | 27 ++++ plugins/nginx/templates/symfony2 | 27 ++++ plugins/php-fpm/php-fpm.plugin.zsh | 75 +++++++++++ plugins/php-fpm/templates/pool | 11 ++ 5 files changed, 335 insertions(+) create mode 100644 plugins/nginx/nginx.plugin.zsh create mode 100644 plugins/nginx/templates/plain_php create mode 100644 plugins/nginx/templates/symfony2 create mode 100644 plugins/php-fpm/php-fpm.plugin.zsh create mode 100644 plugins/php-fpm/templates/pool diff --git a/plugins/nginx/nginx.plugin.zsh b/plugins/nginx/nginx.plugin.zsh new file mode 100644 index 000000000..6dd90c6d5 --- /dev/null +++ b/plugins/nginx/nginx.plugin.zsh @@ -0,0 +1,195 @@ +: ${NGINX_DIR:=/etc/nginx} +: ${NGINX_VHOST_TEMPLATE:=$ZSH/plugins/nginx/templates/symfony2} + +if [ $use_sudo -eq 1 ]; then + sudo="sudo" +else + sudo="" +fi + +# nginx basic completition + +_nginx_get_en_command_list () { + ls -a $NGINX_DIR/sites-available | awk '/^[a-z][a-z.-]+$/ { print $1 }' +} + +_nginx_get_dis_command_list () { + ls -a $NGINX_DIR/sites-enabled | awk '/^[a-z][a-z.-]+$/ { print $1 }' +} + +_nginx_en () { + compadd `_nginx_get_en_command_list` +} + +_nginx_dis () { + compadd `_nginx_get_dis_command_list` +} + +# Enabling a site +en () { + if [ ! $1 ]; then + echo "\033[337;41m\nThe name of the vhost is required!\n\033[0m"; + return + fi + + if [ ! -e $NGINX_DIR/sites-available/$1 ]; then + echo "\033[31m$1\033[0m doesn't exist"; + return + fi + + if [ ! -e $NGINX_DIR/sites-enabled/$1 ]; then + $sudo ln -s $NGINX_DIR/sites-available/$1 $NGINX_DIR/sites-enabled/$1; + if [ -e /etc/nginx/sites-enabled/$1 ]; then + echo "\033[32m$1\033[0m successfully enabled"; + else + echo "An error occured during the enabling of \033[31m$1\033[0m"; + fi + else + echo "\033[31m$1\033[0m is already enabled"; + fi +} +compdef _nginx_en en + +# Disabling a site +dis () { + if [ ! $1 ]; then + echo "\033[337;41m\nThe name of the vhost is required!\n\033[0m"; + return + fi + + if [ ! -e $NGINX_DIR/sites-enabled/$1 ]; then + echo "\033[31m$1\033[0m doesn't exist"; + else + $sudo rm -f $NGINX_DIR/sites-enabled/$1; + if [ ! -e $NGINX_DIR/sites-enabled/$1 ]; then + echo "\033[32m$1\033[0m successfully disabled"; + else + echo "An error occured during the disabling of \033[31m$1\033[0m"; + fi + fi +} +compdef _nginx_dis dis + +# Completition of vhost +_nginx_get_possible_vhost_list () { + ls -a $HOME/www | awk '/^[^.][a-z0-9._]+$/ { print $1 }' +} + +_nginx_vhost () { + compadd `_nginx_get_possible_vhost_list` +} + +# Parsing arguments +vhost () { + user=$USER; + template=$NGINX_VHOST_TEMPLATE + tpl="non_existing_template" + enable=1 + write_hosts=0 + args="" + + while getopts ":lu:t:nwh" option + do + case $option in + l ) ls $NGINX_DIR/sites-enabled; return ;; + u ) user=$OPTARG; args="$args -u $OPTARG" ;; + t ) tpl=$OPTARG; args="$args -t $OPTARG" ;; + n ) enable=0; args="$args -n" ;; + w ) write_hosts=1; args="$args -w" ;; + h ) _vhost_usage; return ;; + esac + done + + vhost=${@: -1} + vhostNotGiven=0 + + if [ ! $vhost ]; then + vhostNotGiven=1 + else + if [ $(echo $args | grep -o $vhost) ]; then + vhostNotGiven=1 + fi + fi + + if [ $vhostNotGiven -eq 1 ]; then + echo "\033[337;41m\nThe name of the vhost is required!\n\033[0m" + return + fi + + if [ -e $ZSH/plugins/nginx/templates/$tpl ]; then + template=$ZSH/plugins/nginx/templates/$tpl + elif [ -e $tpl ]; then + template=$tpl + fi + + _vhost_generate $vhost $user + + if [ $enable -eq 1 ]; then + en $vhost + fi + + if [ $write_hosts -eq 1 ]; then + _write_hosts $vhost + fi +} +compdef _nginx_vhost vhost + +_vhost_usage () { + echo "Usage: vhost [options] [vhost_name]" + echo + echo "Options" + echo " -l Lists enabled vhosts" + echo " -u Sets the user - defaults to the current user ($USER)" + echo " -t Sets the template" + echo " -n Does not enable the generated vhost" + echo " -w Write the vhost to the /etc/hosts file pointing to 127.0.0.1 (writes it at the end of the first line actually)" + echo " -h Get this help message" + return +} + +# Generate config file +_vhost_generate () { + user=$(cat /etc/passwd | grep $2 | awk -F : '{print $1 }') + + if [ ! $user ]; then + echo "User \033[31m$2\033[0m doesn't have an account on \033[33m$HOST\033[0m" + return + fi + + echo "Generating \033[32m$1\033[0m vhost for \033[33m$user\033[0m user" + + user_id=$(cat /etc/passwd | grep $2 | awk -F : '{print $3 }') + pool_port=1$user_id + + conf=$(sed -e 's/{vhost}/'$1'/g' -e 's/{user}/'$user'/g' -e 's/{pool_port}/'$pool_port'/g' $template ) + + echo $conf > $1.tmp + $sudo mv $1.tmp $NGINX_DIR/sites-available/$1 + + if [ -e $NGINX_DIR/sites-available/$1 ]; then + echo "\033[32m$1\033[0m vhost has been successfully created" + else + echo "An error occured during the creating of \033[31m$1\033[0m vhost" + fi +} + +# Write the /etc/hosts file +_write_hosts () { + temp=$HOME/hosts.temp + exec < /etc/hosts + while read line + do + if [ -e $temp ]; then + echo "$line" >> $temp; + else + echo "$line $1" > $temp; + fi + done + + $sudo mv $temp /etc/hosts; + + "\033[32m$1\033[0m vhost has been successfully written in /etc/hosts" +} + +alias ngt="$sudo nginx -t" +alias ngr="$sudo service nginx restart" diff --git a/plugins/nginx/templates/plain_php b/plugins/nginx/templates/plain_php new file mode 100644 index 000000000..f7995f5d5 --- /dev/null +++ b/plugins/nginx/templates/plain_php @@ -0,0 +1,27 @@ +server { + root /home/{user}/www/{vhost}; + index index.php; + + server_name {vhost}; + + error_log /var/log/nginx/{vhost}.error.log; + access_log /var/log/nginx/{vhost}.access.log; + + location / { + try_files $uri $uri/ $uri/index.php; + } + + location ~ \.php$ { + include fastcgi_params; + fastcgi_index index.php; + fastcgi_pass 127.0.0.1:{pool_port}; + fastcgi_split_path_info ^(.+\.php)(/.*)$; + + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param HTTPS off; + } + + location ~ /\.ht { + deny all; + } +} diff --git a/plugins/nginx/templates/symfony2 b/plugins/nginx/templates/symfony2 new file mode 100644 index 000000000..4d5754ca1 --- /dev/null +++ b/plugins/nginx/templates/symfony2 @@ -0,0 +1,27 @@ +server { + root /home/{user}/www/{vhost}/web; + index app_dev.php; + + server_name {vhost}; + client_max_body_size 10M; + + error_log /var/log/nginx/{vhost}.error.log; + access_log /var/log/nginx/{vhost}.access.log; + + location / { + try_files $uri $uri/ /app_dev.php; + } + + # pass the PHP scripts to FastCGI server listening on 127.0.0.1:{pool_port} + location ~ ^/(app|app_dev|check)\.php(/|$) { + fastcgi_pass 127.0.0.1:{pool_port}; + fastcgi_split_path_info ^(.+\.php)(/.*)$; + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param HTTPS off; + } + + location ~ /\.ht { + deny all; + } +} diff --git a/plugins/php-fpm/php-fpm.plugin.zsh b/plugins/php-fpm/php-fpm.plugin.zsh new file mode 100644 index 000000000..3c095058a --- /dev/null +++ b/plugins/php-fpm/php-fpm.plugin.zsh @@ -0,0 +1,75 @@ +: ${FPM_DIR:=/etc/php5/fpm} + +if [ $use_sudo -eq 1 ]; then + sudo="sudo" +else + sudo="" +fi + +_fpm_get_possible_pool_list () { + cat /etc/passwd | awk -F : '{print $1 }' +} + +_fpm_pool () { + compadd `_fpm_get_possible_pool_list` + +} + +pool () { + while getopts ":lh" option + do + case $option in + l ) ls $FPM_DIR/pool.d; return ;; + h ) _pool_usage; return ;; + * ) _pool_usage; return ;; # Default. + esac + done + + if [ ! $1 ]; then + user=$USER + else + user=$1 + fi + + _pool_generate $user +} +compdef _fpm_pool pool + +_pool_usage () { + echo "Usage: pool [options] [user]" + echo + echo "Options" + echo " -l Lists fpm pools" + echo " -h Get this help message" + return +} + +_pool_generate () { + user=$(cat /etc/passwd | grep $1 | awk -F : '{print $1 }') + + if [ ! $user ]; then + echo "User \033[31m$1\033[0m doesn't have an account on \033[33m$HOST\033[0m" + return + fi + + group=$(groups $user | cut -d " " -f 3) + + echo "Generating pool for \033[33m$user\033[0m user with \033[33m$group\033[0m group" + + user_id=$(cat /etc/passwd | grep $1 | awk -F : '{print $3 }') + pool_port=1$user_id + : ${FPM_POOL_TEMPLATE:=$ZSH/plugins/php-fpm/templates/pool} + + conf=$(sed -e 's/{user}/'$user'/g' -e 's/{group}/'$group'/g' -e 's/{pool_port}/'$pool_port'/g' $FPM_POOL_TEMPLATE ) + + echo $conf > $user.conf + $sudo mv $user.conf $FPM_DIR/pool.d/$user.conf + + if [ -e $FPM_DIR/pool.d/$user.conf ]; then + echo "Pool for \033[32m$user\033[0m user has been successfully created" + else + echo "An error occured during the creating of pool for \033[31m$user\033[0m user" + fi +} + +alias fpmr="$sudo service php5-fpm restart" diff --git a/plugins/php-fpm/templates/pool b/plugins/php-fpm/templates/pool new file mode 100644 index 000000000..80f6693e0 --- /dev/null +++ b/plugins/php-fpm/templates/pool @@ -0,0 +1,11 @@ +[{user}] +user = {user} +group = {group} + +listen = 127.0.0.1:{pool_port} + +pm = dynamic +pm.max_children = 10 +pm.min_spare_servers = 1 +pm.max_spare_servers = 3 +pm.max_requests = 100 From fa859f90d2ba91be36c77520b1a23442c55d9cfe Mon Sep 17 00:00:00 2001 From: Ben Cao Date: Mon, 3 Sep 2012 11:51:28 +0800 Subject: [PATCH 094/349] 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 095/349] 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 91303246ecb4f103a1a3e21dfd9bcb65d1d5e832 Mon Sep 17 00:00:00 2001 From: mikka Date: Fri, 7 Sep 2012 22:15:43 +0200 Subject: [PATCH 096/349] added lesscss plugin --- plugins/lesscss/lesscss.plugin.zsh | 46 ++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 plugins/lesscss/lesscss.plugin.zsh diff --git a/plugins/lesscss/lesscss.plugin.zsh b/plugins/lesscss/lesscss.plugin.zsh new file mode 100644 index 000000000..6c666adb2 --- /dev/null +++ b/plugins/lesscss/lesscss.plugin.zsh @@ -0,0 +1,46 @@ +# basics taken from here: +# http://www.ravelrumba.com/blog/watch-compile-less-command-line/comment-page-1/#comment-2464 +# Requires watchr: https://github.com/mynyml/watchr + +watchless () { + compressed=0 + compile="" + + while getopts ":xc:h" option + do + case $option in + x ) compressed=1 ;; + c ) compile=$OPTARG ;; + h ) _watchless_usage; return ;; + esac + done + + if [ $compressed -eq 1 ]; then + x=' -x' + else + x='' + fi + + if [ -n "$compile" ]; then + if [ ! -e $compile ]; then + echo "\033[337;41m\n$compile doesn't exist!\n\033[0m" + return + fi + + name=$(echo $compile | cut -d . -f 1) + + watchr -e 'watch(".*\.less$") { |f| system("lessc '$name'.less > '$name'.css'$x' && echo \"'$name'.less > '$name'.css\" ") }' + else + watchr -e 'watch(".*\.less$") { |f| system("lessc #{f[0]} > $(echo #{f[0]} | cut -d\. -f1).css'$x' && echo \"#{f[0]} > $(echo #{f[0]} | cut -d\. -f1).css\" ") }' + fi +} + +_watchless_usage () { + echo "Usage: watchless [options]" + echo + echo "Options" + echo " -x Compiles less files into minified css files" + echo " -c Watch all files but compile only the one given here" + echo " -h Get this help message" + return +} From 08f4d8b9ce43bae69a2d712456cc6bde68b4f0d1 Mon Sep 17 00:00:00 2001 From: mikka Date: Tue, 11 Sep 2012 22:04:56 +0200 Subject: [PATCH 097/349] fixed nginx vhost template, made variables local, imroved parameter validation --- plugins/nginx/nginx.plugin.zsh | 49 +++++++++++++------------------- plugins/nginx/templates/symfony2 | 2 +- 2 files changed, 21 insertions(+), 30 deletions(-) diff --git a/plugins/nginx/nginx.plugin.zsh b/plugins/nginx/nginx.plugin.zsh index 6dd90c6d5..4d2c4122d 100644 --- a/plugins/nginx/nginx.plugin.zsh +++ b/plugins/nginx/nginx.plugin.zsh @@ -81,45 +81,36 @@ _nginx_vhost () { # Parsing arguments vhost () { - user=$USER; - template=$NGINX_VHOST_TEMPLATE - tpl="non_existing_template" - enable=1 - write_hosts=0 - args="" + local user=$USER; + local template=$NGINX_VHOST_TEMPLATE + local tpl="non_existing_template" + local enable=1 + local write_hosts=0 while getopts ":lu:t:nwh" option do case $option in l ) ls $NGINX_DIR/sites-enabled; return ;; - u ) user=$OPTARG; args="$args -u $OPTARG" ;; - t ) tpl=$OPTARG; args="$args -t $OPTARG" ;; - n ) enable=0; args="$args -n" ;; - w ) write_hosts=1; args="$args -w" ;; + u ) user=$OPTARG ;; + t ) tpl=$OPTARG ;; + n ) enable=0 ;; + w ) write_hosts=1 ;; h ) _vhost_usage; return ;; esac done - vhost=${@: -1} - vhostNotGiven=0 - - if [ ! $vhost ]; then - vhostNotGiven=1 - else - if [ $(echo $args | grep -o $vhost) ]; then - vhostNotGiven=1 - fi - fi - - if [ $vhostNotGiven -eq 1 ]; then + shift $[ $OPTIND - 1 ] + local vhost=$1 + + if [ -z "$vhost" ]; then echo "\033[337;41m\nThe name of the vhost is required!\n\033[0m" return fi if [ -e $ZSH/plugins/nginx/templates/$tpl ]; then - template=$ZSH/plugins/nginx/templates/$tpl + local template=$ZSH/plugins/nginx/templates/$tpl elif [ -e $tpl ]; then - template=$tpl + local template=$tpl fi _vhost_generate $vhost $user @@ -149,7 +140,7 @@ _vhost_usage () { # Generate config file _vhost_generate () { - user=$(cat /etc/passwd | grep $2 | awk -F : '{print $1 }') + local user=$(cat /etc/passwd | grep $2 | awk -F : '{print $1 }') if [ ! $user ]; then echo "User \033[31m$2\033[0m doesn't have an account on \033[33m$HOST\033[0m" @@ -158,10 +149,10 @@ _vhost_generate () { echo "Generating \033[32m$1\033[0m vhost for \033[33m$user\033[0m user" - user_id=$(cat /etc/passwd | grep $2 | awk -F : '{print $3 }') - pool_port=1$user_id + local user_id=$(cat /etc/passwd | grep $2 | awk -F : '{print $3 }') + local pool_port=1$user_id - conf=$(sed -e 's/{vhost}/'$1'/g' -e 's/{user}/'$user'/g' -e 's/{pool_port}/'$pool_port'/g' $template ) + local conf=$(sed -e 's/{vhost}/'$1'/g' -e 's/{user}/'$user'/g' -e 's/{pool_port}/'$pool_port'/g' $template ) echo $conf > $1.tmp $sudo mv $1.tmp $NGINX_DIR/sites-available/$1 @@ -188,7 +179,7 @@ _write_hosts () { $sudo mv $temp /etc/hosts; - "\033[32m$1\033[0m vhost has been successfully written in /etc/hosts" + echo "\033[32m$1\033[0m vhost has been successfully written in /etc/hosts" } alias ngt="$sudo nginx -t" diff --git a/plugins/nginx/templates/symfony2 b/plugins/nginx/templates/symfony2 index 4d5754ca1..c2eeaec0a 100644 --- a/plugins/nginx/templates/symfony2 +++ b/plugins/nginx/templates/symfony2 @@ -9,7 +9,7 @@ server { access_log /var/log/nginx/{vhost}.access.log; location / { - try_files $uri $uri/ /app_dev.php; + try_files $uri $uri/ /app_dev.php$uri /app_dev.php$is_args$args; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:{pool_port} From 28d28ee6f6128b3194ac6e28839aabb9a9018c4e Mon Sep 17 00:00:00 2001 From: Alexander Surma Date: Fri, 14 Sep 2012 13:57:13 +0200 Subject: [PATCH 098/349] 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 099/349] 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 100/349] 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 b534b3806357492a19b25841c7c0ad6a416f33aa Mon Sep 17 00:00:00 2001 From: Tyler Cipriani Date: Mon, 17 Sep 2012 12:16:06 -0600 Subject: [PATCH 101/349] 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 102/349] 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 55c69017c501e30c8aa5a89104575f2863a26663 Mon Sep 17 00:00:00 2001 From: SK Date: Tue, 18 Sep 2012 22:10:11 +0700 Subject: [PATCH 103/349] 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 104/349] 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 105/349] 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 00bff0a9963d4b36e6afc968449781c727bfef3b Mon Sep 17 00:00:00 2001 From: James Smith Date: Thu, 20 Sep 2012 19:35:09 -0700 Subject: [PATCH 106/349] 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 5e0fd9bb9f8f11da1d7562f5e867a28706accb57 Mon Sep 17 00:00:00 2001 From: Martin Foot Date: Wed, 26 Sep 2012 14:16:15 +0100 Subject: [PATCH 107/349] 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 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 108/349] 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 43bd46b780cdf60b318f452e40b893ae18e77c41 Mon Sep 17 00:00:00 2001 From: Markus Scherer Date: Wed, 3 Oct 2012 17:18:14 +0200 Subject: [PATCH 109/349] 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 af21abb134c023699b2d39db4463180ebdf81a83 Mon Sep 17 00:00:00 2001 From: Paul Redmond Date: Tue, 9 Oct 2012 09:02:45 -0700 Subject: [PATCH 110/349] 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 111/349] 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 112/349] 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 113/349] 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 114/349] 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 115/349] 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 116/349] 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 117/349] 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 118/349] 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 119/349] 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 120/349] 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 121/349] 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 122/349] 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 123/349] 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 124/349] 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 125/349] 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 126/349] 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 127/349] 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 128/349] 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 129/349] 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 130/349] 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 131/349] 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 132/349] 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 133/349] 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 134/349] 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 135/349] 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 136/349] 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 137/349] 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 138/349] 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 139/349] 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 140/349] 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 141/349] 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 142/349] 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 143/349] 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 144/349] 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 145/349] 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 146/349] 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 147/349] 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 148/349] 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 149/349] 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 150/349] 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 151/349] 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 152/349] 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 153/349] 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 154/349] 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 155/349] 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 156/349] 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 157/349] 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 158/349] 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 159/349] 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 160/349] 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 161/349] 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 162/349] 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 163/349] 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 164/349] 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 165/349] 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 166/349] 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 167/349] 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 168/349] 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 169/349] 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 170/349] 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 171/349] 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 172/349] 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 173/349] 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 174/349] 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 175/349] 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 176/349] 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 177/349] 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 178/349] 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 179/349] 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 180/349] 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 181/349] 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 182/349] 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 183/349] 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 184/349] 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 185/349] 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 186/349] 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 187/349] 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 188/349] 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 189/349] 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 190/349] 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 191/349] 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 192/349] 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 193/349] 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 194/349] 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 195/349] 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 196/349] 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 197/349] 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 198/349] 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 199/349] 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 200/349] 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 From 55f09f89c8602efa6545411448e377aa87f64e7b Mon Sep 17 00:00:00 2001 From: Artie Kh Date: Thu, 13 Dec 2012 19:09:28 +0200 Subject: [PATCH 201/349] Added `verisions` option for `homebrew` completion --- plugins/brew/_brew | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/brew/_brew b/plugins/brew/_brew index 1dcf0a4bf..e43ba2900 100644 --- a/plugins/brew/_brew +++ b/plugins/brew/_brew @@ -35,6 +35,7 @@ _1st_arguments=( 'update:freshen up links' 'upgrade:upgrade outdated formulae' 'uses:show formulas which depend on a formula' + 'versions:show all available formula versions' ) local expl @@ -71,7 +72,7 @@ case "$words[1]" in _brew_installed_formulae _wanted installed_formulae expl 'installed formulae' compadd -a installed_formulae fi ;; - install|home|homepage|log|info|abv|uses|cat|deps|edit|options) + install|home|homepage|log|info|abv|uses|cat|deps|edit|options|versions) _brew_all_formulae _wanted formulae expl 'all formulae' compadd -a formulae ;; remove|rm|uninstall|unlink|cleanup|link|ln) From e4624c6a36a48dbae2d16241ee39ee14ce003f9f Mon Sep 17 00:00:00 2001 From: Isaac Wolkerstorfer Date: Fri, 21 Dec 2012 11:33:23 -0500 Subject: [PATCH 202/349] Revert "agnoster theme shows error code instead of an "x"" This reverts commit f09af5717923cca4e5c538e14846ea4816295949. It is far more aesthetically pleasing, and conveys the correct amount of information. The exact numeric status code is extremely rarely of use, and increases cognitive parsing burden on the user. (cherry picked from commit 8f664edcaf55adcc540f0fe43d4205b66e4f9fb6) --- 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 bd6f1a6a2..c3107c06c 100644 --- a/themes/agnoster.zsh-theme +++ b/themes/agnoster.zsh-theme @@ -95,7 +95,7 @@ prompt_dir() { prompt_status() { local symbols symbols=() - [[ $RETVAL -ne 0 ]] && symbols+="%{%F{red}%}$RETVAL" + [[ $RETVAL -ne 0 ]] && symbols+="%{%F{red}%}✘" [[ $UID -eq 0 ]] && symbols+="%{%F{yellow}%}⚡" [[ $(jobs -l | wc -l) -gt 0 ]] && symbols+="%{%F{cyan}%}⚙" From a09cd713b4297b6720dc7c444cdcdbd8d3b9fb1a Mon Sep 17 00:00:00 2001 From: thisiskun Date: Mon, 24 Dec 2012 17:27:23 +0800 Subject: [PATCH 203/349] add unbundled command --- 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 f9843696b..10c221acd 100644 --- a/plugins/bundler/bundler.plugin.zsh +++ b/plugins/bundler/bundler.plugin.zsh @@ -33,6 +33,7 @@ _run-with-bundler() { ## Main program for cmd in $bundled_commands; do + eval "function unbundled_$cmd () { $cmd \$@ }" eval "function bundled_$cmd () { _run-with-bundler $cmd \$@}" alias $cmd=bundled_$cmd From dde4a8b6a3aaa69feb3243bb374a0af07fb5d033 Mon Sep 17 00:00:00 2001 From: Nandor Kracser Date: Fri, 28 Dec 2012 12:28:47 +0100 Subject: [PATCH 204/349] Maven plugin completion fix for other (than Java) JVM languages --- 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 da29b4f0a..c2d8e7ed7 100644 --- a/plugins/mvn/mvn.plugin.zsh +++ b/plugins/mvn/mvn.plugin.zsh @@ -163,7 +163,7 @@ function listMavenCompletions { 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` + -Dtest= `if [ -d ./src/test/java ] ; then find ./src/test/java -type f -name '*.java' | grep -v svn | sed 's?.*/\([^/]*\)\..*?-Dtest=\1?' ; fi` ); } From d0842b431e9ebae66ae9373e9e5614341c6f5803 Mon Sep 17 00:00:00 2001 From: Filipe Chagas Date: Fri, 28 Dec 2012 17:37:48 -0200 Subject: [PATCH 205/349] Fix gitfast problem for untracket files When showing the char % for untracket files, it was not being escaped so there was shown a space in the place. It was also removing any char that was right just after. --- plugins/gitfast/git-prompt.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/gitfast/git-prompt.sh b/plugins/gitfast/git-prompt.sh index bf20491ec..afd76e86e 100644 --- a/plugins/gitfast/git-prompt.sh +++ b/plugins/gitfast/git-prompt.sh @@ -275,7 +275,7 @@ __git_ps1 () if [ -n "${GIT_PS1_SHOWUNTRACKEDFILES-}" ]; then if [ -n "$(git ls-files --others --exclude-standard)" ]; then - u="%" + u="%%" fi fi From 021e6de3237402aabd7e8bc0b99726a5149c33ef Mon Sep 17 00:00:00 2001 From: Filipe Chagas Date: Fri, 28 Dec 2012 18:04:15 -0200 Subject: [PATCH 206/349] added crcandy theme it's just the candy theme with a new line before. in order to make easier to see the result of the commands and to avoid confusing --- themes/crcandy.zsh-theme | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 themes/crcandy.zsh-theme diff --git a/themes/crcandy.zsh-theme b/themes/crcandy.zsh-theme new file mode 100644 index 000000000..0a63c1245 --- /dev/null +++ b/themes/crcandy.zsh-theme @@ -0,0 +1,8 @@ +PROMPT=$' +%{$fg_bold[green]%}%n@%m %{$fg[blue]%}%D{[%I:%M:%S]} %{$reset_color%}%{$fg[white]%}[%~]%{$reset_color%} $(git_prompt_info)\ +%{$fg[blue]%}->%{$fg_bold[blue]%} %#%{$reset_color%} ' + +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[green]%}[" +ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}*%{$fg[green]%}" +ZSH_THEME_GIT_PROMPT_CLEAN="" From 6ce08acb27f14a2e73fdbd4c92f258a7e6899f64 Mon Sep 17 00:00:00 2001 From: Artie Kh Date: Sun, 30 Dec 2012 21:18:12 +0200 Subject: [PATCH 207/349] added support for subversion 1.7 for svn plugin --- plugins/svn/svn.plugin.zsh | 110 +++++++++++++++++++++---------------- 1 file changed, 62 insertions(+), 48 deletions(-) diff --git a/plugins/svn/svn.plugin.zsh b/plugins/svn/svn.plugin.zsh index e38e8920b..4f008ba4e 100644 --- a/plugins/svn/svn.plugin.zsh +++ b/plugins/svn/svn.plugin.zsh @@ -1,62 +1,76 @@ - -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$_DISPLAY$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR$(svn_dirty)$ZSH_PROMPT_BASE_COLOR" - unset _DISPLAY +# vim:ft=zsh ts=2 sw=2 sts=2 +# +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$_DISPLAY$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR$(svn_dirty)$ZSH_PROMPT_BASE_COLOR" + unset _DISPLAY + fi } function in_svn() { - if [[ -d .svn ]]; then - echo 1 - fi + if $(svn info >/dev/null 2>&1); then + return 0 + fi + return 1 } -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 +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 } -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 +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' + fi +} + +function svn_dirty_choose() { + if in_svn; then + root=`svn info 2> /dev/null | sed -n 's/^Working Copy Root Path: //p'` + if $(svn status $root 2> /dev/null | grep -Eq '^\s*[ACDIM!?L]'); then + # Grep exits with 0 when "One or more lines were selected", return "dirty". + echo $1 else - echo $_DISPLAY + # Otherwise, no lines were found, or an error occurred. Return clean. + echo $2 fi - unset _DISPLAY + fi } -function svn_get_rev_nr { - if [ $(in_svn) ]; then - svn info 2> /dev/null | sed -n s/Revision:\ //p - fi -} - -function svn_dirty_choose { - if [ $(in_svn) ]; then - svn status 2> /dev/null | grep -Eq '^\s*[ACDIM!?L]' - 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 -} - -function svn_dirty { - svn_dirty_choose $ZSH_THEME_SVN_PROMPT_DIRTY $ZSH_THEME_SVN_PROMPT_CLEAN +function svn_dirty() { + svn_dirty_choose $ZSH_THEME_SVN_PROMPT_DIRTY $ZSH_THEME_SVN_PROMPT_CLEAN } From fa355a798c165fab65462238162c258394b1c7a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cosmin=20Lu=3F=C4=83?= Date: Mon, 31 Dec 2012 14:02:22 +0200 Subject: [PATCH 208/349] Fixed issue with NetBSD's ls --- lib/theme-and-appearance.zsh | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/theme-and-appearance.zsh b/lib/theme-and-appearance.zsh index aec67721a..351ec22b0 100644 --- a/lib/theme-and-appearance.zsh +++ b/lib/theme-and-appearance.zsh @@ -7,7 +7,14 @@ export LSCOLORS="Gxfxcxdxbxegedabagacad" if [ "$DISABLE_LS_COLORS" != "true" ] then # Find the option for using colors in ls, depending on the version: Linux or BSD - ls --color -d . &>/dev/null 2>&1 && alias ls='ls --color=tty' || alias ls='ls -G' + if [[ "$(uname -s)" == "NetBSD" ]] + then + # On NetBSD, test if "gls" (GNU ls) is installed (this one supports colors); + # otherwise, leave ls as is, because NetBSD's ls doesn't support -G + gls --color -d . &>/dev/null 2>&1 && alias ls='gls --color=tty' + else + ls --color -d . &>/dev/null 2>&1 && alias ls='ls --color=tty' || alias ls='ls -G' + fi fi #setopt no_beep From c5ecb4e13691404a4555dbf6fa72fe411d463ad9 Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Mon, 31 Dec 2012 05:25:07 -0800 Subject: [PATCH 209/349] Fixes #1489 Revert "Fixed Mac OS X Terminal.app related issue with extra newlines being printed out sometimes" This reverts commit 8f89d4d5a5d584bae288d8111d83a6489a1369dc. --- lib/termsupport.zsh | 2 -- 1 file changed, 2 deletions(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index 7470110b6..c056989eb 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -8,8 +8,6 @@ function title { fi 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 3362899493662ae8295521bc8fa8eccec79c7550 Mon Sep 17 00:00:00 2001 From: Ryan Neufeld Date: Tue, 1 Jan 2013 19:51:55 -0800 Subject: [PATCH 210/349] Adding torrent tools plugin. Only one tool exists right now, that is to convert a magnetlink into a torrent file. --- plugins/torrent/torrent.plugin.zsh | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 plugins/torrent/torrent.plugin.zsh diff --git a/plugins/torrent/torrent.plugin.zsh b/plugins/torrent/torrent.plugin.zsh new file mode 100644 index 000000000..656e337de --- /dev/null +++ b/plugins/torrent/torrent.plugin.zsh @@ -0,0 +1,17 @@ +# +# Algorithm borrowed from http://wiki.rtorrent.org/MagnetUri and adapted to work with zsh. +# + +function magnet_to_torrent() { + [[ "$1" =~ xt=urn:btih:([^\&/]+) ]] || return 1 + + hashh=${match[1]} + + if [[ "$1" =~ dn=([^\&/]+) ]];then + filename=${match[1]} + else + filename=$hashh + fi + + echo "d10:magnet-uri${#1}:${1}e" > "$filename.torrent" +} \ No newline at end of file From 003dd8f4b68062b7fd5e4e1725264189ee56e28a Mon Sep 17 00:00:00 2001 From: Greg Berenfield Date: Wed, 2 Jan 2013 16:20:22 -0500 Subject: [PATCH 211/349] fix for Issue 1479 --- plugins/vi-mode/vi-mode.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/vi-mode/vi-mode.plugin.zsh b/plugins/vi-mode/vi-mode.plugin.zsh index f91be70e4..27fb47c97 100644 --- a/plugins/vi-mode/vi-mode.plugin.zsh +++ b/plugins/vi-mode/vi-mode.plugin.zsh @@ -7,11 +7,11 @@ function zle-keymap-select zle-line-init zle-line-finish { case "$0" in (zle-line-init) # Enable terminal application mode. - echoti smkx + printf '%s' ${terminfo[smkx]} ;; (zle-line-finish) # Disable terminal application mode. - echoti rmkx + printf '%s' ${terminfo[rmkx]} ;; esac fi From 93c90a6bf5817d09e978bd720eaa7f9be971a1c6 Mon Sep 17 00:00:00 2001 From: Greg Berenfield Date: Wed, 2 Jan 2013 19:14:57 -0500 Subject: [PATCH 212/349] Fix the fix for Issue #1479 --- plugins/vi-mode/vi-mode.plugin.zsh | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/plugins/vi-mode/vi-mode.plugin.zsh b/plugins/vi-mode/vi-mode.plugin.zsh index 27fb47c97..a06100472 100644 --- a/plugins/vi-mode/vi-mode.plugin.zsh +++ b/plugins/vi-mode/vi-mode.plugin.zsh @@ -3,18 +3,13 @@ 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. - printf '%s' ${terminfo[smkx]} - ;; - (zle-line-finish) - # Disable terminal application mode. - printf '%s' ${terminfo[rmkx]} - ;; - esac + if (( ${+terminfo[smkx]} )); then + printf '%s' ${terminfo[smkx]} fi + if (( ${+terminfo[rmkx]} )); then + printf '%s' ${terminfo[rmkx]} + fi + zle reset-prompt zle -R } From c5d575ccae5ae5f30dd59037210edb8220de2cbe Mon Sep 17 00:00:00 2001 From: mikka Date: Thu, 3 Jan 2013 07:07:40 +0100 Subject: [PATCH 213/349] cleaned up --- plugins/lesscss/lesscss.plugin.zsh | 46 ------- plugins/nginx/nginx.plugin.zsh | 186 ----------------------------- plugins/nginx/templates/plain_php | 27 ----- plugins/nginx/templates/symfony2 | 27 ----- plugins/php-fpm/php-fpm.plugin.zsh | 75 ------------ plugins/php-fpm/templates/pool | 11 -- 6 files changed, 372 deletions(-) delete mode 100644 plugins/lesscss/lesscss.plugin.zsh delete mode 100644 plugins/nginx/nginx.plugin.zsh delete mode 100644 plugins/nginx/templates/plain_php delete mode 100644 plugins/nginx/templates/symfony2 delete mode 100644 plugins/php-fpm/php-fpm.plugin.zsh delete mode 100644 plugins/php-fpm/templates/pool diff --git a/plugins/lesscss/lesscss.plugin.zsh b/plugins/lesscss/lesscss.plugin.zsh deleted file mode 100644 index 6c666adb2..000000000 --- a/plugins/lesscss/lesscss.plugin.zsh +++ /dev/null @@ -1,46 +0,0 @@ -# basics taken from here: -# http://www.ravelrumba.com/blog/watch-compile-less-command-line/comment-page-1/#comment-2464 -# Requires watchr: https://github.com/mynyml/watchr - -watchless () { - compressed=0 - compile="" - - while getopts ":xc:h" option - do - case $option in - x ) compressed=1 ;; - c ) compile=$OPTARG ;; - h ) _watchless_usage; return ;; - esac - done - - if [ $compressed -eq 1 ]; then - x=' -x' - else - x='' - fi - - if [ -n "$compile" ]; then - if [ ! -e $compile ]; then - echo "\033[337;41m\n$compile doesn't exist!\n\033[0m" - return - fi - - name=$(echo $compile | cut -d . -f 1) - - watchr -e 'watch(".*\.less$") { |f| system("lessc '$name'.less > '$name'.css'$x' && echo \"'$name'.less > '$name'.css\" ") }' - else - watchr -e 'watch(".*\.less$") { |f| system("lessc #{f[0]} > $(echo #{f[0]} | cut -d\. -f1).css'$x' && echo \"#{f[0]} > $(echo #{f[0]} | cut -d\. -f1).css\" ") }' - fi -} - -_watchless_usage () { - echo "Usage: watchless [options]" - echo - echo "Options" - echo " -x Compiles less files into minified css files" - echo " -c Watch all files but compile only the one given here" - echo " -h Get this help message" - return -} diff --git a/plugins/nginx/nginx.plugin.zsh b/plugins/nginx/nginx.plugin.zsh deleted file mode 100644 index 4d2c4122d..000000000 --- a/plugins/nginx/nginx.plugin.zsh +++ /dev/null @@ -1,186 +0,0 @@ -: ${NGINX_DIR:=/etc/nginx} -: ${NGINX_VHOST_TEMPLATE:=$ZSH/plugins/nginx/templates/symfony2} - -if [ $use_sudo -eq 1 ]; then - sudo="sudo" -else - sudo="" -fi - -# nginx basic completition - -_nginx_get_en_command_list () { - ls -a $NGINX_DIR/sites-available | awk '/^[a-z][a-z.-]+$/ { print $1 }' -} - -_nginx_get_dis_command_list () { - ls -a $NGINX_DIR/sites-enabled | awk '/^[a-z][a-z.-]+$/ { print $1 }' -} - -_nginx_en () { - compadd `_nginx_get_en_command_list` -} - -_nginx_dis () { - compadd `_nginx_get_dis_command_list` -} - -# Enabling a site -en () { - if [ ! $1 ]; then - echo "\033[337;41m\nThe name of the vhost is required!\n\033[0m"; - return - fi - - if [ ! -e $NGINX_DIR/sites-available/$1 ]; then - echo "\033[31m$1\033[0m doesn't exist"; - return - fi - - if [ ! -e $NGINX_DIR/sites-enabled/$1 ]; then - $sudo ln -s $NGINX_DIR/sites-available/$1 $NGINX_DIR/sites-enabled/$1; - if [ -e /etc/nginx/sites-enabled/$1 ]; then - echo "\033[32m$1\033[0m successfully enabled"; - else - echo "An error occured during the enabling of \033[31m$1\033[0m"; - fi - else - echo "\033[31m$1\033[0m is already enabled"; - fi -} -compdef _nginx_en en - -# Disabling a site -dis () { - if [ ! $1 ]; then - echo "\033[337;41m\nThe name of the vhost is required!\n\033[0m"; - return - fi - - if [ ! -e $NGINX_DIR/sites-enabled/$1 ]; then - echo "\033[31m$1\033[0m doesn't exist"; - else - $sudo rm -f $NGINX_DIR/sites-enabled/$1; - if [ ! -e $NGINX_DIR/sites-enabled/$1 ]; then - echo "\033[32m$1\033[0m successfully disabled"; - else - echo "An error occured during the disabling of \033[31m$1\033[0m"; - fi - fi -} -compdef _nginx_dis dis - -# Completition of vhost -_nginx_get_possible_vhost_list () { - ls -a $HOME/www | awk '/^[^.][a-z0-9._]+$/ { print $1 }' -} - -_nginx_vhost () { - compadd `_nginx_get_possible_vhost_list` -} - -# Parsing arguments -vhost () { - local user=$USER; - local template=$NGINX_VHOST_TEMPLATE - local tpl="non_existing_template" - local enable=1 - local write_hosts=0 - - while getopts ":lu:t:nwh" option - do - case $option in - l ) ls $NGINX_DIR/sites-enabled; return ;; - u ) user=$OPTARG ;; - t ) tpl=$OPTARG ;; - n ) enable=0 ;; - w ) write_hosts=1 ;; - h ) _vhost_usage; return ;; - esac - done - - shift $[ $OPTIND - 1 ] - local vhost=$1 - - if [ -z "$vhost" ]; then - echo "\033[337;41m\nThe name of the vhost is required!\n\033[0m" - return - fi - - if [ -e $ZSH/plugins/nginx/templates/$tpl ]; then - local template=$ZSH/plugins/nginx/templates/$tpl - elif [ -e $tpl ]; then - local template=$tpl - fi - - _vhost_generate $vhost $user - - if [ $enable -eq 1 ]; then - en $vhost - fi - - if [ $write_hosts -eq 1 ]; then - _write_hosts $vhost - fi -} -compdef _nginx_vhost vhost - -_vhost_usage () { - echo "Usage: vhost [options] [vhost_name]" - echo - echo "Options" - echo " -l Lists enabled vhosts" - echo " -u Sets the user - defaults to the current user ($USER)" - echo " -t Sets the template" - echo " -n Does not enable the generated vhost" - echo " -w Write the vhost to the /etc/hosts file pointing to 127.0.0.1 (writes it at the end of the first line actually)" - echo " -h Get this help message" - return -} - -# Generate config file -_vhost_generate () { - local user=$(cat /etc/passwd | grep $2 | awk -F : '{print $1 }') - - if [ ! $user ]; then - echo "User \033[31m$2\033[0m doesn't have an account on \033[33m$HOST\033[0m" - return - fi - - echo "Generating \033[32m$1\033[0m vhost for \033[33m$user\033[0m user" - - local user_id=$(cat /etc/passwd | grep $2 | awk -F : '{print $3 }') - local pool_port=1$user_id - - local conf=$(sed -e 's/{vhost}/'$1'/g' -e 's/{user}/'$user'/g' -e 's/{pool_port}/'$pool_port'/g' $template ) - - echo $conf > $1.tmp - $sudo mv $1.tmp $NGINX_DIR/sites-available/$1 - - if [ -e $NGINX_DIR/sites-available/$1 ]; then - echo "\033[32m$1\033[0m vhost has been successfully created" - else - echo "An error occured during the creating of \033[31m$1\033[0m vhost" - fi -} - -# Write the /etc/hosts file -_write_hosts () { - temp=$HOME/hosts.temp - exec < /etc/hosts - while read line - do - if [ -e $temp ]; then - echo "$line" >> $temp; - else - echo "$line $1" > $temp; - fi - done - - $sudo mv $temp /etc/hosts; - - echo "\033[32m$1\033[0m vhost has been successfully written in /etc/hosts" -} - -alias ngt="$sudo nginx -t" -alias ngr="$sudo service nginx restart" diff --git a/plugins/nginx/templates/plain_php b/plugins/nginx/templates/plain_php deleted file mode 100644 index f7995f5d5..000000000 --- a/plugins/nginx/templates/plain_php +++ /dev/null @@ -1,27 +0,0 @@ -server { - root /home/{user}/www/{vhost}; - index index.php; - - server_name {vhost}; - - error_log /var/log/nginx/{vhost}.error.log; - access_log /var/log/nginx/{vhost}.access.log; - - location / { - try_files $uri $uri/ $uri/index.php; - } - - location ~ \.php$ { - include fastcgi_params; - fastcgi_index index.php; - fastcgi_pass 127.0.0.1:{pool_port}; - fastcgi_split_path_info ^(.+\.php)(/.*)$; - - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; - fastcgi_param HTTPS off; - } - - location ~ /\.ht { - deny all; - } -} diff --git a/plugins/nginx/templates/symfony2 b/plugins/nginx/templates/symfony2 deleted file mode 100644 index c2eeaec0a..000000000 --- a/plugins/nginx/templates/symfony2 +++ /dev/null @@ -1,27 +0,0 @@ -server { - root /home/{user}/www/{vhost}/web; - index app_dev.php; - - server_name {vhost}; - client_max_body_size 10M; - - error_log /var/log/nginx/{vhost}.error.log; - access_log /var/log/nginx/{vhost}.access.log; - - location / { - try_files $uri $uri/ /app_dev.php$uri /app_dev.php$is_args$args; - } - - # pass the PHP scripts to FastCGI server listening on 127.0.0.1:{pool_port} - location ~ ^/(app|app_dev|check)\.php(/|$) { - fastcgi_pass 127.0.0.1:{pool_port}; - fastcgi_split_path_info ^(.+\.php)(/.*)$; - include fastcgi_params; - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; - fastcgi_param HTTPS off; - } - - location ~ /\.ht { - deny all; - } -} diff --git a/plugins/php-fpm/php-fpm.plugin.zsh b/plugins/php-fpm/php-fpm.plugin.zsh deleted file mode 100644 index 3c095058a..000000000 --- a/plugins/php-fpm/php-fpm.plugin.zsh +++ /dev/null @@ -1,75 +0,0 @@ -: ${FPM_DIR:=/etc/php5/fpm} - -if [ $use_sudo -eq 1 ]; then - sudo="sudo" -else - sudo="" -fi - -_fpm_get_possible_pool_list () { - cat /etc/passwd | awk -F : '{print $1 }' -} - -_fpm_pool () { - compadd `_fpm_get_possible_pool_list` - -} - -pool () { - while getopts ":lh" option - do - case $option in - l ) ls $FPM_DIR/pool.d; return ;; - h ) _pool_usage; return ;; - * ) _pool_usage; return ;; # Default. - esac - done - - if [ ! $1 ]; then - user=$USER - else - user=$1 - fi - - _pool_generate $user -} -compdef _fpm_pool pool - -_pool_usage () { - echo "Usage: pool [options] [user]" - echo - echo "Options" - echo " -l Lists fpm pools" - echo " -h Get this help message" - return -} - -_pool_generate () { - user=$(cat /etc/passwd | grep $1 | awk -F : '{print $1 }') - - if [ ! $user ]; then - echo "User \033[31m$1\033[0m doesn't have an account on \033[33m$HOST\033[0m" - return - fi - - group=$(groups $user | cut -d " " -f 3) - - echo "Generating pool for \033[33m$user\033[0m user with \033[33m$group\033[0m group" - - user_id=$(cat /etc/passwd | grep $1 | awk -F : '{print $3 }') - pool_port=1$user_id - : ${FPM_POOL_TEMPLATE:=$ZSH/plugins/php-fpm/templates/pool} - - conf=$(sed -e 's/{user}/'$user'/g' -e 's/{group}/'$group'/g' -e 's/{pool_port}/'$pool_port'/g' $FPM_POOL_TEMPLATE ) - - echo $conf > $user.conf - $sudo mv $user.conf $FPM_DIR/pool.d/$user.conf - - if [ -e $FPM_DIR/pool.d/$user.conf ]; then - echo "Pool for \033[32m$user\033[0m user has been successfully created" - else - echo "An error occured during the creating of pool for \033[31m$user\033[0m user" - fi -} - -alias fpmr="$sudo service php5-fpm restart" diff --git a/plugins/php-fpm/templates/pool b/plugins/php-fpm/templates/pool deleted file mode 100644 index 80f6693e0..000000000 --- a/plugins/php-fpm/templates/pool +++ /dev/null @@ -1,11 +0,0 @@ -[{user}] -user = {user} -group = {group} - -listen = 127.0.0.1:{pool_port} - -pm = dynamic -pm.max_children = 10 -pm.min_spare_servers = 1 -pm.max_spare_servers = 3 -pm.max_requests = 100 From df7cae0f4fdd8221d6cf256cc29c48b1d0d54dbd Mon Sep 17 00:00:00 2001 From: mikka Date: Thu, 3 Jan 2013 07:18:38 +0100 Subject: [PATCH 214/349] moved bower plugin to a separate branch --- plugins/bower/bower.plugin.zsh | 38 ++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 plugins/bower/bower.plugin.zsh diff --git a/plugins/bower/bower.plugin.zsh b/plugins/bower/bower.plugin.zsh new file mode 100644 index 000000000..ed9c04840 --- /dev/null +++ b/plugins/bower/bower.plugin.zsh @@ -0,0 +1,38 @@ +alias bi="bower install" +alias bl="bower list" +alias bs="bower search" + +bower_package_list='' + +_bower () +{ + local curcontext="$curcontext" state line + typeset -A opt_args + + _arguments -C \ + ':command:->command' \ + '*::options:->options' + + case $state in + (command) + + local -a subcommands + subcommands=(${=$(bower help | grep help | sed -e 's/,//g')}) + _describe -t commands 'bower' subcommands + ;; + + (options) + case $line[1] in + + (install) + if [ -z "$bower_package_list" ];then + bower_package_list=$(bower search | awk 'NR > 2' | cut -d '-' -f 2 | cut -d ' ' -f 2 | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g") + fi + compadd "$@" $(echo $bower_package_list) + ;; + esac + ;; + esac +} + +compdef _bower bower From e5736d39103c59b115270dcf91d31419d3f08130 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cosmin=20Lu=3F=C4=83?= Date: Thu, 3 Jan 2013 14:44:17 +0200 Subject: [PATCH 215/349] Fixed coding style --- lib/theme-and-appearance.zsh | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/lib/theme-and-appearance.zsh b/lib/theme-and-appearance.zsh index 351ec22b0..2677615c0 100644 --- a/lib/theme-and-appearance.zsh +++ b/lib/theme-and-appearance.zsh @@ -7,13 +7,12 @@ export LSCOLORS="Gxfxcxdxbxegedabagacad" if [ "$DISABLE_LS_COLORS" != "true" ] then # Find the option for using colors in ls, depending on the version: Linux or BSD - if [[ "$(uname -s)" == "NetBSD" ]] - then - # On NetBSD, test if "gls" (GNU ls) is installed (this one supports colors); - # otherwise, leave ls as is, because NetBSD's ls doesn't support -G - gls --color -d . &>/dev/null 2>&1 && alias ls='gls --color=tty' + if [[ "$(uname -s)" == "NetBSD" ]]; then + # On NetBSD, test if "gls" (GNU ls) is installed (this one supports colors); + # otherwise, leave ls as is, because NetBSD's ls doesn't support -G + gls --color -d . &>/dev/null 2>&1 && alias ls='gls --color=tty' else - ls --color -d . &>/dev/null 2>&1 && alias ls='ls --color=tty' || alias ls='ls -G' + ls --color -d . &>/dev/null 2>&1 && alias ls='ls --color=tty' || alias ls='ls -G' fi fi From 692dca07158413ae27b2064c303240f5b9621cff Mon Sep 17 00:00:00 2001 From: Stephen Zhuang Date: Sun, 6 Jan 2013 14:08:12 +0800 Subject: [PATCH 216/349] Add new plugin to autocomplete fabric commands --- plugins/fabric/fabric.plugin.zsh | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 plugins/fabric/fabric.plugin.zsh diff --git a/plugins/fabric/fabric.plugin.zsh b/plugins/fabric/fabric.plugin.zsh new file mode 100644 index 000000000..d44e2d916 --- /dev/null +++ b/plugins/fabric/fabric.plugin.zsh @@ -0,0 +1,8 @@ +#compdef fab + +_fab_list() { + reply=(`fab --shortlist`) +} +compctl -K _fab_list fab + +# DECLARION: This plugin was created by kennethreitz. What I did is just making a portal from https://github.com/kennethreitz-archive/fabric-zsh-completion. From 22da0a00b8a05652c08ba6744962c572746462ae Mon Sep 17 00:00:00 2001 From: goofansu Date: Tue, 8 Jan 2013 13:34:33 +0800 Subject: [PATCH 217/349] Add rebar to plugin --- plugins/rebar/_rebar | 79 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 plugins/rebar/_rebar diff --git a/plugins/rebar/_rebar b/plugins/rebar/_rebar new file mode 100644 index 000000000..7ac5a510c --- /dev/null +++ b/plugins/rebar/_rebar @@ -0,0 +1,79 @@ +#compdef rebar + +local curcontext=$curcontext state ret=1 +typeset -ga _rebar_global_opts + +_rebar_global_opts=( + '(--help -h)'{--help,-h}'[Show the program options]' + '(--commands -c)'{--commands,-c}'[Show available commands]' + '(--version -V)'{--version,-V}'[Show version information]' + '(-vvv -vv -v)'--verbose+'[Verbosity level. Default: 0]:verbosity level:(0 1 2 3)' + '(-vvv)-v[Slightly more verbose output]' + '(-vvv)-vv[More verbose output]' + '(-v -vv)-vvv[Most verbose output]' + '(--force -f)'{--force,-f}'[Force]' + '-D+[Define compiler macro]' + '(--jobs -j)'{--jobs+,-j+}'[Number of concurrent workers a command may use. Default: 3]:workers:(1 2 3 4 5 6 7 8 9)' + '(--config -C)'{--config,-C}'[Rebar config file to use]:files:_files' + '(--profile -p)'{--profile,-p}'[Profile this run of rebar]' + '(--keep-going -k)'{--keep-going,-k}'[Keep running after a command fails]' +) + +_rebar () { + _arguments -C $_rebar_global_opts \ + '*::command and variable:->cmd_and_var' \ + && return + + case $state in + cmd_and_var) + _values -S = 'variables' \ + 'clean[Clean]' \ + 'compile[Compile sources]' \ + 'create[Create skel based on template and vars]' \ + 'create-app[Create simple app skel]' \ + 'create-node[Create simple node skel]' \ + 'list-template[List avaiavle templates]' \ + 'doc[Generate Erlang program documentation]' \ + 'check-deps[Display to be fetched dependencies]' \ + 'get-deps[Fetch dependencies]' \ + 'update-deps[Update fetched dependencies]' \ + 'delete-deps[Delete fetched dependencies]' \ + 'list-deps[List dependencies]' \ + 'generate[Build release with reltool]' \ + 'overlay[Run reltool overlays only]' \ + 'generate-appups[Generate appup files]' \ + 'generate-upgrade[Build an upgrade package]' \ + 'eunit[Run eunit tests]' \ + 'ct[Run common_test suites]' \ + 'qc[Test QuickCheck properties]' \ + 'xref[Run cross reference analysis]' \ + 'help[Show the program options]' \ + 'version[Show version information]' \ + 'apps[Application names to process]:' \ + 'case[Common Test case]:' \ + 'dump_spec[Dump reltool spec]:' \ + 'jobs[Number of workers]::workers:(0 1 2 3 4 5 6 7 8 9)' \ + 'suites[Common Test suites]::suite name:_path_files -W "(src test)" -g "*.erl(:r)"' \ + 'verbose[Verbosity level]::verbosity level:(0 1 2 3)' \ + 'appid[Application id]:' \ + 'previous_release[Previous release path]:' \ + 'nodeid[Node id]:' \ + 'root_dir[Reltool config root directory]::directory:_files -/' \ + 'skip_deps[Skip deps]::flag:(true false)' \ + 'skip_apps[Application names to not process]::flag:(true false)' \ + 'template[Template name]:' \ + 'template_dir[Template directory]::directory:_files -/' \ + && ret=0 + ;; + esac +} + +_rebar + +# Local variables: +# mode: shell-script +# sh-basic-offset: 2 +# sh-indent-comment: t +# indent-tabs-mode: nil +# End: +# ex: sw=2 ts=2 et filetype=sh From cd9c47430349826d4461d7c9e73f6c58e567f01b Mon Sep 17 00:00:00 2001 From: Stephen Zhuang Date: Thu, 10 Jan 2013 13:56:55 +0800 Subject: [PATCH 218/349] Update to a better fab compeletion script. --- plugins/fabric/_fab | 60 ++++++++++++++++++++++++++++++++ plugins/fabric/fabric.plugin.zsh | 9 +---- 2 files changed, 61 insertions(+), 8 deletions(-) create mode 100644 plugins/fabric/_fab diff --git a/plugins/fabric/_fab b/plugins/fabric/_fab new file mode 100644 index 000000000..9628e1224 --- /dev/null +++ b/plugins/fabric/_fab @@ -0,0 +1,60 @@ +#compdef fab +#autoload + +local curcontext=$curcontext state line +declare -A opt_args + +declare target_list +target_list=(`fab --shortlist 2>/dev/null`) + +_targets() { + _describe -t commands "fabric targets" target_list +} + +output_levels=( + 'status: Status messages, i.e. noting when Fabric is done running, if the user used a keyboard interrupt, or when servers are disconnected from. These messages are almost always relevant and rarely verbose.' + 'aborts: Abort messages. Like status messages, these should really only be turned off when using Fabric as a library, and possibly not even then. Note that even if this output group is turned off, aborts will still occur – there just won’t be any output about why Fabric aborted!' + 'warnings: Warning messages. These are often turned off when one expects a given operation to fail, such as when using grep to test existence of text in a file. If paired with setting env.warn_only to True, this can result in fully silent warnings when remote programs fail. As with aborts, this setting does not control actual warning behavior, only whether warning messages are printed or hidden.' + 'running: Printouts of commands being executed or files transferred, e.g. [myserver] run: ls /var/www. Also controls printing of tasks being run, e.g. [myserver] Executing task ''foo''.' + 'stdout: Local, or remote, stdout, i.e. non-error output from commands.' + 'stderr: Local, or remote, stderr, i.e. error-related output from commands.' + 'user: User-generated output, i.e. local output printed by fabfile code via use of the fastprint or puts functions.' +) + +_arguments -w -S -C \ + '(-)'{-h,--help}'[show this help message and exit]: :->noargs' \ + '(-)'{-V,--version}'[show program''s version number and exit]: :->noargs' \ + '(-)--list[print list of possible commands and exit]: :->noargs' \ + '(-)--shortlist[print non-verbose list of possible commands and exit]: :->noargs' \ + '(--reject-unknown-hosts)--reject-unknown-hosts[reject unknown hosts]' \ + '(--no-pty)--no-pty[do not use pseudo-terminal in run/sudo]' \ + "(-d+ --display=-)"{-d+,--display=-}"[print detailed info about a given command]: :_targets" \ + '(-D --disable-known-hosts)'{-D,--disable-known-hosts}'[do not load user known_hosts file]' \ + '(-r --reject-unknown-hosts)'{-r,--reject-unknown-hosts}'[reject unknown hosts]' \ + '(-u+ --user=-)'{-u+,--user=-}'[username to use when connecting to remote hosts]: :' \ + '(-p+ --password=-)'{-p+,--password=-}'[password for use with authentication and/or sudo]: :' \ + '(-H+ --hosts=-)'{-H+,--hosts=-}'[comma separated list of hosts to operate on]: :' \ + '(-R+ --roles=-)'{-R+,--roles=-}'[comma separated list of roles to operate on]: :' \ + '(-a --no-agent)'{-a,--no-agent}'[don''t use the running SSH agent]' \ + '(-k --no-keys)'{-k,--no-keys}'[don''t load private key files from ~/.ssh/]' \ + '(-w --warn-only)'{-w,--warn-only}'[warn instead of abort, when commands fail]' \ + '-i+[path to SSH private key file. May be repeated]: :_files' \ + "(-f+ --fabfile=)"{-f+,--fabfile=}"[Python module file to import]: :_files -g *.py" \ + '(-c+ --config=-)'{-c+,--config=-}'[specify location of config file to use]: :_files' \ + '(-s+ --shell=-)'{-s+,--shell=-}'[specify a new shell, defaults to ''/bin/bash -l -c'']: :' \ + '(--hide=-)--hide=-[comma-separated list of output levels to hide]: :->levels' \ + '(--show=-)--show=-[comma-separated list of output levels to show]: :->levels' \ + '*::: :->subcmds' && return 0 + +if [[ CURRENT -ge 1 ]]; then + case $state in + noargs) + _message "nothing to complete";; + levels) + _describe -t commands "output levels" output_levels;; + *) + _targets;; + esac + + return +fi diff --git a/plugins/fabric/fabric.plugin.zsh b/plugins/fabric/fabric.plugin.zsh index d44e2d916..aca411329 100644 --- a/plugins/fabric/fabric.plugin.zsh +++ b/plugins/fabric/fabric.plugin.zsh @@ -1,8 +1 @@ -#compdef fab - -_fab_list() { - reply=(`fab --shortlist`) -} -compctl -K _fab_list fab - -# DECLARION: This plugin was created by kennethreitz. What I did is just making a portal from https://github.com/kennethreitz-archive/fabric-zsh-completion. +# DECLARION: This plugin was created by vhbit. What I did is just making a portal from https://github.com/vhbit/fabric-zsh-autocomplete. From 615e41b0ecdb25acba513fd09619bd56c2eb24eb Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Tue, 15 Jan 2013 06:45:27 -0800 Subject: [PATCH 219/349] Adding MIT-LICENSE Closes #655 --- MIT-LICENSE.txt | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 MIT-LICENSE.txt diff --git a/MIT-LICENSE.txt b/MIT-LICENSE.txt new file mode 100644 index 000000000..f6edab65b --- /dev/null +++ b/MIT-LICENSE.txt @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2009-2013 Robby Russell and contributors (see https://github.com/robbyrussell/oh-my-zsh/contributors) + +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: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +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. From 8e9cf45200391db787b3a25ae00f4352d7a11e8e Mon Sep 17 00:00:00 2001 From: Yohann Bianchi Date: Sat, 19 Jan 2013 00:52:09 +0100 Subject: [PATCH 220/349] ADDED: Mercurial repository info --- themes/agnoster.zsh-theme | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/themes/agnoster.zsh-theme b/themes/agnoster.zsh-theme index c3107c06c..7ce5a77f8 100644 --- a/themes/agnoster.zsh-theme +++ b/themes/agnoster.zsh-theme @@ -83,6 +83,25 @@ prompt_git() { fi } +prompt_hg() { + local rev status + if $(hg id >/dev/null 2>&1); then + if $(hg prompt >/dev/null 2>&1); then + rev=$(hg prompt {status}) + if [[ $rev = "?" ]]; then + prompt_segment red white + rev='±' + elif [[ -n $rev ]]; then + prompt_segment yellow black + rev='±' + else + prompt_segment green black + fi + fi + echo -n $(hg prompt "⭠ {rev}@{branch}") $rev + fi +} + # Dir: current working directory prompt_dir() { prompt_segment blue black '%~' @@ -109,6 +128,7 @@ build_prompt() { prompt_context prompt_dir prompt_git + prompt_hg prompt_end } From 28b737416fe1eadd1a0e0bad460941651ac20e49 Mon Sep 17 00:00:00 2001 From: Yohann Bianchi Date: Sun, 20 Jan 2013 13:10:31 +0100 Subject: [PATCH 221/349] ADDED: Mercurial prompt info support even if hg prompt extension is unavailable --- themes/agnoster.zsh-theme | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/themes/agnoster.zsh-theme b/themes/agnoster.zsh-theme index 7ce5a77f8..e2074b713 100644 --- a/themes/agnoster.zsh-theme +++ b/themes/agnoster.zsh-theme @@ -87,18 +87,35 @@ prompt_hg() { local rev status if $(hg id >/dev/null 2>&1); then if $(hg prompt >/dev/null 2>&1); then - rev=$(hg prompt {status}) - if [[ $rev = "?" ]]; then + st=$(hg prompt {status}) + if [[ $st = "?" ]]; then + # if files are not added prompt_segment red white - rev='±' - elif [[ -n $rev ]]; then + st='±' + elif [[ -n $st ]]; then + # if any modification prompt_segment yellow black - rev='±' + st='±' + else + # if working copy is clean + prompt_segment green black + fi + echo -n $(hg prompt "⭠ {rev}@{branch}") $st + else + st="" + rev=$(hg id -n 2>/dev/null | sed 's/[^-0-9]//g') + branch=$(hg id -b 2>/dev/null) + if `hg st | grep -Eq "^\?"`; then + prompt_segment red black + st='±' + elif `hg st | grep -Eq "^(M|A)"`; then + prompt_segment yellow black + st='±' else prompt_segment green black fi + echo -n "⭠ $rev@$branch" $st fi - echo -n $(hg prompt "⭠ {rev}@{branch}") $rev fi } From 4c91f6d13e32d7389cae299d96f6778451a45fc8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Serdar=20Dalg=C4=B1=C3=A7?= Date: Fri, 25 Jan 2013 12:58:55 +0200 Subject: [PATCH 222/349] Add autoenv plugin, which adopts using Kenneth Reitz's autoenv into oh-my-zsh. --- lib/directories.zsh | 3 +++ plugins/autoenv/autoenv.plugin.zsh | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 plugins/autoenv/autoenv.plugin.zsh diff --git a/lib/directories.zsh b/lib/directories.zsh index 6c743e40e..93c6c176f 100644 --- a/lib/directories.zsh +++ b/lib/directories.zsh @@ -29,6 +29,9 @@ cd () { cd ../../../.. elif [[ "x$*" == "x......" ]]; then cd ../../../../.. + elif [ -d ~/.autoenv ]; then + source ~/.autoenv/activate.sh + autoenv_cd "$@" else builtin cd "$@" fi diff --git a/plugins/autoenv/autoenv.plugin.zsh b/plugins/autoenv/autoenv.plugin.zsh new file mode 100644 index 000000000..ca5666979 --- /dev/null +++ b/plugins/autoenv/autoenv.plugin.zsh @@ -0,0 +1,18 @@ +# The use_env call below is a reusable command to activate/create a new Python +# virtualenv, requiring only a single declarative line of code in your .env files. +# It only performs an action if the requested virtualenv is not the current one. +use_env() { + typeset venv + venv="$1" + if [[ "${VIRTUAL_ENV:t}" != "$venv" ]]; then + if workon | grep -q "$venv"; then + workon "$venv" + else + echo -n "Create virtualenv $venv now? (Yn) " + read answer + if [[ "$answer" == "Y" ]]; then + mkvirtualenv "$venv" + fi + fi + fi +} From 2e213b9b8f96722d4978a80ae53849fec437eb10 Mon Sep 17 00:00:00 2001 From: Yoav Weiss Date: Sun, 27 Jan 2013 14:50:33 +0100 Subject: [PATCH 223/349] Faster dirty git status check (using git diff) --- lib/git.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/git.zsh b/lib/git.zsh index 3e14695bd..d818c742d 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -13,7 +13,7 @@ parse_git_dirty() { 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 + if [[ -n $(git diff --ignore-submodules HEAD 2> /dev/null) ]]; then echo "$ZSH_THEME_GIT_PROMPT_DIRTY" else echo "$ZSH_THEME_GIT_PROMPT_CLEAN" From 8a463b6df7048c8507f95344c3dc5d7a1355c48d Mon Sep 17 00:00:00 2001 From: Alex Date: Wed, 30 Jan 2013 00:44:42 -0500 Subject: [PATCH 224/349] Better custom theme loading oh-my-zsh.sh now also checks for $ZSH_CUSTOM/themes/$ZSH_THEME.zsh-theme when attempting to load a theme. This way custom themes can be a bit more organized in the 'custom' dir --- oh-my-zsh.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index 689a79fef..2e1d3b477 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -73,6 +73,9 @@ else if [ -f "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme" ] then source "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme" + elif [ -f "$ZSH_CUSTOM/themes/$ZSH_THEME.zsh-theme" ] + then + source "$ZSH_CUSTOM/themes/$ZSH_THEME.zsh-theme" else source "$ZSH/themes/$ZSH_THEME.zsh-theme" fi From 171a76a3c45ac031262e4eb7eaa38cc020a59812 Mon Sep 17 00:00:00 2001 From: Yoav Weiss Date: Wed, 30 Jan 2013 09:32:01 +0100 Subject: [PATCH 225/349] Closer to original status command, using SUBMODULE SYNTAX --- lib/git.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/git.zsh b/lib/git.zsh index d818c742d..ccc5d3128 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -13,7 +13,7 @@ parse_git_dirty() { if [[ $POST_1_7_2_GIT -gt 0 ]]; then SUBMODULE_SYNTAX="--ignore-submodules=dirty" fi - if [[ -n $(git diff --ignore-submodules HEAD 2> /dev/null) ]]; then + if [[ -n $(git diff ${SUBMODULE_SYNTAX} 2> /dev/null) ]]; then echo "$ZSH_THEME_GIT_PROMPT_DIRTY" else echo "$ZSH_THEME_GIT_PROMPT_CLEAN" From 6d762fa053154a10befec1a42c963fff072ebece Mon Sep 17 00:00:00 2001 From: Florent Thoumie Date: Wed, 30 Jan 2013 05:16:26 -0800 Subject: [PATCH 226/349] Add new profiles plugin. Depending on the machine you're logged into, you may want to use specific configuration. Add 'profiles' to your list of plugin will try to find a profile for the local machine and each (sub)domain it belongs to. --- plugins/profiles/profiles.plugin.zsh | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 plugins/profiles/profiles.plugin.zsh diff --git a/plugins/profiles/profiles.plugin.zsh b/plugins/profiles/profiles.plugin.zsh new file mode 100644 index 000000000..8faae6b53 --- /dev/null +++ b/plugins/profiles/profiles.plugin.zsh @@ -0,0 +1,12 @@ +# You will probably want to list this plugin as the first in your .zshrc. + +# This will look for a custom profile for the local machine and each domain or +# subdomain it belongs to. (e.g. com, example.com and foo.example.com) +parts=(${(s:.:)$(hostname)}) +for i in {${#parts}..1}; do + profile=${(j:.:)${parts[$i,${#parts}]}} + file=$ZSH_CUSTOM/profiles/$profile + if [ -f $file ]; then + source $file + fi +done From ef8e3a67f293ab3d4dfc67da5af321de7c019ca4 Mon Sep 17 00:00:00 2001 From: Matt Guindin Date: Wed, 30 Jan 2013 20:46:08 -0500 Subject: [PATCH 227/349] [agnoster] modifying theme to show dot for dirty files and plus for staged files in git repos --- themes/agnoster.zsh-theme | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/themes/agnoster.zsh-theme b/themes/agnoster.zsh-theme index c3107c06c..3ca5385be 100644 --- a/themes/agnoster.zsh-theme +++ b/themes/agnoster.zsh-theme @@ -71,7 +71,6 @@ prompt_context() { prompt_git() { local ref dirty 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)" if [[ -n $dirty ]]; then @@ -79,7 +78,19 @@ prompt_git() { else prompt_segment green black fi - echo -n "${ref/refs\/heads\//⭠ }$dirty" + + setopt promptsubst + autoload -Uz vcs_info + + zstyle ':vcs_info:*' enable git + zstyle ':vcs_info:*' get-revision true + zstyle ':vcs_info:*' check-for-changes true + zstyle ':vcs_info:*' stagedstr '✚' + zstyle ':vcs_info:git:*' unstagedstr '●' + zstyle ':vcs_info:*' formats ' %u%c' + zstyle ':vcs_info:*' actionformats '%u%c' + vcs_info + echo -n "${ref/refs\/heads\//⭠ }${vcs_info_msg_0_}" fi } From fe4c2379c4ce9f4140fd16d2ea77138061e4a109 Mon Sep 17 00:00:00 2001 From: Toon Claes Date: Mon, 4 Feb 2013 22:21:34 +0100 Subject: [PATCH 228/349] use pushdminus --- lib/directories.zsh | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/lib/directories.zsh b/lib/directories.zsh index a787db9eb..4addc08fa 100644 --- a/lib/directories.zsh +++ b/lib/directories.zsh @@ -2,6 +2,7 @@ setopt auto_name_dirs setopt auto_pushd setopt pushd_ignore_dups +setopt pushdminus alias ..='cd ..' alias cd..='cd ..' @@ -11,14 +12,14 @@ alias cd.....='cd ../../../..' alias cd/='cd /' alias 1='cd -' -alias 2='cd +2' -alias 3='cd +3' -alias 4='cd +4' -alias 5='cd +5' -alias 6='cd +6' -alias 7='cd +7' -alias 8='cd +8' -alias 9='cd +9' +alias 2='cd -2' +alias 3='cd -3' +alias 4='cd -4' +alias 5='cd -5' +alias 6='cd -6' +alias 7='cd -7' +alias 8='cd -8' +alias 9='cd -9' cd () { if [[ "x$*" == "x..." ]]; then From 631a8473e2f3f20e1414dff4e409fe07cbb41aea Mon Sep 17 00:00:00 2001 From: Toon Claes Date: Tue, 5 Feb 2013 09:45:00 +0100 Subject: [PATCH 229/349] added pj.plugin --- plugins/pj/pj.plugin.zsh | 42 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 plugins/pj/pj.plugin.zsh diff --git a/plugins/pj/pj.plugin.zsh b/plugins/pj/pj.plugin.zsh new file mode 100644 index 000000000..ba3765b83 --- /dev/null +++ b/plugins/pj/pj.plugin.zsh @@ -0,0 +1,42 @@ +#!/bin/zsh + +# +# Original idea by DefV (Jan De Poorter) +# Source: https://gist.github.com/pjaspers/368394#comment-1016 +# +# Usage: +# - Set `$PROJECT_PATHS` in your ~/.zshrc +# e.g.: PROJECT_PATHS=(~/src ~/work) +# - In ZSH you now can open a project directory with the command: `pj my-project` +# the plugin will locate the `my-project` directory in one of the $PROJECT_PATHS +# Also tab completion is supported. +# - `pjo my-project` will open the directory in $EDITOR +# + +function pj() { + cmd="cd" + file=$1 + + if [[ "open" == "$file" ]] then + file=$2 + cmd=(${(s: :)EDITOR}) + fi + + for project in $PROJECT_PATHS; do + if [[ -d $project/$file ]] then + $cmd "$project/$file" + unset project # Unset project var + return + fi + done + + echo "No such project $1" +} + +alias pjo="pj open" + +function _pj () { + compadd `/bin/ls -l $PROJECT_PATHS 2>/dev/null | awk '{ print $9 }'` +} + +compdef _pj pj From a5a6f6bb6c95422964f9fe9b8e19d1a830202733 Mon Sep 17 00:00:00 2001 From: Eric Kelly Date: Thu, 7 Feb 2013 16:26:41 -0500 Subject: [PATCH 230/349] add alias for rspec to zeus plugin --- plugins/zeus/README.md | 2 ++ plugins/zeus/zeus.plugin.zsh | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/zeus/README.md b/plugins/zeus/README.md index 4409943fe..d7c2aef80 100644 --- a/plugins/zeus/README.md +++ b/plugins/zeus/README.md @@ -25,6 +25,8 @@ * `zcu` aliases `zeus cucumber` * `zucumber` aliases `zeus cucumber` +* `zspec` aliases `zeus rspec` + * `zt` aliases `zeus test` * `zest` aliases `zeus test` diff --git a/plugins/zeus/zeus.plugin.zsh b/plugins/zeus/zeus.plugin.zsh index 2fc7e1ebf..1658b34d3 100644 --- a/plugins/zeus/zeus.plugin.zsh +++ b/plugins/zeus/zeus.plugin.zsh @@ -4,7 +4,7 @@ # 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 +# 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' @@ -40,6 +40,9 @@ alias zunner='zeus runner' alias zcu='zeus cucumber' alias zucumber='zeus cucumber' +# Rspec +alias zspec='zeus rspec' + # Test alias zt='zeus test' alias zest='zeus test' From dace87ae361722c0332c18e5470ca10f16720f7f Mon Sep 17 00:00:00 2001 From: "Jesse B. Hannah" Date: Fri, 8 Feb 2013 19:11:40 -0700 Subject: [PATCH 231/349] Fix rbenv gems helper MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes gem versions with words (beta, pre) in the version or with multiple installed versions not being highlighted, and compatibility with GNU sed (related to robbyrussell/oh-my-zsh#1579). --- plugins/rbenv/rbenv.plugin.zsh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/rbenv/rbenv.plugin.zsh b/plugins/rbenv/rbenv.plugin.zsh index d855c2445..fb9df4bdd 100644 --- a/plugins/rbenv/rbenv.plugin.zsh +++ b/plugins/rbenv/rbenv.plugin.zsh @@ -32,11 +32,11 @@ for rbenvdir in "${rbenvdirs[@]}" ; do 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" + gem list $@ | sed -E \ + -e "s/\([0-9a-z, \.]+( .+)?\)/$fg[blue]&$reset_color/g" \ + -e "s|$(echo $rbenv_path)|$fg[magenta]\$rbenv_path$reset_color|g" \ + -e "s/$current_ruby@global/$fg[yellow]&$reset_color/g" \ + -e "s/$current_ruby$current_gemset$/$fg[green]&$reset_color/g" } function rbenv_prompt_info() { From 3d81ecfb43d0da18a3b89b5aa12a78c1ad91f063 Mon Sep 17 00:00:00 2001 From: Ian MacLeod Date: Fri, 8 Feb 2013 23:00:41 -0800 Subject: [PATCH 232/349] Support for Sublime Text 3, with fallback --- plugins/sublime/sublime.plugin.zsh | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/plugins/sublime/sublime.plugin.zsh b/plugins/sublime/sublime.plugin.zsh index 1b2cbcdce..bfbc45a07 100755 --- a/plugins/sublime/sublime.plugin.zsh +++ b/plugins/sublime/sublime.plugin.zsh @@ -1,7 +1,12 @@ # Sublime Text 2 Aliases -#unamestr = 'uname' -local _sublime_darwin_subl=/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl +local _sublime_darwin_paths +_sublime_darwin_paths=( + "$HOME/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" + "$HOME/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" + "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" + "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" +) if [[ $('uname') == 'Linux' ]]; then if [ -f '/usr/bin/sublime_text' ]; then @@ -9,13 +14,15 @@ if [[ $('uname') == 'Linux' ]]; then else st_run() { nohup /usr/bin/sublime-text $@ > /dev/null & } fi -alias st=st_run + alias st=st_run + elif [[ $('uname') == 'Darwin' ]]; then - # 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 + + for _sublime_path in $_sublime_darwin_paths; do + if [[ -a $_sublime_path ]]; then + alias st="'$_sublime_path'" + fi + done fi + alias stt='st .' From 06d5cb93ab043a244e98630fdd7b7378210c9b6f Mon Sep 17 00:00:00 2001 From: Gao Xiang Date: Mon, 11 Feb 2013 11:33:24 +0800 Subject: [PATCH 233/349] new plugin: start fbterm automatically in /dev/tty* --- plugins/fbterm/fbterm.plugin.zsh | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 plugins/fbterm/fbterm.plugin.zsh diff --git a/plugins/fbterm/fbterm.plugin.zsh b/plugins/fbterm/fbterm.plugin.zsh new file mode 100644 index 000000000..4f0456016 --- /dev/null +++ b/plugins/fbterm/fbterm.plugin.zsh @@ -0,0 +1,6 @@ +# start fbterm automatically in /dev/tty* + +if [[ $(tty|grep -o '/dev/tty') = /dev/tty ]] ; then + fbterm + exit +fi From 11576dd40bfb78379724a9519081365bbd41d7a9 Mon Sep 17 00:00:00 2001 From: Yoav Weiss Date: Wed, 13 Feb 2013 11:28:13 +0100 Subject: [PATCH 234/349] Fixed dirty check to include files added to index --- lib/git.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/git.zsh b/lib/git.zsh index ccc5d3128..fde30e2b9 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -13,7 +13,7 @@ parse_git_dirty() { if [[ $POST_1_7_2_GIT -gt 0 ]]; then SUBMODULE_SYNTAX="--ignore-submodules=dirty" fi - if [[ -n $(git diff ${SUBMODULE_SYNTAX} 2> /dev/null) ]]; then + if [[ -n $(git diff ${SUBMODULE_SYNTAX} HEAD 2> /dev/null) ]]; then echo "$ZSH_THEME_GIT_PROMPT_DIRTY" else echo "$ZSH_THEME_GIT_PROMPT_CLEAN" From 9245a3086843c20ef1880f6d26720db73d5c724d Mon Sep 17 00:00:00 2001 From: Yoav Weiss Date: Wed, 13 Feb 2013 17:14:43 +0100 Subject: [PATCH 235/349] Did a full circle and went back to # On branch master # Changes to be committed: # (use "git reset HEAD ..." to unstage) # # modified: git.zsh #, ignoring untracked files, which seems to be the primary cause for slowness --- lib/git.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/git.zsh b/lib/git.zsh index fde30e2b9..ccd329665 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -13,7 +13,7 @@ parse_git_dirty() { if [[ $POST_1_7_2_GIT -gt 0 ]]; then SUBMODULE_SYNTAX="--ignore-submodules=dirty" fi - if [[ -n $(git diff ${SUBMODULE_SYNTAX} HEAD 2> /dev/null) ]]; then + if [[ -n $(git status -s ${SUBMODULE_SYNTAX} -uno 2> /dev/null) ]]; then echo "$ZSH_THEME_GIT_PROMPT_DIRTY" else echo "$ZSH_THEME_GIT_PROMPT_CLEAN" From ccdc5518f00ba3b4f35cb05a0daeb4ab4efd2268 Mon Sep 17 00:00:00 2001 From: Peter Bomars Date: Thu, 14 Feb 2013 00:18:12 -0800 Subject: [PATCH 236/349] Update plugins/rvm/rvm.plugin.zsh 1) be gentle - first git pull request 2) added ruby 2.0.0 alias and function --- plugins/rvm/rvm.plugin.zsh | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/plugins/rvm/rvm.plugin.zsh b/plugins/rvm/rvm.plugin.zsh index 1ab800b0f..5000a49b3 100644 --- a/plugins/rvm/rvm.plugin.zsh +++ b/plugins/rvm/rvm.plugin.zsh @@ -4,7 +4,8 @@ alias rubies='rvm list rubies' alias gemsets='rvm gemset list' local ruby18='ruby-1.8.7-p334' -local ruby19='ruby-1.9.3-p194' +local ruby19='ruby-1.9.3-p385' +local ruby20='ruby-2.0.0-rc2' function rb18 { if [ -z "$1" ]; then @@ -28,6 +29,17 @@ function rb19 { _rb19() {compadd `ls -1 $rvm_path/gems | grep "^$ruby19@" | sed -e "s/^$ruby19@//" | awk '{print $1}'`} compdef _rb19 rb19 +function rb20 { + if [ -z "$1" ]; then + rvm use "$ruby" + else + rvm use "$ruby20@$1" + fi +} + +_rb20() {compadd `ls -1 $rvm_path/gems | grep "^$ruby20@" | sed -e "s/^$ruby20@//" | awk '{print $1}'`} +compdef _rb20 rb20 + function rvm-update { rvm get head rvm reload # TODO: Reload rvm completion? From fb3dc24ff4aac55c5cb0cd4e448b26f223a68957 Mon Sep 17 00:00:00 2001 From: Swanand Pagnis Date: Thu, 14 Feb 2013 14:06:42 +0530 Subject: [PATCH 237/349] Support for opening tabs and windows in the same This fixed #1498 for me on Mountain Lion --- lib/termsupport.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index c056989eb..e3828da14 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -8,7 +8,7 @@ function title { 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 + elif [[ "$TERM" == xterm* ]] || [[ $TERM == rxvt* ]] || [[ $TERM == ansi ]] || [[ "$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) fi From 535fafde816b0c45521c5de2003ae9e0038cc424 Mon Sep 17 00:00:00 2001 From: Mirko Caserta Date: Fri, 15 Feb 2013 16:05:15 +0100 Subject: [PATCH 238/349] SBT and Scala plugins. The SBT (Simple Build Tool: scala-sbt.org) plugin is an original work of mine. The Scala (scala-lang.org) plugin was taken from zsh-lovers. --- plugins/sbt/_sbt | 55 ++++++++ plugins/sbt/sbt.plugin.zsh | 23 ++++ plugins/scala/_scala | 249 +++++++++++++++++++++++++++++++++++++ 3 files changed, 327 insertions(+) create mode 100644 plugins/sbt/_sbt create mode 100644 plugins/sbt/sbt.plugin.zsh create mode 100644 plugins/scala/_scala diff --git a/plugins/sbt/_sbt b/plugins/sbt/_sbt new file mode 100644 index 000000000..91372aa72 --- /dev/null +++ b/plugins/sbt/_sbt @@ -0,0 +1,55 @@ +#compdef sbt +#autoload + +local -a _sbt_commands +_sbt_commands=( + 'clean:delete files produced by the build' + 'compile:compile sources' + 'console:start the Scala REPL with project classes on the classpath' + 'console-quick:start the Scala REPL with project deps on the classpath' + 'console-project:start the Scala REPL w/sbt+build-def on the classpath' + 'dist:generate distribution artifacts' + 'dist\:clean:clean distribution artifacts' + 'doc:generate API documentation' + 'gen-idea:generate Intellij Idea project files' + 'package:produce the main artifact, such as a binary jar' + 'package-doc:produce a doc artifact, such as a jar containing API docs' + 'package-src:produce a source artifact, such as a jar containing sources' + 'publish:publish artifacts to a repository' + 'publish-local:publish artifacts to the local repository' + 'run:run a main class' + 'run-main:run the main class selected by the first argument' + 'test:execute all tests' + 'test-only:execute the tests provided as arguments' + 'test-quick:execute previously failed tests' + 'update:resolve and optionally retrieve dependencies' +) + +local expl + +_arguments \ + '(-help)-h[prints an help message]' \ + '(-h)-help[prints an help message]' \ + '(-verbose)-v[this runner is chattier]' \ + '(-v)-verbose[this runner is chattier]' \ + '(-debug)-d[set sbt log level to debug]' \ + '(-d)-debug[set sbt log level to debug]' \ + '-no-colors[disable ANSI color codes]' \ + '-sbt-create[start even if current dir contains no sbt project]' \ + '-sbt-dir[path to global settings/plugins dir (default: ~/.sbt)]' \ + '-sbt-boot[path to shared boot dir (default: ~/.sbt/boot)]' \ + '-ivy[path to local Ivy repository (default: ~/.ivy2)]' \ + '-mem[set memory options]' \ + '-no-share[use all local caches; no sharing]' \ + '-no-global[use global caches, but do not use global ~/.sbt dir]' \ + '-jvm-debug[turn on JVM debugging, open at the given port]' \ + '-batch[disable interactive mode]' \ + '-sbt-version[use the specified version of sbt]' \ + '-sbt-jar[use the specified jar as the sbt launcher]' \ + '(-sbt-snapshot)-sbt-rc[use an RC version of sbt]' \ + '(-sbt-rc)-sbt-snapshot[use a snapshot version of sbt]' \ + '-java-home[alternate JAVA_HOME]' \ + '*:: :->subcmds' && return 0 + +_describe -t commands "sbt subcommand" _sbt_commands +return diff --git a/plugins/sbt/sbt.plugin.zsh b/plugins/sbt/sbt.plugin.zsh new file mode 100644 index 000000000..203c691f5 --- /dev/null +++ b/plugins/sbt/sbt.plugin.zsh @@ -0,0 +1,23 @@ +# ------------------------------------------------------------------------------ +# FILE: sbt.plugin.zsh +# DESCRIPTION: oh-my-zsh plugin file. +# AUTHOR: Mirko Caserta (mirko.caserta@gmail.com) +# VERSION: 1.0.2 +# ------------------------------------------------------------------------------ + +# aliases - mnemonic: prefix is 'sb' +alias sbc='sbt compile' +alias sbco='sbt console' +alias sbcq='sbt console-quick' +alias sbcl='sbt clean' +alias sbcp='sbt console-project' +alias sbd='sbt doc' +alias sbdc='sbt dist:clean' +alias sbdi='sbt dist' +alias sbgi='sbt gen-idea' +alias sbp='sbt publish' +alias sbpl='sbt publish-local' +alias sbr='sbt run' +alias sbrm='sbt run-main' +alias sbu='sbt update' +alias sbx='sbt test' diff --git a/plugins/scala/_scala b/plugins/scala/_scala new file mode 100644 index 000000000..c4ccb37d3 --- /dev/null +++ b/plugins/scala/_scala @@ -0,0 +1,249 @@ +#compdef scala scalac +# ------------------------------------------------------------------------------ +# Copyright (c) 2012 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 scala and scalac (http://www.scala-lang.org/). +# +# ------------------------------------------------------------------------------ +# Authors +# ------- +# +# * Tony Sloane +# +# ------------------------------------------------------------------------------ + +typeset -A opt_args +local context state line + +_scala_features () { + compadd "postfixOps" "reflectiveCalls" "implicitConversions" "higherKinds" \ + "existentials" "experimental.macros" "_" +} + +_scala_phases () { + compadd "parser" "namer" "packageobjects" "typer" "patmat" "superaccessors" \ + "extmethods" "pickler" "refchecks" "selectiveanf" "selectivecps" "uncurry" \ + "tailcalls" "specialize" "explicitouter" "erasure" "posterasure" "lazyvals" \ + "lambdalift" "constructors" "flatten" "mixin" "cleanup" "icode" "inliner" \ + "inlineExceptionHandlers" "closelim" "dce" "jvm" "terminal" +} + +local -a shared_opts +shared_opts=( + "-bootclasspath+[Override location of bootstrap class files]:bootstrap class directory:_files -/" + "-classpath+[Specify where to find user class files]:directory:_files -/" + "-D-[Pass -Dproperty=value directly to the runtime system]" + "-d+[Destination for generated classfiles]: directory or jar file:_files" + "-dependencyfile+[Set dependency tracking file]:dependency tracking file:_files" + "-deprecation[Emit warning and location for usages of deprecated APIs]" + "-encoding+[Specify character encoding used by source files]:encoding:" + "-explaintypes[Explain type errors in more detail]" + "-extdirs+[Override location of installed extensions]:extensions directory:_files -/" + "-g\:-[Set level of generated debugging info (default\: vars)]:debugging info level:(none source line vars notailcalls)" + "-help[Print a synopsis of standard options]" + "-J-[pass argument directly to Java runtime system]:JVM argument:" + "-javabootclasspath+[Override java boot classpath]:Java boot class path directory]:_files -/" + "-javaextdirs+[Override java extdirs classpath]:Java extdirs directory:_files -/" + "-language\:-[Enable one or more language features]:feature:_scala_features" + "-no-specialization[Ignore @specialize annotations]" + "-nobootcp[Do not use the boot classpath for the scala jars]" + "-nowarn[Generate no warnings]" + "-optimise[Generate faster bytecode by applying optimisations to the program]" + "-P\:-[Pass an option to a plugin (written plugin\:opt)]:plugin option:" + "-print[Print program with Scala-specific features removed]" + "-sourcepath+[Specify location(s) of source files]:source file directory:_files -/" + "-target\:-[Target platform for object files (default\: jvm-1.5)]:platform name:(jvm-1.5 msil)" + "-toolcp+[Add to the runner classpath]:directory:_files -/" + "-unchecked[Enable detailed unchecked (erasure) warnings]" + "-uniqid[Uniquely tag all identifiers in debugging output]" + "-usejavacp[Utilize the java.class.path in classpath resolution]" + "-verbose[Output messages about what the compiler is doing]" + "-version[Print product version and exit]" + "-X[Print a synopsis of advanced options]" + "-Y[Print a synopsis of private options]" +) + +local -a X_opts +X_opts=( + "-Xcheck-null[Warn upon selection of nullable reference]" + "-Xcheckinit[Wrap field accessors to throw an exception on uninitialized access]" + "-Xdisable-assertions[Generate no assertions or assumptions]" + "-Xelide-below+[Calls to @elidable methods are omitted if method priority is lower than integer argument]" + "-Xexperimental[Enable experimental extensions]" + "-Xfatal-warnings[Fail the compilation if there are any warnings]" + "-Xfull-lubs[Retains pre 2.10 behavior of less aggressive truncation of least upper bounds]" + "-Xfuture[Turn on future language features]" + "-Xgenerate-phase-graph+[Generate the phase graphs (outputs .dot files) to fileX.dot]:output file:_files" + "-Xlint[Enable recommended additional warnings]" + "-Xlog-free-terms[Print a message when reification creates a free term]" + "-Xlog-free-types[Print a message when reification resorts to generating a free type]" + "-Xlog-implicits[Show more detail on why some implicits are not applicable]" + "-Xlog-implicit-conversions[Print a message whenever an implicit conversion is inserted]" + "-Xlog-reflective-calls[Print a message when a reflective method call is generated]" + "-Xmacro-settings\:-[Custom settings for macros]:option" + "-Xmain-class+[Class for manifest's Main-Class entry (only useful with -d jar)]:path:" + "-Xmax-classfile-name+[Maximum filename length for generated classes]" + "-Xmigration[Warn about constructs whose behavior may have changed]" + "-Xno-forwarders[Do not generate static forwarders in mirror classes]" + "-Xno-patmat-analysis[Don't perform exhaustivity/unreachability analysis. Also, ignore @switch annotation]" + "-Xno-uescape[Disable handling of \u unicode escapes]" + "-Xnojline[Do not use JLine for editing]" + "-Xoldpatmat[Use the pre-2.10 pattern matcher. Otherwise, the 'virtualizing' pattern matcher is used in 2.10]" + "-Xprint\:-[Print out program after ]:phase name:_scala_phases" + "-Xprint-icode\:-[Log internal icode to *.icode files after phase (default\: icode)]:phase name:_scala_phases" + "-Xprint-pos[Print tree positions, as offsets]" + "-Xprint-types[Print tree types (debugging option)]" + "-Xprompt[Display a prompt after each error (debugging option)]" + "-Xresident[Compiler stays resident: read source filenames from standard input]" + "-Xscript+[Treat the source file as a script and wrap it in a main method]:main object name" + "-Xshow-class+[Show internal representation of class]:class name" + "-Xshow-object+[Show internal representation of object]:object name" + "-Xshow-phases[Print a synopsis of compiler phases]" + "-Xsource-reader+[Specify a class name for a custom method of reading source files]:class name" + "-Xverify[Verify generic signatures in generated bytecode]" + + "-Xassem-extdirs+[List of directories containing assemblies (requires -target:msil) (default\: lib)]:assembly directory:_files -/" + "-Xassem-name+[Name of the output assembly (requires -target:msil)]:assembly name:_files" + "-Xassem-path+[List of assemblies referenced by the program (requires -target:msil)]:assembly path:_files" + "-Xsourcedir+[Mirror source folder structure in output directory (requires -target:msil)]:source directory:_files -/" + + "-Xplugin\:-[Load one or more plugins from file]:plugin file:_files" + "-Xpluginsdir+[Path to search compiler plugins]:plugin directory:_files -/" + "-Xplugin-list[Print a synopsis of loaded plugins]" + "-Xplugin-disable\:-[Disable the given plugin(s)]" + "-Xplugin-require\:-[Abort unless the given plugin(s) are available]" +) + +local -a Y_opts +Y_opts=( + "-Y[Print a synopsis of private options]" + "-Ybuild-manager-debug[Generate debug information for the Refined Build Manager compiler]" + "-Ybuilder-debug\:-[Compile using the specified build manager (default\: none)]:build manager:(none refined simple)" + "-Yclosure-elim[Perform closure elimination]" + "-Ycompact-trees[Use compact tree printer when displaying trees]" + "-Ydead-code[Perform dead code elimination]" + "-Ydependent-method-types[Allow dependent method types]" + "-Ydump-classes+[Dump the generated bytecode to .class files (useful for reflective compilation that utilizes in-memory classloaders)]:output directory:_files -/" + "-Yeta-expand-keeps-star[Eta-expand varargs methods to T* rather than Seq[T]. This is a temporary option to ease transition.]" + "-Ygen-javap+[Generate a parallel output directory of .javap files]:output directory:_files -/" + "-Yinfer-argument-types[Infer types for arguments of overriden methods]" + "-Yinline[Perform inlining when possible]" + "-Yinline-handlers[Perform exception handler inlining when possible]" + "-Yinline-warnings[Emit inlining warnings (normally surpressed due to high volume)]" + "-Yinvalidate+[Invalidate classpath entry before run]:classpath entry" + "-Ylinearizer\:-[Linearizer to use (default\: rpo)]:linearizer:(normal dfs rpo dump)" + "-Ylog-classpath[Output information about what classpath is being applied]" + "-Yno-adapted-args[Do not adapt an argument list (either by inserting unit or creating a tuple) to match the receiver]" + "-Ymacro-debug-lite[Trace essential macro-related activities]" + "-Ymacro-debug-verbose[Trace all macro-related activities: compilation, generation of synthetics, classloading, expansion, exceptions]" + "-Yno-completion[Disable tab-completion in the REPL]" + "-Yno-generic-signatures[Suppress generation of generic signatures for Java]" + "-Yno-imports[Compile without any implicit imports]" + "-Yno-predef[Compile without importing Predef]" + "-Yno-self-type-checks[Suppress check for self-type conformance among inherited members]" + "-Yno-squeeze[Disable creation of compact code in matching]" + "-Ynotnull[Enable (experimental and incomplete) scala.NotNull]" + "-Yoverride-objects[Allow member objects to be overridden]" + "-Yoverride-vars[Allow vars to be overridden]" + "-Ypmat-naive[Desugar matches as naively as possible]" + "-Ypresentation-delay+[Wait number of ms after typing before starting typechecking]" + "-Ypresentation-log+[Log presentation compiler events into file]:log file:_files" + "-Ypresentation-replay+[Replay presentation compiler events from file]:log file:_files" + "-Ypresentation-strict[Do not report type errors in sources with syntax errors]" + "-Ypresentation-verbose[Print information about presentation compiler tasks]" + "-Yprofile-class+[Specify name of profiler class]:profiler class name" + "-Yprofile-memory[Heap snapshot after compiler run (requires jgpagent on JVM -agentpath)]" + "-Yrangepos[Use range positions for syntax trees]" + "-Yrecursion+[Set recursion depth used when locking symbols]" + "-Yreify-copypaste[Dump the reified trees in copypasteable representation]" + "-Yrepl-sync[Do not use asynchronous code for REPL startup]" + "-Yresolve-term-conflict\:-[Resolve term conflicts (default\: error)]:resolution strategy:(package object error)" + "-Yself-in-annots[Include a \"self\" identifier inside of annotations]" + "-Yshow\:-[Show after (requires -Xshow-class or -Xshow-object)]:phase name:_scala_phases" + "-Yshow-syms[Print the AST symbol hierarchy after each phase]" + "-Yshow-symkinds[Print abbreviated symbol kinds next to symbol names]" + "-Yshow-trees[Print detailed ASTs (requires -Xprint\:phase)]" + "-Yshow-trees-compact[Print detailed ASTs in compact form (requires -Xprint\:)]" + "-Yshow-trees-stringified[Print stringifications along with detailed ASTs (requires -Xprint\:)]" + "-Ystatistics[Print compiler statistics]" + "-Ystruct-dispatch\:-[Structural method dispatch policy (default\: poly-cache)]:policy name:(no-cache mono-cache poly-cache invoke-dynamic)" + + "-Ybrowse\:-[Browse the abstract syntax tree after ]:phase name:_scala_phases" + "-Ycheck\:-[Check the tree at the end of ]:phase name:_scala_phases" + "-Ylog\:-[Log operations during ]:phase name:_scala_phases" + "-Yprofile\:-[Profile CPU usage of given phases (requires jgpagent on JVM -agentpath)]:phase name:_scala_phases" + "-Yskip\:-[Skip ]:phase name:_scala_phases" + "-Ystop-after\:-[Stop after given phase ]:phase name:_scala_phases" + "-Ystop-before\:-[Stop before given phase ]:phase name:_scala_phases" + + "-Ywarn-adapted-args[Warn if an argument list is modified to match the receiver]" + "-Ywarn-all[Enable all -Y warnings]" + "-Ywarn-dead-code[Warn when dead code is identified]" + "-Ywarn-inaccessible[Warn about inaccessible types in method signatures]" + "-Ywarn-nullary-override[Warn when non-nullary overrides nullary, e.g. def foo() over def foo]" + "-Ywarn-nullary-unit[Warn when nullary methods return Unit]" + "-Ywarn-numeric-widen[Warn when numerics are widened]" + "-Ywarn-value-discard[Warn when non-Unit expression results are unused]" + + "-Ybuild-manager-debug[Generate debug information for the Refined Build Manager compiler]" + "-Ybuilder-debug\:-[Compile using the specified build manager (default\: none)]:manager:(none refined simple)" + "-Ycompletion-debug[Trace all tab completion activity]" + "-Ydebug[Increase the quantity of debugging output]" + "-Ydoc-debug[Trace all scaladoc activity]" + "-Yide-debug[Generate, validate and output trees using the interactive compiler]" + "-Yinfer-debug[Trace type inference and implicit search]" + "-Yissue-debug[Print stack traces when a context issues an error]" + "-Ypatmat-debug[Trace pattern matching translation]" + "-Ypmat-debug[Trace all pattern matcher activity]" + "-Ypos-debug[Trace position validation]" + "-Ypresentation-debug[Enable debugging output for the presentation compiler]" + "-Yreify-debug[Trace reification]" + "-Yrepl-debug[Trace all REPL activity]" + "-Ytyper-debug[Trace all type assignments]" +) + +local -a scala_opts +scala_opts=( + "-e+[execute as if entered in the repl]:string" \ + "-howtorun+[what to run (default\: guess)]:execution mode:(script object jar guess)" \ + "-i+[preload before starting the repl]:file to preload:_files" \ + "-nc[no compilation daemon\: do not use the fsc offline compiler]" \ + "-save[save the compiled script in a jar for future use]" +) + +case $words[$CURRENT] in + -X*) _arguments $X_opts;; + -Y*) _arguments $Y_opts;; + *) case $service in + scala) _arguments $scala_opts $shared_opts "*::filename:_files";; + scalac) _arguments $shared_opts "*::filename:_files";; + esac +esac + +return 0 From 2264c51355542df082c72468eea2dfa5a8e54ada Mon Sep 17 00:00:00 2001 From: ripdog Date: Fri, 15 Feb 2013 16:57:36 +0000 Subject: [PATCH 239/349] Update plugins/extract/extract.plugin.zsh Cause unrar to preserve directory structure. (Why is only unrar different?!) --- plugins/extract/extract.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/extract/extract.plugin.zsh b/plugins/extract/extract.plugin.zsh index 5c125e98b..23e86c593 100644 --- a/plugins/extract/extract.plugin.zsh +++ b/plugins/extract/extract.plugin.zsh @@ -53,7 +53,7 @@ function extract() { (*.lzma) unlzma "$1" ;; (*.Z) uncompress "$1" ;; (*.zip) unzip "$1" -d $extract_dir ;; - (*.rar) unrar e -ad "$1" ;; + (*.rar) unrar x -ad "$1" ;; (*.7z) 7za x "$1" ;; (*.deb) mkdir -p "$extract_dir/control" From 3db22634a1dfe6797b2dafabce82b27f101c8e6b Mon Sep 17 00:00:00 2001 From: Thomas Minor Date: Tue, 22 Jan 2013 09:02:21 -0800 Subject: [PATCH 240/349] pipe git version check error to /dev/null (for when git doesn't exist) --- lib/git.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/git.zsh b/lib/git.zsh index 3e14695bd..bcd6cc055 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -112,7 +112,7 @@ 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=($(git --version 2>/dev/null)); INSTALLED_GIT_VERSION=(${(s/./)INSTALLED_GIT_VERSION[3]}); for i in {1..3}; do From 014ed1f0e5c85a10ab7538160e2d3421ab3dbf7e Mon Sep 17 00:00:00 2001 From: Heiko Reese Date: Thu, 21 Feb 2013 02:46:20 +0100 Subject: [PATCH 241/349] Disable ssh-agent support if another ssh-agent is already running. --- plugins/gpg-agent/gpg-agent.plugin.zsh | 35 +++++++++++++++----------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/plugins/gpg-agent/gpg-agent.plugin.zsh b/plugins/gpg-agent/gpg-agent.plugin.zsh index 8cc71fd57..63c433413 100644 --- a/plugins/gpg-agent/gpg-agent.plugin.zsh +++ b/plugins/gpg-agent/gpg-agent.plugin.zsh @@ -1,26 +1,31 @@ -# Based on ssh-agent code - local GPG_ENV=$HOME/.gnupg/gpg-agent.env -function start_agent { - /usr/bin/env gpg-agent --daemon --enable-ssh-support --write-env-file ${GPG_ENV} > /dev/null - chmod 600 ${GPG_ENV} - . ${GPG_ENV} > /dev/null +function start_agent_nossh { + eval $(/usr/bin/env gpg-agent --daemon --write-env-file ${GPG_ENV}) > /dev/null + export GPG_AGENT_INFO } -# Source GPG agent settings, if applicable +function start_agent_withssh { + eval $(/usr/bin/env gpg-agent --daemon --enable-ssh-support --write-env-file ${GPG_ENV}) > /dev/null + export GPG_AGENT_INFO + export SSH_AUTH_SOCK + export SSH_AGENT_PID +} + +# make sure all created files are u=rw only +umask 177 + +# source settings of old agent, if applicable if [ -f "${GPG_ENV}" ]; then . ${GPG_ENV} > /dev/null - ps -ef | grep ${SSH_AGENT_PID} | grep gpg-agent > /dev/null || { - start_agent; - } -else - start_agent; fi -export GPG_AGENT_INFO -export SSH_AUTH_SOCK -export SSH_AGENT_PID +# check for existing ssh-agent +if ssh-add -l > /dev/null 2> /dev/null; then + start_agent_nossh; +else + start_agent_withssh; +fi GPG_TTY=$(tty) export GPG_TTY From 174e09ca8dec0e2c393718505e9fc0cfc0996e21 Mon Sep 17 00:00:00 2001 From: Heiko Reese Date: Thu, 21 Feb 2013 03:40:32 +0100 Subject: [PATCH 242/349] Added --quiet to suppress message about gpg-agent already running. --- plugins/gpg-agent/gpg-agent.plugin.zsh | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/plugins/gpg-agent/gpg-agent.plugin.zsh b/plugins/gpg-agent/gpg-agent.plugin.zsh index 63c433413..109af44c8 100644 --- a/plugins/gpg-agent/gpg-agent.plugin.zsh +++ b/plugins/gpg-agent/gpg-agent.plugin.zsh @@ -1,20 +1,19 @@ local GPG_ENV=$HOME/.gnupg/gpg-agent.env function start_agent_nossh { - eval $(/usr/bin/env gpg-agent --daemon --write-env-file ${GPG_ENV}) > /dev/null + eval $(/usr/bin/env gpg-agent --quiet --daemon --write-env-file ${GPG_ENV} 2> /dev/null) + chmod 600 ${GPG_ENV} export GPG_AGENT_INFO } function start_agent_withssh { - eval $(/usr/bin/env gpg-agent --daemon --enable-ssh-support --write-env-file ${GPG_ENV}) > /dev/null + eval $(/usr/bin/env gpg-agent --quiet --daemon --enable-ssh-support --write-env-file ${GPG_ENV} 2> /dev/null) + chmod 600 ${GPG_ENV} export GPG_AGENT_INFO export SSH_AUTH_SOCK export SSH_AGENT_PID } -# make sure all created files are u=rw only -umask 177 - # source settings of old agent, if applicable if [ -f "${GPG_ENV}" ]; then . ${GPG_ENV} > /dev/null From 8c74d80fd6cdc7e1b48e7eb321a3e3a22674c3be Mon Sep 17 00:00:00 2001 From: hacfi Date: Fri, 22 Feb 2013 17:07:15 +0100 Subject: [PATCH 243/349] Fix Symfony2 command completion 'permission denied' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit app/console by default (if you create a new Symfony project via composer create-project or by downloading it from symfony.com) is not executable. Therefore I get the following error: sf2 _symfony2_get_command_list:1: permission denied: app/console _symfony2_get_command_list:1: permission denied: app/console _symfony2_get_command_list:1: permission denied: app/console To make command completion work without changing app/console you just have to let php run it. --- plugins/symfony2/symfony2.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/symfony2/symfony2.plugin.zsh b/plugins/symfony2/symfony2.plugin.zsh index cc9ffebc0..f425c14f7 100644 --- a/plugins/symfony2/symfony2.plugin.zsh +++ b/plugins/symfony2/symfony2.plugin.zsh @@ -1,7 +1,7 @@ # Symfony2 basic command completion _symfony2_get_command_list () { - app/console --no-ansi | sed "1,/Available commands/d" | awk '/^ [a-z]+/ { print $1 }' + php app/console --no-ansi | sed "1,/Available commands/d" | awk '/^ [a-z]+/ { print $1 }' } _symfony2 () { From b979400cff17248147d95f6271edb6f2d6e36c84 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Tue, 26 Feb 2013 14:05:22 -0500 Subject: [PATCH 244/349] Starting tmux plugin with basic config variables. --- plugins/tmux/tmux.plugin.zsh | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 plugins/tmux/tmux.plugin.zsh diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh new file mode 100644 index 000000000..cc676cb92 --- /dev/null +++ b/plugins/tmux/tmux.plugin.zsh @@ -0,0 +1,12 @@ +# Configuration variables +# Automatically start tmux +[[ -n "$ZSH_TMUX_AUTOSTART" ]] || ZSH_TMUX_AUTOSTART = false +# Automatically connect to a previous session if it exists +[[ -n "$ZSH_TMUX_AUTOCONNECT" ]] || ZSH_TMUX_AUTOCONNECT = true +# Automatically close the terminal when tmux exits +[[ -n "$ZSH_TMUX_AUTOQUIT" ]] || ZSH_TMUX_AUTOQUIT = true +# Set term to screen or screen-256color based on current terminal support +[[ -n "$ZSH_TMUX_FIXTERM" ]] || ZSH_TMUX_AUTOCONNECT = true + +# Get the absolute path to the current directory +local zsh_tmux_plugin_path="$(cd "$(dirname "$0")" && pwd)" From 26ee66f179be08fab59d41a0522ad51610125c6c Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Tue, 26 Feb 2013 17:50:15 -0500 Subject: [PATCH 245/349] Adding main function and alias to tmux plugin. --- plugins/tmux/tmux.plugin.zsh | 37 ++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh index cc676cb92..a2f36c0be 100644 --- a/plugins/tmux/tmux.plugin.zsh +++ b/plugins/tmux/tmux.plugin.zsh @@ -1,12 +1,41 @@ # Configuration variables # Automatically start tmux -[[ -n "$ZSH_TMUX_AUTOSTART" ]] || ZSH_TMUX_AUTOSTART = false +[[ -n "$ZSH_TMUX_AUTOSTART" ]] || ZSH_TMUX_AUTOSTART=false # Automatically connect to a previous session if it exists -[[ -n "$ZSH_TMUX_AUTOCONNECT" ]] || ZSH_TMUX_AUTOCONNECT = true +[[ -n "$ZSH_TMUX_AUTOCONNECT" ]] || ZSH_TMUX_AUTOCONNECT=true # Automatically close the terminal when tmux exits -[[ -n "$ZSH_TMUX_AUTOQUIT" ]] || ZSH_TMUX_AUTOQUIT = true +[[ -n "$ZSH_TMUX_AUTOQUIT" ]] || ZSH_TMUX_AUTOQUIT=$ZSH_TMUX_AUTOSTART # Set term to screen or screen-256color based on current terminal support -[[ -n "$ZSH_TMUX_FIXTERM" ]] || ZSH_TMUX_AUTOCONNECT = true +[[ -n "$ZSH_TMUX_FIXTERM" ]] || ZSH_TMUX_AUTOCONNECT=true # Get the absolute path to the current directory local zsh_tmux_plugin_path="$(cd "$(dirname "$0")" && pwd)" + +# Local variable to store the local config file to use, if any. +local fixed_config="" + +# Set the correct local config file to use +if [[ "$ZSH_TMUX_FIXTERM" == "true" ]] +then + if [[ -f $HOME/.tmux.conf || -h $HOME/.tmux.conf ]] + then + fixed_config=$zsh_tmux_plugin_path/tmux.extra.conf + else + fixed_config=$zsh_tmux_plugin_path/tmux.only.conf + fi +fi + +# Override tmux with our function +function zsh_tmux_plugin_start() +{ + if [[ "$ZSH_TMUX_AUTOCONNECT" == "true" ]] + then + \tmux attach || tmux -f $fixed_config new-session + [[ "$ZSH_TMUX_AUTOQUIT" == "true" ]] && exit + else + \tmux -f $fixed_config + [[ "$ZSH_TMUX_AUTOQUIT" == "true" ]] && exit + fi +} + +alias tmux=zsh_tmux_plugin_start From 3aef6793c2bf0c0afec1fdb97a3a56e7f8d065c6 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Tue, 26 Feb 2013 18:05:58 -0500 Subject: [PATCH 246/349] Now checking for 256 color terminal in tmux plugin. --- plugins/tmux/tmux.plugin.zsh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh index a2f36c0be..f67c2b8b5 100644 --- a/plugins/tmux/tmux.plugin.zsh +++ b/plugins/tmux/tmux.plugin.zsh @@ -11,6 +11,14 @@ # Get the absolute path to the current directory local zsh_tmux_plugin_path="$(cd "$(dirname "$0")" && pwd)" +# Determine if the terminal supports 256 colors +if [[ `tput colors` == "256" ]] +then + export $ZSH_TMUX_TERM="screen-256" +else + export $ZSH_TMUX_TERM="screen" +fi + # Local variable to store the local config file to use, if any. local fixed_config="" From 778ae57772a02d11c393708c4c0644fbd1ffac35 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Tue, 26 Feb 2013 18:07:25 -0500 Subject: [PATCH 247/349] Tmux plugin now just runs tmux if any extra args are given. --- plugins/tmux/tmux.plugin.zsh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh index f67c2b8b5..d8fdd9255 100644 --- a/plugins/tmux/tmux.plugin.zsh +++ b/plugins/tmux/tmux.plugin.zsh @@ -36,7 +36,12 @@ fi # Override tmux with our function function zsh_tmux_plugin_start() { - if [[ "$ZSH_TMUX_AUTOCONNECT" == "true" ]] + # We have other arguments, just run them + if [[ ! -n "$@" ]] + then + \tmux $@ + # Try to connect to an existing session. + elif [[ "$ZSH_TMUX_AUTOCONNECT" == "true" ]] then \tmux attach || tmux -f $fixed_config new-session [[ "$ZSH_TMUX_AUTOQUIT" == "true" ]] && exit From 0cf871d51299a4f837e6dce4d4ae827b0c09f5bd Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Tue, 26 Feb 2013 18:08:37 -0500 Subject: [PATCH 248/349] Adding comments to tmux plugin. --- plugins/tmux/tmux.plugin.zsh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh index d8fdd9255..48ffc1c27 100644 --- a/plugins/tmux/tmux.plugin.zsh +++ b/plugins/tmux/tmux.plugin.zsh @@ -27,8 +27,10 @@ if [[ "$ZSH_TMUX_FIXTERM" == "true" ]] then if [[ -f $HOME/.tmux.conf || -h $HOME/.tmux.conf ]] then + #use this when they have a ~/.tmux.conf fixed_config=$zsh_tmux_plugin_path/tmux.extra.conf else + #use this when they don't have a ~/.tmux.conf fixed_config=$zsh_tmux_plugin_path/tmux.only.conf fi fi @@ -45,6 +47,7 @@ function zsh_tmux_plugin_start() then \tmux attach || tmux -f $fixed_config new-session [[ "$ZSH_TMUX_AUTOQUIT" == "true" ]] && exit + # Just try to fix the TERM variable. else \tmux -f $fixed_config [[ "$ZSH_TMUX_AUTOQUIT" == "true" ]] && exit From 45a4db33f81c5dbdcafa25cfe5a75490d55ec185 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Tue, 26 Feb 2013 18:09:01 -0500 Subject: [PATCH 249/349] Enabling autostart of tmux in tmux plugin. --- plugins/tmux/tmux.plugin.zsh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh index 48ffc1c27..8dd208399 100644 --- a/plugins/tmux/tmux.plugin.zsh +++ b/plugins/tmux/tmux.plugin.zsh @@ -55,3 +55,8 @@ function zsh_tmux_plugin_start() } alias tmux=zsh_tmux_plugin_start + +if [[ "$ZSH_TMUX_AUTOSTART" == "true" ]] +then + zsh_tmux_plugin_start +fi From bf40d4e354ce33c0d9f42cc64372461bff14cde8 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Tue, 26 Feb 2013 18:09:17 -0500 Subject: [PATCH 250/349] Adding helper tmux config files to tmux plugin. --- plugins/tmux/tmux.extra.conf | 2 ++ plugins/tmux/tmux.only.conf | 1 + 2 files changed, 3 insertions(+) create mode 100644 plugins/tmux/tmux.extra.conf create mode 100644 plugins/tmux/tmux.only.conf diff --git a/plugins/tmux/tmux.extra.conf b/plugins/tmux/tmux.extra.conf new file mode 100644 index 000000000..beffd380c --- /dev/null +++ b/plugins/tmux/tmux.extra.conf @@ -0,0 +1,2 @@ +set -g default-terminal $ZSH_TMUX_TERM +source $HOME/.tmux.conf diff --git a/plugins/tmux/tmux.only.conf b/plugins/tmux/tmux.only.conf new file mode 100644 index 000000000..0734df3e1 --- /dev/null +++ b/plugins/tmux/tmux.only.conf @@ -0,0 +1 @@ +set -g default-terminal $ZSH_TMUX_TERM From 7b15627851983e63a5756f0b3633938c44ed7a7d Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Tue, 26 Feb 2013 21:47:11 -0500 Subject: [PATCH 251/349] Fixing typos, logic, and gremlins in tmux plugin. --- plugins/tmux/tmux.plugin.zsh | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh index 8dd208399..46c142b77 100644 --- a/plugins/tmux/tmux.plugin.zsh +++ b/plugins/tmux/tmux.plugin.zsh @@ -6,7 +6,7 @@ # Automatically close the terminal when tmux exits [[ -n "$ZSH_TMUX_AUTOQUIT" ]] || ZSH_TMUX_AUTOQUIT=$ZSH_TMUX_AUTOSTART # Set term to screen or screen-256color based on current terminal support -[[ -n "$ZSH_TMUX_FIXTERM" ]] || ZSH_TMUX_AUTOCONNECT=true +[[ -n "$ZSH_TMUX_FIXTERM" ]] || ZSH_TMUX_FIXTERM=true # Get the absolute path to the current directory local zsh_tmux_plugin_path="$(cd "$(dirname "$0")" && pwd)" @@ -14,49 +14,50 @@ local zsh_tmux_plugin_path="$(cd "$(dirname "$0")" && pwd)" # Determine if the terminal supports 256 colors if [[ `tput colors` == "256" ]] then - export $ZSH_TMUX_TERM="screen-256" + export ZSH_TMUX_TERM="screen-256color" else - export $ZSH_TMUX_TERM="screen" + export ZSH_TMUX_TERM="screen" fi # Local variable to store the local config file to use, if any. local fixed_config="" -# Set the correct local config file to use +# Set the correct local config file to use. if [[ "$ZSH_TMUX_FIXTERM" == "true" ]] then if [[ -f $HOME/.tmux.conf || -h $HOME/.tmux.conf ]] then #use this when they have a ~/.tmux.conf - fixed_config=$zsh_tmux_plugin_path/tmux.extra.conf + fixed_config="$zsh_tmux_plugin_path/tmux.extra.conf" else #use this when they don't have a ~/.tmux.conf - fixed_config=$zsh_tmux_plugin_path/tmux.only.conf + fixed_config="$zsh_tmux_plugin_path/tmux.only.conf" fi fi -# Override tmux with our function -function zsh_tmux_plugin_start() +# Wrapper function for tmux. +function zsh_tmux_plugin_run() { # We have other arguments, just run them - if [[ ! -n "$@" ]] + if [[ -n "$@" ]] then \tmux $@ # Try to connect to an existing session. elif [[ "$ZSH_TMUX_AUTOCONNECT" == "true" ]] then - \tmux attach || tmux -f $fixed_config new-session + \tmux attach || \tmux `[[ -n "$fixed_config" ]] && echo '-f ' $fixed_config` new-session [[ "$ZSH_TMUX_AUTOQUIT" == "true" ]] && exit - # Just try to fix the TERM variable. + # Just run tmux, fixing the TERM variable if requested. else - \tmux -f $fixed_config + \tmux `[[ -n "$fixed_config" ]] && echo '-f ' $fixed_config` [[ "$ZSH_TMUX_AUTOQUIT" == "true" ]] && exit fi } +# Alias tmux to our wrapper function. alias tmux=zsh_tmux_plugin_start if [[ "$ZSH_TMUX_AUTOSTART" == "true" ]] then - zsh_tmux_plugin_start + zsh_tmux_plugin_run fi From 43c50f03e3c547ec51feef7ae3c99f734a66e6a6 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Tue, 26 Feb 2013 21:52:26 -0500 Subject: [PATCH 252/349] Checking environment instead of local variable for fixing term in tmux plugin. --- plugins/tmux/tmux.plugin.zsh | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh index 46c142b77..9a52e6376 100644 --- a/plugins/tmux/tmux.plugin.zsh +++ b/plugins/tmux/tmux.plugin.zsh @@ -23,16 +23,13 @@ fi local fixed_config="" # Set the correct local config file to use. -if [[ "$ZSH_TMUX_FIXTERM" == "true" ]] +if [[ -f $HOME/.tmux.conf || -h $HOME/.tmux.conf ]] then - if [[ -f $HOME/.tmux.conf || -h $HOME/.tmux.conf ]] - then - #use this when they have a ~/.tmux.conf - fixed_config="$zsh_tmux_plugin_path/tmux.extra.conf" - else - #use this when they don't have a ~/.tmux.conf - fixed_config="$zsh_tmux_plugin_path/tmux.only.conf" - fi + #use this when they have a ~/.tmux.conf + fixed_config="$zsh_tmux_plugin_path/tmux.extra.conf" +else + #use this when they don't have a ~/.tmux.conf + fixed_config="$zsh_tmux_plugin_path/tmux.only.conf" fi # Wrapper function for tmux. @@ -45,11 +42,11 @@ function zsh_tmux_plugin_run() # Try to connect to an existing session. elif [[ "$ZSH_TMUX_AUTOCONNECT" == "true" ]] then - \tmux attach || \tmux `[[ -n "$fixed_config" ]] && echo '-f ' $fixed_config` new-session + \tmux attach || \tmux `[[ "$ZSH_TMUX_FIXTERM" == "true" ]] && echo '-f '$fixed_config` new-session [[ "$ZSH_TMUX_AUTOQUIT" == "true" ]] && exit # Just run tmux, fixing the TERM variable if requested. else - \tmux `[[ -n "$fixed_config" ]] && echo '-f ' $fixed_config` + \tmux `[[ "$ZSH_TMUX_FIXTERM" == "true" ]] && echo '-f '$fixed_config` [[ "$ZSH_TMUX_AUTOQUIT" == "true" ]] && exit fi } From f096644c751cb7fe566e82de531435a405d76be8 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Tue, 26 Feb 2013 22:03:22 -0500 Subject: [PATCH 253/349] Checking if already in tmux before autostarting in tmux in tmux plugin. --- plugins/tmux/tmux.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh index 9a52e6376..8bdd92133 100644 --- a/plugins/tmux/tmux.plugin.zsh +++ b/plugins/tmux/tmux.plugin.zsh @@ -54,7 +54,7 @@ function zsh_tmux_plugin_run() # Alias tmux to our wrapper function. alias tmux=zsh_tmux_plugin_start -if [[ "$ZSH_TMUX_AUTOSTART" == "true" ]] +if [[ ! -n "$TMUX" && "$ZSH_TMUX_AUTOSTART" == "true" ]] then zsh_tmux_plugin_run fi From 691630a89586c86dfafa32974c5c6dbaa1356c07 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Tue, 26 Feb 2013 22:18:36 -0500 Subject: [PATCH 254/349] Adding option to prevent autostarting tmux more than once in the same session. --- plugins/tmux/tmux.plugin.zsh | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh index 8bdd92133..a7bf93dbd 100644 --- a/plugins/tmux/tmux.plugin.zsh +++ b/plugins/tmux/tmux.plugin.zsh @@ -1,6 +1,10 @@ # Configuration variables +# # Automatically start tmux [[ -n "$ZSH_TMUX_AUTOSTART" ]] || ZSH_TMUX_AUTOSTART=false +# Only autostart once. If set to false, tmux will attempt to +# autostart every time your zsh configs are reloaded. +[[ -n "$ZSH_TMUX_AUTOSTART_ONCE" ]] || ZSH_TMUX_AUTOSTART_ONCE=true # Automatically connect to a previous session if it exists [[ -n "$ZSH_TMUX_AUTOCONNECT" ]] || ZSH_TMUX_AUTOCONNECT=true # Automatically close the terminal when tmux exits @@ -8,6 +12,7 @@ # Set term to screen or screen-256color based on current terminal support [[ -n "$ZSH_TMUX_FIXTERM" ]] || ZSH_TMUX_FIXTERM=true + # Get the absolute path to the current directory local zsh_tmux_plugin_path="$(cd "$(dirname "$0")" && pwd)" @@ -54,7 +59,13 @@ function zsh_tmux_plugin_run() # Alias tmux to our wrapper function. alias tmux=zsh_tmux_plugin_start +# Autostart if not already in tmux and enabled. if [[ ! -n "$TMUX" && "$ZSH_TMUX_AUTOSTART" == "true" ]] then - zsh_tmux_plugin_run + # Actually don't autostart if we already did and multiple autostarts are disabled. + if [[ "$ZSH_TMUX_AUTOSTART_ONCE" == "false" || "$ZSH_TMUX_AUTOSTARTED" != "true" ]] + then + export ZSH_TMUX_AUTOSTARTED=true + zsh_tmux_plugin_run + fi fi From 56c46c4ed8339c66c671927c197eb4511b5a664c Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Tue, 26 Feb 2013 22:55:18 -0500 Subject: [PATCH 255/349] Fixing typo in alias. --- plugins/tmux/tmux.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh index a7bf93dbd..982f87356 100644 --- a/plugins/tmux/tmux.plugin.zsh +++ b/plugins/tmux/tmux.plugin.zsh @@ -57,7 +57,7 @@ function zsh_tmux_plugin_run() } # Alias tmux to our wrapper function. -alias tmux=zsh_tmux_plugin_start +alias tmux=zsh_tmux_plugin_run # Autostart if not already in tmux and enabled. if [[ ! -n "$TMUX" && "$ZSH_TMUX_AUTOSTART" == "true" ]] From 86c9b32031dc28b4c6a641a4475e0e55c7ff32e5 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Tue, 26 Feb 2013 22:57:37 -0500 Subject: [PATCH 256/349] Adding compdef to maintain tmux completions. --- plugins/tmux/tmux.plugin.zsh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh index 982f87356..5c4076904 100644 --- a/plugins/tmux/tmux.plugin.zsh +++ b/plugins/tmux/tmux.plugin.zsh @@ -56,6 +56,9 @@ function zsh_tmux_plugin_run() fi } +# Use the completions for tmux for our function +compdef _tmux zsh_tmux_plugin_run + # Alias tmux to our wrapper function. alias tmux=zsh_tmux_plugin_run From 4e8681c6e19f77a9b54ceee5934e3356e4ffb207 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Tue, 26 Feb 2013 23:35:45 -0500 Subject: [PATCH 257/349] Adding options to choose tmux TERM for 256 and non-256 color terminals. This may be needed on systems that don't have the proper terminfo for screen and/or screen-256color. Otherwise the defaults of screen and screen-256color should be fine. --- plugins/tmux/tmux.plugin.zsh | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh index 5c4076904..be92fe096 100644 --- a/plugins/tmux/tmux.plugin.zsh +++ b/plugins/tmux/tmux.plugin.zsh @@ -11,6 +11,14 @@ [[ -n "$ZSH_TMUX_AUTOQUIT" ]] || ZSH_TMUX_AUTOQUIT=$ZSH_TMUX_AUTOSTART # Set term to screen or screen-256color based on current terminal support [[ -n "$ZSH_TMUX_FIXTERM" ]] || ZSH_TMUX_FIXTERM=true +# The TERM to use for non-256 color terminals. +# Tmux states this should be screen, but you may need to change it on +# systems without the proper terminfo +[[ -n "$ZSH_TMUX_FIXTERM_WITHOUT_256COLOR" ]] || ZSH_TMUX_FIXTERM_WITHOUT_256COLOR="screen" +# The TERM to use for 256 color terminals. +# Tmux states this should be screen-256color, but you may need to change it on +# systems without the proper terminfo +[[ -n "$ZSH_TMUX_FIXTERM_WITH_256COLOR" ]] || ZSH_TMUX_FIXTERM_WITH_256COLOR="screen-256color" # Get the absolute path to the current directory @@ -19,9 +27,9 @@ local zsh_tmux_plugin_path="$(cd "$(dirname "$0")" && pwd)" # Determine if the terminal supports 256 colors if [[ `tput colors` == "256" ]] then - export ZSH_TMUX_TERM="screen-256color" + export ZSH_TMUX_TERM=$ZSH_TMUX_FIXTERM_WITH_256COLOR else - export ZSH_TMUX_TERM="screen" + export ZSH_TMUX_TERM=$ZSH_TMUX_FIXTERM_WITHOUT_256COLOR fi # Local variable to store the local config file to use, if any. From f0a920df5a4a5e5260ef45daf27d42a15cd75217 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Wed, 27 Feb 2013 10:21:19 -0500 Subject: [PATCH 258/349] Checking to make sure tmux is actually installed before running plugin. If it is not found an error message is printed. --- plugins/tmux/tmux.plugin.zsh | 152 ++++++++++++++++++----------------- 1 file changed, 79 insertions(+), 73 deletions(-) diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh index be92fe096..6f0d5902a 100644 --- a/plugins/tmux/tmux.plugin.zsh +++ b/plugins/tmux/tmux.plugin.zsh @@ -1,82 +1,88 @@ -# Configuration variables -# -# Automatically start tmux -[[ -n "$ZSH_TMUX_AUTOSTART" ]] || ZSH_TMUX_AUTOSTART=false -# Only autostart once. If set to false, tmux will attempt to -# autostart every time your zsh configs are reloaded. -[[ -n "$ZSH_TMUX_AUTOSTART_ONCE" ]] || ZSH_TMUX_AUTOSTART_ONCE=true -# Automatically connect to a previous session if it exists -[[ -n "$ZSH_TMUX_AUTOCONNECT" ]] || ZSH_TMUX_AUTOCONNECT=true -# Automatically close the terminal when tmux exits -[[ -n "$ZSH_TMUX_AUTOQUIT" ]] || ZSH_TMUX_AUTOQUIT=$ZSH_TMUX_AUTOSTART -# Set term to screen or screen-256color based on current terminal support -[[ -n "$ZSH_TMUX_FIXTERM" ]] || ZSH_TMUX_FIXTERM=true -# The TERM to use for non-256 color terminals. -# Tmux states this should be screen, but you may need to change it on -# systems without the proper terminfo -[[ -n "$ZSH_TMUX_FIXTERM_WITHOUT_256COLOR" ]] || ZSH_TMUX_FIXTERM_WITHOUT_256COLOR="screen" -# The TERM to use for 256 color terminals. -# Tmux states this should be screen-256color, but you may need to change it on -# systems without the proper terminfo -[[ -n "$ZSH_TMUX_FIXTERM_WITH_256COLOR" ]] || ZSH_TMUX_FIXTERM_WITH_256COLOR="screen-256color" - - -# Get the absolute path to the current directory -local zsh_tmux_plugin_path="$(cd "$(dirname "$0")" && pwd)" - -# Determine if the terminal supports 256 colors -if [[ `tput colors` == "256" ]] -then - export ZSH_TMUX_TERM=$ZSH_TMUX_FIXTERM_WITH_256COLOR -else - export ZSH_TMUX_TERM=$ZSH_TMUX_FIXTERM_WITHOUT_256COLOR -fi - -# Local variable to store the local config file to use, if any. -local fixed_config="" - -# Set the correct local config file to use. -if [[ -f $HOME/.tmux.conf || -h $HOME/.tmux.conf ]] -then - #use this when they have a ~/.tmux.conf - fixed_config="$zsh_tmux_plugin_path/tmux.extra.conf" -else - #use this when they don't have a ~/.tmux.conf - fixed_config="$zsh_tmux_plugin_path/tmux.only.conf" -fi - -# Wrapper function for tmux. -function zsh_tmux_plugin_run() -{ - # We have other arguments, just run them - if [[ -n "$@" ]] +# Only run if tmux is actually installed +if which tmux &> /dev/null then - \tmux $@ - # Try to connect to an existing session. - elif [[ "$ZSH_TMUX_AUTOCONNECT" == "true" ]] + # Configuration variables + # + # Automatically start tmux + [[ -n "$ZSH_TMUX_AUTOSTART" ]] || ZSH_TMUX_AUTOSTART=false + # Only autostart once. If set to false, tmux will attempt to + # autostart every time your zsh configs are reloaded. + [[ -n "$ZSH_TMUX_AUTOSTART_ONCE" ]] || ZSH_TMUX_AUTOSTART_ONCE=true + # Automatically connect to a previous session if it exists + [[ -n "$ZSH_TMUX_AUTOCONNECT" ]] || ZSH_TMUX_AUTOCONNECT=true + # Automatically close the terminal when tmux exits + [[ -n "$ZSH_TMUX_AUTOQUIT" ]] || ZSH_TMUX_AUTOQUIT=$ZSH_TMUX_AUTOSTART + # Set term to screen or screen-256color based on current terminal support + [[ -n "$ZSH_TMUX_FIXTERM" ]] || ZSH_TMUX_FIXTERM=true + # The TERM to use for non-256 color terminals. + # Tmux states this should be screen, but you may need to change it on + # systems without the proper terminfo + [[ -n "$ZSH_TMUX_FIXTERM_WITHOUT_256COLOR" ]] || ZSH_TMUX_FIXTERM_WITHOUT_256COLOR="screen" + # The TERM to use for 256 color terminals. + # Tmux states this should be screen-256color, but you may need to change it on + # systems without the proper terminfo + [[ -n "$ZSH_TMUX_FIXTERM_WITH_256COLOR" ]] || ZSH_TMUX_FIXTERM_WITH_256COLOR="screen-256color" + + + # Get the absolute path to the current directory + local zsh_tmux_plugin_path="$(cd "$(dirname "$0")" && pwd)" + + # Determine if the terminal supports 256 colors + if [[ `tput colors` == "256" ]] then - \tmux attach || \tmux `[[ "$ZSH_TMUX_FIXTERM" == "true" ]] && echo '-f '$fixed_config` new-session - [[ "$ZSH_TMUX_AUTOQUIT" == "true" ]] && exit - # Just run tmux, fixing the TERM variable if requested. + export ZSH_TMUX_TERM=$ZSH_TMUX_FIXTERM_WITH_256COLOR else - \tmux `[[ "$ZSH_TMUX_FIXTERM" == "true" ]] && echo '-f '$fixed_config` - [[ "$ZSH_TMUX_AUTOQUIT" == "true" ]] && exit + export ZSH_TMUX_TERM=$ZSH_TMUX_FIXTERM_WITHOUT_256COLOR fi -} -# Use the completions for tmux for our function -compdef _tmux zsh_tmux_plugin_run + # Local variable to store the local config file to use, if any. + local fixed_config="" -# Alias tmux to our wrapper function. -alias tmux=zsh_tmux_plugin_run - -# Autostart if not already in tmux and enabled. -if [[ ! -n "$TMUX" && "$ZSH_TMUX_AUTOSTART" == "true" ]] -then - # Actually don't autostart if we already did and multiple autostarts are disabled. - if [[ "$ZSH_TMUX_AUTOSTART_ONCE" == "false" || "$ZSH_TMUX_AUTOSTARTED" != "true" ]] + # Set the correct local config file to use. + if [[ -f $HOME/.tmux.conf || -h $HOME/.tmux.conf ]] then - export ZSH_TMUX_AUTOSTARTED=true - zsh_tmux_plugin_run + #use this when they have a ~/.tmux.conf + fixed_config="$zsh_tmux_plugin_path/tmux.extra.conf" + else + #use this when they don't have a ~/.tmux.conf + fixed_config="$zsh_tmux_plugin_path/tmux.only.conf" fi + + # Wrapper function for tmux. + function zsh_tmux_plugin_run() + { + # We have other arguments, just run them + if [[ -n "$@" ]] + then + \tmux $@ + # Try to connect to an existing session. + elif [[ "$ZSH_TMUX_AUTOCONNECT" == "true" ]] + then + \tmux attach || \tmux `[[ "$ZSH_TMUX_FIXTERM" == "true" ]] && echo '-f '$fixed_config` new-session + [[ "$ZSH_TMUX_AUTOQUIT" == "true" ]] && exit + # Just run tmux, fixing the TERM variable if requested. + else + \tmux `[[ "$ZSH_TMUX_FIXTERM" == "true" ]] && echo '-f '$fixed_config` + [[ "$ZSH_TMUX_AUTOQUIT" == "true" ]] && exit + fi + } + + # Use the completions for tmux for our function + compdef _tmux zsh_tmux_plugin_run + + # Alias tmux to our wrapper function. + alias tmux=zsh_tmux_plugin_run + + # Autostart if not already in tmux and enabled. + if [[ ! -n "$TMUX" && "$ZSH_TMUX_AUTOSTART" == "true" ]] + then + # Actually don't autostart if we already did and multiple autostarts are disabled. + if [[ "$ZSH_TMUX_AUTOSTART_ONCE" == "false" || "$ZSH_TMUX_AUTOSTARTED" != "true" ]] + then + export ZSH_TMUX_AUTOSTARTED=true + zsh_tmux_plugin_run + fi + fi +else + print "zsh tmux plugin: tmux not found. Please install tmux before using this plugin." fi From f4b12321a9e4d5e0fa208b48a4515156865a33bb Mon Sep 17 00:00:00 2001 From: Alexey Poimtsev Date: Thu, 28 Feb 2013 00:26:03 +0400 Subject: [PATCH 259/349] Added rails4 plugin --- plugins/rails4/rails4.plugin.zsh | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 plugins/rails4/rails4.plugin.zsh diff --git a/plugins/rails4/rails4.plugin.zsh b/plugins/rails4/rails4.plugin.zsh new file mode 100644 index 000000000..b6765365e --- /dev/null +++ b/plugins/rails4/rails4.plugin.zsh @@ -0,0 +1,29 @@ +# Rails 4 aliases + +function _rails_command () { + if [ -e "script/server" ]; then + ruby script/$@ + elif [ -e "script/rails" ]; then + ruby script/rails $@ + else + ruby bin/rails $@ + fi +} + +alias rc='_rails_command console' +alias rd='_rails_command destroy' +alias rdb='_rails_command dbconsole' +alias rdbm='rake db:migrate db:test:clone' +alias rg='_rails_command generate' +alias rgm='_rails_command generate migration' +alias rp='_rails_command plugin' +alias ru='_rails_command runner' +alias rs='_rails_command server' +alias rsd='_rails_command server --debugger' +alias devlog='tail -f log/development.log' +alias rdm='rake db:migrate' +alias rdr='rake db:rollback' +alias rds='rake db:seed' +alias rlc='rake log:clear' +alias rn='rake notes' +alias rr='rake routes' \ No newline at end of file From 4bb7b698cabd33bd53f89688e83cf836e4c3f50c Mon Sep 17 00:00:00 2001 From: Maxime Fabre Date: Thu, 28 Feb 2013 11:50:39 +0100 Subject: [PATCH 260/349] Add alias for "composer dump-autoload" --- plugins/composer/composer.plugin.zsh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/composer/composer.plugin.zsh b/plugins/composer/composer.plugin.zsh index c9b762d07..a08c4633f 100644 --- a/plugins/composer/composer.plugin.zsh +++ b/plugins/composer/composer.plugin.zsh @@ -24,6 +24,7 @@ alias csu='composer self-update' alias cu='composer update' alias ci='composer install' alias ccp='composer create-project' +alias cdu='composer dump-autoload' # install composer in the current directory -alias cget='curl -s https://getcomposer.org/installer | php' \ No newline at end of file +alias cget='curl -s https://getcomposer.org/installer | php' From 20fe5e6a570fa5d9dfd246d020ecc2c18427405f Mon Sep 17 00:00:00 2001 From: RomainBelorgey Date: Fri, 1 Mar 2013 18:33:38 +0100 Subject: [PATCH 261/349] Update _capistrano Add use of Capfile commands --- plugins/capistrano/_capistrano | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/capistrano/_capistrano b/plugins/capistrano/_capistrano index cf6b50c7f..1002dad96 100644 --- a/plugins/capistrano/_capistrano +++ b/plugins/capistrano/_capistrano @@ -1,7 +1,7 @@ #compdef cap #autoload -if [ -f config/deploy.rb ]; then +if [[ -f config/deploy.rb || -f Capfile ]]; 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~ From fdd46d8815f9c3a314e13d2dbb57685fd78f4e7c Mon Sep 17 00:00:00 2001 From: Sean Jones Date: Sat, 2 Mar 2013 11:09:57 +0000 Subject: [PATCH 262/349] Updated battery plugin. Displays charging time. linux battery level now refreshes after every command --- plugins/battery/battery.plugin.zsh | 33 ++++++++++++++++++------------ 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/plugins/battery/battery.plugin.zsh b/plugins/battery/battery.plugin.zsh index 95f890632..cc9342c77 100644 --- a/plugins/battery/battery.plugin.zsh +++ b/plugins/battery/battery.plugin.zsh @@ -42,17 +42,27 @@ if [[ $(uname) == "Darwin" ]] ; then fi echo "%{$fg[$color]%}[$(battery_pct_remaining)%%]%{$reset_color%}" else - echo "" + echo "∞" fi } 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:]')" } - function battery_time_remaining() { echo $(acpi | cut -f3 -d ',') } - function battery_pct_prompt() { - b=$(battery_pct_remaining) + function battery_pct_remaining() { + if [[ $(acpi 2&>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]] ; then + echo "$(acpi | cut -f2 -d ',' | tr -cd '[:digit:]')" + fi + } + + function battery_time_remaining() { + if [[ $(acpi 2&>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]] ; then + echo $(acpi | cut -f3 -d ',') + fi + } + + function battery_pct_prompt() { + b=$(battery_pct_remaining) + if [[ $(acpi 2&>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]] ; then if [ $b -gt 50 ] ; then color='green' elif [ $b -gt 20 ] ; then @@ -61,11 +71,8 @@ elif [[ $(uname) == "Linux" ]] ; then 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 + else + echo "∞" + fi + } fi From c2d42f5a90f12ca925702ed4e8fc5563baf8397c Mon Sep 17 00:00:00 2001 From: Michele Bologna Date: Tue, 5 Mar 2013 22:50:27 +0100 Subject: [PATCH 263/349] added michelebologna theme --- themes/michelebologna.zsh-theme | 43 +++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 themes/michelebologna.zsh-theme diff --git a/themes/michelebologna.zsh-theme b/themes/michelebologna.zsh-theme new file mode 100644 index 000000000..002d46287 --- /dev/null +++ b/themes/michelebologna.zsh-theme @@ -0,0 +1,43 @@ +# reference colors +GREEN="%{$fg_bold[green]%}" +RED="%{$fg_bold[red]%}" +CYAN="%{$fg_bold[cyan]%}" +YELLOW="%{$fg_bold[yellow]%}" +BLUE="%{$fg_bold[blue]%}" +MAGENTA="%{$fg_bold[magenta]%}" +WHITE="%{$fg_bold[white]%}" + +COLOR_ARRAY=($GREEN $RED $CYAN $YELLOW $BLUE $MAGENTA $WHITE) + +# color reset +RESET_COLOR="%{$reset_color%}" + +# which color should be applied? +USERNAME_NORMAL_COLOR=$WHITE +USERNAME_ROOT_COLOR=$RED +HOSTNAME_NORMAL_COLOR=$BLUE +#for i in `hostname`; HOSTNAME_NORMAL_COLOR=$COLOR_ARRAY[$[((#i))%7+1]] +HOSTNAME_ROOT_COLOR=$RED +HOSTNAME_COLOR=%(!.$HOSTNAME_ROOT_COLOR.$HOSTNAME_NORMAL_COLOR) +CURRENT_DIR_COLOR=$CYAN + +# zsh commands +USERNAME_COMMAND="%n" +HOSTNAME_COMMAND="%m" +CURRENT_DIR="%~" + +# output: colors + commands +USERNAME_OUTPUT="%(!..$USERNAME_NORMAL_COLOR$USERNAME_COMMAND$RESET_COLOR@)" +HOSTNAME_OUTPUT="$HOSTNAME_COLOR$HOSTNAME_COMMAND$RESET_COLOR" +CURRENT_DIR_OUTPUT="$CURRENT_DIR_COLOR$CURRENT_DIR" +LAST_COMMAND_OUTPUT="%(?.%(!.$RED.$GREEN).$YELLOW)" + +# git theming +ZSH_THEME_GIT_PROMPT_PREFIX="(" +ZSH_THEME_GIT_PROMPT_SUFFIX="" +ZSH_THEME_GIT_PROMPT_DIRTY=")$RED*" +ZSH_THEME_GIT_PROMPT_CLEAN=")" + +# wrap all together +PROMPT='$USERNAME_OUTPUT$HOSTNAME_OUTPUT:$CURRENT_DIR_OUTPUT $LAST_COMMAND_OUTPUT%#$RESET_COLOR ' +RPROMPT='%1(j.fg: [%j].) $GREEN$(git_prompt_info)$RESET_COLOR [%@]' From 0b6e7358850f7fd74556289b1e0c1634896ed66b Mon Sep 17 00:00:00 2001 From: Michele Bologna Date: Tue, 5 Mar 2013 23:01:00 +0100 Subject: [PATCH 264/349] added comment for auto-generated hostname color --- themes/michelebologna.zsh-theme | 1 + 1 file changed, 1 insertion(+) diff --git a/themes/michelebologna.zsh-theme b/themes/michelebologna.zsh-theme index 002d46287..ef4c6d740 100644 --- a/themes/michelebologna.zsh-theme +++ b/themes/michelebologna.zsh-theme @@ -16,6 +16,7 @@ RESET_COLOR="%{$reset_color%}" USERNAME_NORMAL_COLOR=$WHITE USERNAME_ROOT_COLOR=$RED HOSTNAME_NORMAL_COLOR=$BLUE +# uncomment next line if you want auto-generated hostname color #for i in `hostname`; HOSTNAME_NORMAL_COLOR=$COLOR_ARRAY[$[((#i))%7+1]] HOSTNAME_ROOT_COLOR=$RED HOSTNAME_COLOR=%(!.$HOSTNAME_ROOT_COLOR.$HOSTNAME_NORMAL_COLOR) From 49860bd61ff61d284f3b356bec0042cace98a686 Mon Sep 17 00:00:00 2001 From: ishtu Date: Sun, 10 Mar 2013 19:18:33 +0300 Subject: [PATCH 265/349] add function vncviwer --- plugins/osx/osx.plugin.zsh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/osx/osx.plugin.zsh b/plugins/osx/osx.plugin.zsh index f278d4f8d..51cd7c143 100644 --- a/plugins/osx/osx.plugin.zsh +++ b/plugins/osx/osx.plugin.zsh @@ -154,3 +154,6 @@ function trash() { IFS=$temp_ifs } +function vncviewer() { + open vnc://$@ +} From 9991401aaa88c294c37dc8aaaf955d7d08b04508 Mon Sep 17 00:00:00 2001 From: Deepu Sudhakar Date: Sun, 10 Mar 2013 14:36:39 -0500 Subject: [PATCH 266/349] Escape /Users/desudhak/.oh-my-zsh path (previously broke spaces in path) --- tools/upgrade.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/upgrade.sh b/tools/upgrade.sh index b2a1c06c4..a039d32f0 100644 --- a/tools/upgrade.sh +++ b/tools/upgrade.sh @@ -1,6 +1,6 @@ current_path=`pwd` printf '\033[0;34m%s\033[0m\n' "Upgrading Oh My Zsh" -cd $ZSH +cd "$ZSH" if git pull origin master then @@ -16,4 +16,4 @@ 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 +cd "$current_path" From 6dd286bba3fe36278ca6de45567c3842e2db7cc0 Mon Sep 17 00:00:00 2001 From: Vladimir Zakharov Date: Mon, 11 Mar 2013 14:24:12 +0400 Subject: [PATCH 267/349] Mercurial: add aliases for 'incoming' and 'outgoing' commands --- plugins/mercurial/mercurial.plugin.zsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/mercurial/mercurial.plugin.zsh b/plugins/mercurial/mercurial.plugin.zsh index a3a6ff8b6..820e1aee9 100644 --- a/plugins/mercurial/mercurial.plugin.zsh +++ b/plugins/mercurial/mercurial.plugin.zsh @@ -7,7 +7,9 @@ alias hgco='hg checkout' alias hgd='hg diff' alias hged='hg diffmerge' # pull and update +alias hgi='hg incoming' alias hgl='hg pull -u' +alias hgo='hg outgoing' alias hgp='hg push' alias hgs='hg status' # this is the 'git commit --amend' equivalent @@ -17,4 +19,4 @@ function hg_current_branch() { if [ -d .hg ]; then echo hg:$(hg branch) fi -} \ No newline at end of file +} From 72ec24108a88d79a13cc3581f17b440418048a72 Mon Sep 17 00:00:00 2001 From: bertag Date: Mon, 11 Mar 2013 13:41:32 -0600 Subject: [PATCH 268/349] Tweaked parse_git_dirty() in lib/git.zsh to support proper dirty/clean parsing against both git 1.6 and git 1.7+ --- lib/git.zsh | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/git.zsh b/lib/git.zsh index 3e14695bd..172bf4f7a 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -9,16 +9,19 @@ function git_prompt_info() { # Checks if working tree is dirty parse_git_dirty() { local SUBMODULE_SYNTAX='' + local GIT_STATUS='' + local CLEAN_MESSAGE='nothing to commit (working directory clean)' if [[ "$(git config --get oh-my-zsh.hide-status)" != "1" ]]; 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 + fi + GIT_STATUS=$(git status -s ${SUBMODULE_SYNTAX} 2> /dev/null | tail -n1) + if [[ -n $GIT_STATUS && "$GIT_STATUS" != "$CLEAN_MESSAGE" ]]; then echo "$ZSH_THEME_GIT_PROMPT_DIRTY" else echo "$ZSH_THEME_GIT_PROMPT_CLEAN" - fi - fi + fi + fi } # get the difference between the local and remote branches From a66bc75ad7d01d1a223cb60cb73810e0c79d2e4e Mon Sep 17 00:00:00 2001 From: "y.s" Date: Tue, 12 Mar 2013 21:15:22 +0800 Subject: [PATCH 269/349] add: A new theme 'ys'. --- themes/ys.zsh-theme | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 themes/ys.zsh-theme diff --git a/themes/ys.zsh-theme b/themes/ys.zsh-theme new file mode 100644 index 000000000..81f7e03fa --- /dev/null +++ b/themes/ys.zsh-theme @@ -0,0 +1,22 @@ +# Clean, simple, compatible and meaningful. +# Tested on Linux, Unix and Windows. +# It is recommanded to use with a dark background and the font Inconsolata. +# Colors: black, red, green, yellow, *blue, magenta, cyan, and white. +# +# Oct 2012 ys + +function box_name { + [ -f ~/.box-name ] && cat ~/.box-name || hostname -s +} + +local current_dir='${PWD/#$HOME/~}' +local git_info='$(git_prompt_info)' + +ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[white]%}on%{$reset_color%} git:%{$fg[cyan]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}x" +ZSH_THEME_GIT_PROMPT_CLEAN=" %{$fg[green]%}o" + +PROMPT=" +# %{$fg[green]%}%n%{$reset_color%} %{$fg[white]%}at%{$reset_color%} %{$fg[cyan]%}$(box_name)%{$reset_color%} %{$fg[white]%}in%{$reset_color%} %{$terminfo[bold]$fg[yellow]%}${current_dir}%{$reset_color%}${git_info} %{$fg[white]%}[%*]%{$reset_color%} +%{$fg[red]%}$ %{$reset_color%}" From 300f94cb0e1121e7796edbedcbc6d686e755be5b Mon Sep 17 00:00:00 2001 From: Spencer Rinehart Date: Tue, 12 Mar 2013 13:11:18 -0400 Subject: [PATCH 270/349] Use [ -nt ] instead of stat -f%m to check cache files. --- plugins/ant/ant.plugin.zsh | 16 +++------------- plugins/cake/cake.plugin.zsh | 11 ++++------- plugins/gradle/gradle.plugin.zsh | 19 +++---------------- plugins/phing/phing.plugin.zsh | 9 +++------ 4 files changed, 13 insertions(+), 42 deletions(-) diff --git a/plugins/ant/ant.plugin.zsh b/plugins/ant/ant.plugin.zsh index 691d4d2db..45f2b06eb 100644 --- a/plugins/ant/ant.plugin.zsh +++ b/plugins/ant/ant.plugin.zsh @@ -1,17 +1,7 @@ -stat -f%m . > /dev/null 2>&1 -if [ "$?" = 0 ]; then - stat_cmd=(stat -f%m) -else - stat_cmd=(stat -L --format=%Y) -fi - _ant_does_target_list_need_generating () { - if [ ! -f .ant_targets ]; then return 0; - else - accurate=$($stat_cmd .ant_targets) - changed=$($stat_cmd build.xml) - return $(expr $accurate '>=' $changed) - fi + [ ! -f .ant_targets ] && return 0; + [ .ant_targets -nt build.xml ] && return 0; + return 1; } _ant () { diff --git a/plugins/cake/cake.plugin.zsh b/plugins/cake/cake.plugin.zsh index 1d0d196ee..44cc47470 100644 --- a/plugins/cake/cake.plugin.zsh +++ b/plugins/cake/cake.plugin.zsh @@ -14,12 +14,9 @@ _cake_does_target_list_need_generating () { return 1; fi - if [ ! -f ${_cake_task_cache_file} ]; then return 0; - else - accurate=$(stat -f%m $_cake_task_cache_file) - changed=$(stat -f%m Cakefile) - return $(expr $accurate '>=' $changed) - fi + [ ! -f ${_cake_task_cache_file} ] && return 0; + [ ${_cake_task_cache_file} -nt Cakefile ] && return 0; + return 1; } _cake () { @@ -33,4 +30,4 @@ _cake () { fi } -compdef _cake cake \ No newline at end of file +compdef _cake cake diff --git a/plugins/gradle/gradle.plugin.zsh b/plugins/gradle/gradle.plugin.zsh index fc4c78c50..9229512f7 100644 --- a/plugins/gradle/gradle.plugin.zsh +++ b/plugins/gradle/gradle.plugin.zsh @@ -54,27 +54,14 @@ function in_gradle() { 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 + [ ! -f .gradletasknamecache ] && return 0; + [ .gradletasknamecache -nt build.gradle ] && return 0; + return 1; } diff --git a/plugins/phing/phing.plugin.zsh b/plugins/phing/phing.plugin.zsh index 8f4adca08..1abf0a954 100644 --- a/plugins/phing/phing.plugin.zsh +++ b/plugins/phing/phing.plugin.zsh @@ -1,10 +1,7 @@ _phing_does_target_list_need_generating () { - if [ ! -f .phing_targets ]; then return 0; - else - accurate=$(stat -f%m .phing_targets) - changed=$(stat -f%m build.xml) - return $(expr $accurate '>=' $changed) - fi + [ ! -f .phing_targets ] && return 0; + [ .phing_targets -nt build.xml ] && return 0; + return 1; } _phing () { From bdf4f5a347789069dda438e64467344b551fff00 Mon Sep 17 00:00:00 2001 From: Spencer Rinehart Date: Tue, 12 Mar 2013 13:15:05 -0400 Subject: [PATCH 271/349] Allow ":" and "-" characters in phing tasks. Tasks that included hyphens or colons were being excluded from completion. This improves the usage for this. --- plugins/phing/phing.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/phing/phing.plugin.zsh b/plugins/phing/phing.plugin.zsh index 1abf0a954..795f1db85 100644 --- a/plugins/phing/phing.plugin.zsh +++ b/plugins/phing/phing.plugin.zsh @@ -7,7 +7,7 @@ _phing_does_target_list_need_generating () { _phing () { if [ -f build.xml ]; then if _phing_does_target_list_need_generating; then - phing -l |grep -v ":" |grep -v "^$"|grep -v "\-" > .phing_targets + phing -l |grep -v ":$" |grep -v "^-*$" > .phing_targets fi compadd `cat .phing_targets` fi From 4bf174c38b2b8ff9b000accf63155d9756c63a02 Mon Sep 17 00:00:00 2001 From: hacfi Date: Wed, 13 Mar 2013 04:06:16 +0100 Subject: [PATCH 272/349] Autocomplete composer default methods if composer.json is not available MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This plugin currently doesn't autocomplete composer commands if there is no composer.json in the current dir. However, the commands create-project, init, search, selfupdate and show are still useful without a composer.json! --- plugins/composer/composer.plugin.zsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/composer/composer.plugin.zsh b/plugins/composer/composer.plugin.zsh index c9b762d07..639677ba6 100644 --- a/plugins/composer/composer.plugin.zsh +++ b/plugins/composer/composer.plugin.zsh @@ -13,6 +13,8 @@ _composer_get_command_list () { _composer () { if [ -f composer.json ]; then compadd `_composer_get_command_list` + else + compadd create-project init search selfupdate show fi } @@ -26,4 +28,4 @@ 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 +alias cget='curl -s https://getcomposer.org/installer | php' From 55c6fd5c38ad47c2dfa27e6e1a0913d2aa594172 Mon Sep 17 00:00:00 2001 From: "y.s" Date: Wed, 13 Mar 2013 15:55:35 +0800 Subject: [PATCH 273/349] opt: Optimize the color scheme. Add some basic comments. --- themes/ys.zsh-theme | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/themes/ys.zsh-theme b/themes/ys.zsh-theme index 81f7e03fa..3d316390e 100644 --- a/themes/ys.zsh-theme +++ b/themes/ys.zsh-theme @@ -1,22 +1,34 @@ # Clean, simple, compatible and meaningful. -# Tested on Linux, Unix and Windows. -# It is recommanded to use with a dark background and the font Inconsolata. +# Tested on Linux, Unix and Windows under ANSI colors. +# It is recommended to use with a dark background and the font Inconsolata. # Colors: black, red, green, yellow, *blue, magenta, cyan, and white. -# -# Oct 2012 ys +# +# http://ysmood.org/wp/2013/03/my-ys-terminal-theme/ +# Mar 2013 ys +# Machine name. function box_name { [ -f ~/.box-name ] && cat ~/.box-name || hostname -s } +# Directory info. local current_dir='${PWD/#$HOME/~}' -local git_info='$(git_prompt_info)' +# Git info. +local git_info='$(git_prompt_info)' ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[white]%}on%{$reset_color%} git:%{$fg[cyan]%}" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}x" ZSH_THEME_GIT_PROMPT_CLEAN=" %{$fg[green]%}o" +# Prompt format: \n # USER at MACHINE in DIRECTORY on git:BRANCH STATE [TIME] \n $ PROMPT=" -# %{$fg[green]%}%n%{$reset_color%} %{$fg[white]%}at%{$reset_color%} %{$fg[cyan]%}$(box_name)%{$reset_color%} %{$fg[white]%}in%{$reset_color%} %{$terminfo[bold]$fg[yellow]%}${current_dir}%{$reset_color%}${git_info} %{$fg[white]%}[%*]%{$reset_color%} -%{$fg[red]%}$ %{$reset_color%}" +%{$terminfo[bold]$fg[blue]%}#%{$reset_color%} \ +%{$fg[cyan]%}%n \ +%{$fg[white]%}at \ +%{$fg[green]%}$(box_name) \ +%{$fg[white]%}in \ +%{$terminfo[bold]$fg[yellow]%}${current_dir}%{$reset_color%}\ +${git_info} \ +%{$fg[white]%}[%*] +%{$terminfo[bold]$fg[red]%}$ %{$reset_color%}" From 7903f5185622b3ead5608f170b5457121bda413a Mon Sep 17 00:00:00 2001 From: Max Riveiro Date: Wed, 13 Mar 2013 12:36:48 +0400 Subject: [PATCH 274/349] Fix git dirty status in dallas.zsh-theme --- themes/dallas.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/dallas.zsh-theme b/themes/dallas.zsh-theme index e9b4f852a..c9e335521 100644 --- a/themes/dallas.zsh-theme +++ b/themes/dallas.zsh-theme @@ -14,7 +14,7 @@ fi DALLAS_CURRENT_MACH_="%{$fg[green]%}%m%{$fg[white]%}:%{$reset_color%}" # Grab the current filepath, use shortcuts: ~/Desktop # Append the current git branch, if in a git repository: ~aw@master -DALLAS_CURRENT_LOCA_="%{$fg[cyan]%}%~\$(git_prompt_info)%{$reset_color%}" +DALLAS_CURRENT_LOCA_="%{$fg[cyan]%}%~\$(git_prompt_info)%{$reset_color%}\$(parse_git_dirty)" # Grab the current username: dallas DALLAS_CURRENT_USER_="%{$fg[red]%}%n%{$reset_color%}" # Use a % for normal users and a # for privelaged (root) users. From 6c6072c492064abf613fc1b89b4d635020631ef4 Mon Sep 17 00:00:00 2001 From: Ashley Snowdon Date: Wed, 13 Mar 2013 11:21:43 +0000 Subject: [PATCH 275/349] Modified to use full parameter as newer versions of base64 uses lowercase D --- plugins/encode64/encode64.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/encode64/encode64.plugin.zsh b/plugins/encode64/encode64.plugin.zsh index 3b59447c5..4dbd1b453 100644 --- a/plugins/encode64/encode64.plugin.zsh +++ b/plugins/encode64/encode64.plugin.zsh @@ -1,4 +1,4 @@ encode64(){ echo -n $1 | base64 } -decode64(){ echo -n $1 | base64 -D } +decode64(){ echo -n $1 | base64 --decode } alias e64=encode64 alias d64=decode64 From 56e835426bc895a191540d4d640b7750a81ff23a Mon Sep 17 00:00:00 2001 From: Philip Stark Date: Thu, 14 Mar 2013 00:31:14 +0100 Subject: [PATCH 276/349] fix git_prompt_status() to not say the repository has untracked files all the time --- lib/git.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/git.zsh b/lib/git.zsh index 3e14695bd..5cbd819f8 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -62,7 +62,7 @@ function git_prompt_long_sha() { git_prompt_status() { INDEX=$(git status --porcelain -b 2> /dev/null) STATUS="" - if $(echo "$INDEX" | grep '^?? ' &> /dev/null); then + if $(echo "$INDEX" | grep '^\?\? ' &> /dev/null); then STATUS="$ZSH_THEME_GIT_PROMPT_UNTRACKED$STATUS" fi if $(echo "$INDEX" | grep '^A ' &> /dev/null); then From 1cfd813f796e4472575daf4b51cd816bacc833e0 Mon Sep 17 00:00:00 2001 From: rylwin Date: Wed, 13 Mar 2013 22:48:28 -0500 Subject: [PATCH 277/349] last-working-dir: Use >! to overwrite $cache_file Use ">!" to overwrite $cache_file in case noclobber is set. When noclobber is set, zsh will not allow the use of ">" to overwrite the contents of a file. Instead, it displays a "file exists" error. By using ">!" instead, we tell zsh to overwrite the file without complaining. --- plugins/last-working-dir/last-working-dir.plugin.zsh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/last-working-dir/last-working-dir.plugin.zsh b/plugins/last-working-dir/last-working-dir.plugin.zsh index 190bc279d..4903616e3 100644 --- a/plugins/last-working-dir/last-working-dir.plugin.zsh +++ b/plugins/last-working-dir/last-working-dir.plugin.zsh @@ -9,7 +9,8 @@ local cache_file="$ZSH/cache/last-working-dir" # Updates the last directory once directory is changed. function chpwd() { - echo "$PWD" > "$cache_file" + # Use >! in case noclobber is set to avoid "file exists" error + echo "$PWD" >! "$cache_file" } # Changes directory to the last working directory. From 4c8bba57acb0f64edde89321d5d6cbc3a5226cac Mon Sep 17 00:00:00 2001 From: Ryan Winograd Date: Wed, 13 Mar 2013 22:51:12 -0500 Subject: [PATCH 278/349] Fix whitespace That's what I get for using GitHub text editor and not checking tabs. --- plugins/last-working-dir/last-working-dir.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/last-working-dir/last-working-dir.plugin.zsh b/plugins/last-working-dir/last-working-dir.plugin.zsh index 4903616e3..ccf0f5b22 100644 --- a/plugins/last-working-dir/last-working-dir.plugin.zsh +++ b/plugins/last-working-dir/last-working-dir.plugin.zsh @@ -9,7 +9,7 @@ local cache_file="$ZSH/cache/last-working-dir" # Updates the last directory once directory is changed. function chpwd() { - # Use >! in case noclobber is set to avoid "file exists" error + # Use >! in case noclobber is set to avoid "file exists" error echo "$PWD" >! "$cache_file" } From 3826c7bf85b0005438c872fedc7aa1b4174e82c9 Mon Sep 17 00:00:00 2001 From: Flavius Aspra Date: Fri, 15 Mar 2013 22:07:47 +0100 Subject: [PATCH 279/349] allow setting a custom HISTFILE before oh-my-zsh is loaded --- lib/history.zsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/history.zsh b/lib/history.zsh index 876936b87..655945166 100644 --- a/lib/history.zsh +++ b/lib/history.zsh @@ -1,5 +1,7 @@ ## Command history configuration -HISTFILE=$HOME/.zsh_history +if [ -z $HISTFILE ]; then + HISTFILE=$HOME/.zsh_history +fi HISTSIZE=10000 SAVEHIST=10000 From 2a1c9ff340401ca63efd846ed626903d72771c25 Mon Sep 17 00:00:00 2001 From: Marcel Wolf Date: Sat, 16 Mar 2013 00:06:46 -0400 Subject: [PATCH 280/349] add ssh-agent option to set default lifetime of identities By default, ssh-agent stores identities forever. It has an option to set a maximum lifetime for identites (useful to expire passphrase protected keys). Allow this option to be set using: zstyle :omz:plugins:ssh-agent lifetime