mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-11-12 21:39:48 +01:00
Merge branch 'master' of github.com:robbyrussell/oh-my-zsh
This commit is contained in:
commit
56f094860b
27 changed files with 732 additions and 184 deletions
|
@ -26,17 +26,20 @@ h3. The manual way
|
||||||
|
|
||||||
@git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh@
|
@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
|
||||||
|
|
||||||
*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 ~/.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@
|
@cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc@
|
||||||
|
|
||||||
3. Set zsh as your default shell:
|
|
||||||
|
4. Set zsh as your default shell:
|
||||||
|
|
||||||
@chsh -s /bin/zsh@
|
@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?
|
h3. Problems?
|
||||||
|
|
||||||
|
|
19
lib/git.zsh
19
lib/git.zsh
|
@ -18,6 +18,25 @@ parse_git_dirty() {
|
||||||
fi
|
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
|
||||||
|
}
|
||||||
|
|
||||||
# Checks if there are commits ahead from remote
|
# Checks if there are commits ahead from remote
|
||||||
function git_prompt_ahead() {
|
function git_prompt_ahead() {
|
||||||
|
|
71
plugins/coffee/_coffee
Normal file
71
plugins/coffee/_coffee
Normal file
|
@ -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
|
|
@ -2,4 +2,4 @@
|
||||||
# as seen in http://www.porcheron.info/command-not-found-for-zsh/
|
# as seen in http://www.porcheron.info/command-not-found-for-zsh/
|
||||||
# this is installed in Ubuntu
|
# this is installed in Ubuntu
|
||||||
|
|
||||||
source /etc/zsh_command_not_found
|
[[ -e /etc/zsh_command_not_found ]] && source /etc/zsh_command_not_found
|
||||||
|
|
|
@ -195,7 +195,7 @@ __git-flow-feature ()
|
||||||
'start:Start a new feature branch.'
|
'start:Start a new feature branch.'
|
||||||
'finish:Finish a feature branch.'
|
'finish:Finish a feature branch.'
|
||||||
'list:List all your feature branches. (Alias to `git flow feature`)'
|
'list:List all your feature branches. (Alias to `git flow feature`)'
|
||||||
'publish: public'
|
'publish: publish'
|
||||||
'track: track'
|
'track: track'
|
||||||
'diff: diff'
|
'diff: diff'
|
||||||
'rebase: rebase'
|
'rebase: rebase'
|
||||||
|
|
348
plugins/git-hubflow/git-hubflow.plugin.zsh
Normal file
348
plugins/git-hubflow/git-hubflow.plugin.zsh
Normal file
|
@ -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'
|
|
@ -5,7 +5,7 @@ alias gst='git status'
|
||||||
compdef _git gst=git-status
|
compdef _git gst=git-status
|
||||||
alias gl='git pull'
|
alias gl='git pull'
|
||||||
compdef _git gl=git-pull
|
compdef _git gl=git-pull
|
||||||
alias gup='git fetch && git rebase'
|
alias gup='git pull --rebase'
|
||||||
compdef _git gup=git-fetch
|
compdef _git gup=git-fetch
|
||||||
alias gp='git push'
|
alias gp='git push'
|
||||||
compdef _git gp=git-push
|
compdef _git gp=git-push
|
||||||
|
@ -38,6 +38,7 @@ alias gm='git merge'
|
||||||
compdef _git gm=git-merge
|
compdef _git gm=git-merge
|
||||||
alias grh='git reset HEAD'
|
alias grh='git reset HEAD'
|
||||||
alias grhh='git reset HEAD --hard'
|
alias grhh='git reset HEAD --hard'
|
||||||
|
alias gwc='git whatchanged -p --abbrev-commit --pretty=medium'
|
||||||
|
|
||||||
# Will cd into the top of the current repository
|
# Will cd into the top of the current repository
|
||||||
# or submodule.
|
# or submodule.
|
||||||
|
|
|
@ -61,6 +61,7 @@ exist_gh() { # [DIRECTORY]
|
||||||
cd "$1"
|
cd "$1"
|
||||||
name=$( git config user.name )
|
name=$( git config user.name )
|
||||||
ghuser=$( git config github.user )
|
ghuser=$( git config github.user )
|
||||||
|
repo=$1
|
||||||
|
|
||||||
git remote add origin git@github.com:${ghuser}/${repo}.git
|
git remote add origin git@github.com:${ghuser}/${repo}.git
|
||||||
git push -u origin master
|
git push -u origin master
|
||||||
|
|
|
@ -154,5 +154,6 @@ case "$words[1]" in
|
||||||
_arguments \
|
_arguments \
|
||||||
$_command_args \
|
$_command_args \
|
||||||
'(--app)--app[the app name]' \
|
'(--app)--app[the app name]' \
|
||||||
|
'(--remote)--remote[the remote name]' \
|
||||||
&& return 0
|
&& return 0
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ open_jira_issue () {
|
||||||
`open $jira_url/secure/CreateIssue!default.jspa`;
|
`open $jira_url/secure/CreateIssue!default.jspa`;
|
||||||
else
|
else
|
||||||
echo "Opening issue #$1";
|
echo "Opening issue #$1";
|
||||||
`open $jira_url/issues/$1`;
|
`open $jira_url/browse/$1`;
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
23
plugins/last-working-dir/last-working-dir.plugin.zsh
Normal file
23
plugins/last-working-dir/last-working-dir.plugin.zsh
Normal file
|
@ -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
|
119
plugins/pass/_pass
Normal file
119
plugins/pass/_pass
Normal file
|
@ -0,0 +1,119 @@
|
||||||
|
#compdef pass
|
||||||
|
#autoload
|
||||||
|
|
||||||
|
# Copyright (C) 2012:
|
||||||
|
# Johan Venant <jvenant@invicem.pro>
|
||||||
|
# Brian Mattern <rephorm@rephorm.com>
|
||||||
|
# Jason A. Donenfeld <Jason@zx2c4.com>.
|
||||||
|
# Santiago Borrazás <sanbor@gmail.com>
|
||||||
|
# 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')
|
||||||
|
}
|
|
@ -65,12 +65,13 @@
|
||||||
function per-directory-history-toggle-history() {
|
function per-directory-history-toggle-history() {
|
||||||
if [[ $_per_directory_history_is_global == true ]]; then
|
if [[ $_per_directory_history_is_global == true ]]; then
|
||||||
_per-directory-history-set-directory-history
|
_per-directory-history-set-directory-history
|
||||||
echo "using local history\n"
|
print "\nusing local history\n"
|
||||||
else
|
else
|
||||||
_per-directory-history-set-global-history
|
_per-directory-history-set-global-history
|
||||||
echo "using global history\n"
|
print "\nusing global history\n"
|
||||||
fi
|
fi
|
||||||
zle reset-prompt
|
zle .push-line
|
||||||
|
zle .accept-line
|
||||||
}
|
}
|
||||||
|
|
||||||
autoload per-directory-history-toggle-history
|
autoload per-directory-history-toggle-history
|
||||||
|
|
|
@ -5,6 +5,7 @@ alias sp='ruby script/plugin'
|
||||||
alias sr='ruby script/runner'
|
alias sr='ruby script/runner'
|
||||||
alias ssp='ruby script/spec'
|
alias ssp='ruby script/spec'
|
||||||
alias rdbm='rake db:migrate'
|
alias rdbm='rake db:migrate'
|
||||||
|
alias rdbtp='rake db:test:prepare'
|
||||||
alias sc='ruby script/console'
|
alias sc='ruby script/console'
|
||||||
alias sd='ruby script/server --debugger'
|
alias sd='ruby script/server --debugger'
|
||||||
alias devlog='tail -f log/development.log'
|
alias devlog='tail -f log/development.log'
|
||||||
|
|
147
plugins/rvm/_rvm
147
plugins/rvm/_rvm
|
@ -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
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
fpath=($rvm_path/scripts/zsh/Completion $fpath)
|
||||||
|
|
||||||
alias rubies='rvm list rubies'
|
alias rubies='rvm list rubies'
|
||||||
alias gemsets='rvm gemset list'
|
alias gemsets='rvm gemset list'
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# if using GNU screen, let the zsh tell screen what the title and hardstatus
|
# if using GNU screen, let the zsh tell screen what the title and hardstatus
|
||||||
# of the tab window should be.
|
# of the tab window should be.
|
||||||
if [[ $TERM == "screen" ]]; then
|
if [[ "$TERM" == screen* ]]; then
|
||||||
if [[ $_GET_PATH == '' ]]; then
|
if [[ $_GET_PATH == '' ]]; then
|
||||||
_GET_PATH='echo $PWD | sed "s/^\/Users\//~/;s/^\/home\//~/;s/^~$USER/~/"'
|
_GET_PATH='echo $PWD | sed "s/^\/Users\//~/;s/^\/home\//~/;s/^~$USER/~/"'
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -1,7 +1,15 @@
|
||||||
|
|
||||||
function svn_prompt_info {
|
function svn_prompt_info {
|
||||||
if [ $(in_svn) ]; then
|
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\
|
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
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -20,6 +28,16 @@ function svn_get_repo_name {
|
||||||
fi
|
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 {
|
function svn_get_rev_nr {
|
||||||
if [ $(in_svn) ]; then
|
if [ $(in_svn) ]; then
|
||||||
svn info 2> /dev/null | sed -n s/Revision:\ //p
|
svn info 2> /dev/null | sed -n s/Revision:\ //p
|
||||||
|
@ -29,9 +47,11 @@ function svn_get_rev_nr {
|
||||||
function svn_dirty_choose {
|
function svn_dirty_choose {
|
||||||
if [ $(in_svn) ]; then
|
if [ $(in_svn) ]; then
|
||||||
svn status 2> /dev/null | grep -Eq '^\s*[ACDIM!?L]'
|
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
|
echo $1
|
||||||
else
|
else
|
||||||
|
# Otherwise, no lines were found, or an error occurred. Return clean.
|
||||||
echo $2
|
echo $2
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -4,6 +4,6 @@
|
||||||
# Taken from:
|
# Taken from:
|
||||||
# http://ruslanspivak.com/2010/06/02/urlencode-and-urldecode-from-a-command-line/
|
# 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])"'
|
alias urldecode='node -e "console.log(decodeURIComponent(process.argv[1]))"'
|
||||||
|
|
|
@ -5,12 +5,7 @@ function zle-line-init zle-keymap-select {
|
||||||
zle -N zle-line-init
|
zle -N zle-line-init
|
||||||
zle -N zle-keymap-select
|
zle -N zle-keymap-select
|
||||||
|
|
||||||
#changing mode clobbers the keybinds, so store the keybinds before and execute
|
|
||||||
#them after
|
|
||||||
binds=`bindkey -L`
|
|
||||||
bindkey -v
|
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 wasn't setup by theme, define default
|
||||||
if [[ "$MODE_INDICATOR" == "" ]]; then
|
if [[ "$MODE_INDICATOR" == "" ]]; then
|
||||||
|
|
26
themes/adben.zsh-theme
Normal file
26
themes/adben.zsh-theme
Normal file
|
@ -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 ###########
|
|
@ -1,10 +1,22 @@
|
||||||
PROMPT=$'
|
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%} '
|
%{$fg_bold[black]%}>%{$reset_color%} '
|
||||||
|
|
||||||
PROMPT2="%{$fg_blod[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_SUFFIX="]%{$reset_color%} "
|
||||||
ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}*%{$fg[green]%}"
|
ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}*%{$fg[green]%}"
|
||||||
ZSH_THEME_GIT_PROMPT_CLEAN=""
|
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
|
||||||
|
}
|
||||||
|
|
12
themes/frontcube.zsh-theme
Normal file
12
themes/frontcube.zsh-theme
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
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) $(rvm)'
|
||||||
|
|
||||||
|
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%}"
|
24
themes/intheloop.zsh-theme
Normal file
24
themes/intheloop.zsh-theme
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
# 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%}"
|
||||||
|
|
||||||
|
local host_color="green"
|
||||||
|
if [ -n "$SSH_CLIENT" ]; then
|
||||||
|
local host_color="red"
|
||||||
|
fi
|
||||||
|
|
||||||
|
PROMPT='
|
||||||
|
%{$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]%}"
|
||||||
|
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%}"
|
|
@ -1,15 +1,18 @@
|
||||||
ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[white]%}["
|
ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[white]%}["
|
||||||
ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%}"
|
ZSH_THEME_GIT_PROMPT_SUFFIX=""
|
||||||
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}●%{$reset_color%}"
|
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}●%{$reset_color%}]%{$reset_color%} "
|
||||||
ZSH_THEME_GIT_PROMPT_CLEAN=""
|
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
|
vcs_status() {
|
||||||
git_custom_status() {
|
if [[ ( $(whence in_svn) != "" ) && ( $(in_svn) == 1 ) ]]; then
|
||||||
local cb=$(current_branch)
|
svn_prompt_info
|
||||||
if [ -n "$cb" ]; then
|
else
|
||||||
echo "- $ZSH_THEME_GIT_PROMPT_PREFIX$(current_branch)$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX"
|
git_prompt_info
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PROMPT='%2~ $(vcs_status)»%b '
|
||||||
PROMPT='%2~ $(git_custom_status) »%b '
|
|
13
themes/tjkirch_mod.zsh-theme
Normal file
13
themes/tjkirch_mod.zsh-theme
Normal file
|
@ -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%}'
|
|
@ -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"
|
echo "\033[0;34mLooking for an existing zsh config...\033[0m"
|
||||||
if [ -f ~/.zshrc ] || [ -h ~/.zshrc ]
|
if [ -f ~/.zshrc ] || [ -h ~/.zshrc ]
|
||||||
then
|
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;
|
cp ~/.zshrc ~/.zshrc.pre-oh-my-zsh;
|
||||||
rm ~/.zshrc;
|
rm ~/.zshrc;
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in a new issue