mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-02-13 03:01:32 +01:00
Merge branch 'master' of git://github.com/robbyrussell/oh-my-zsh
This commit is contained in:
commit
4236dcdc58
239 changed files with 12830 additions and 694 deletions
21
MIT-LICENSE.txt
Normal file
21
MIT-LICENSE.txt
Normal file
|
|
@ -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.
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
A handful of functions, auto-complete helpers, and stuff that makes you shout...
|
!https://s3.amazonaws.com/ohmyzsh/oh-my-zsh-logo.png!
|
||||||
|
|
||||||
|
oh-my-zsh is an open source, community-driven framework for managing your ZSH configuration. It comes bundled with a ton of helpful functions, helpers, plugins, themes, and few things that make you shout...
|
||||||
|
|
||||||
bq. "OH MY ZSHELL!"
|
bq. "OH MY ZSHELL!"
|
||||||
|
|
||||||
|
|
@ -13,11 +14,11 @@ You can install this via the command line with either `curl` or `wget`.
|
||||||
|
|
||||||
h4. via `curl`
|
h4. via `curl`
|
||||||
|
|
||||||
@curl -L https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh | sh@
|
@curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh@
|
||||||
|
|
||||||
h4. via `wget`
|
h4. via `wget`
|
||||||
|
|
||||||
@wget --no-check-certificate https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh@
|
@wget --no-check-certificate https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O - | sh@
|
||||||
|
|
||||||
h3. The manual way
|
h3. The manual way
|
||||||
|
|
||||||
|
|
@ -26,17 +27,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?
|
||||||
|
|
||||||
|
|
@ -60,6 +64,17 @@ 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 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/@.
|
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@
|
||||||
|
|
||||||
|
To upgrade directly from the command line, just run @upgrade_oh_my_zsh@
|
||||||
|
|
||||||
h3. Uninstalling
|
h3. Uninstalling
|
||||||
|
|
||||||
|
|
@ -75,8 +90,6 @@ h3. (Don't) Send us your theme! (for now)
|
||||||
|
|
||||||
We have enough themes for the time being. Please fork the project and add on in there, you can let people know how to grab it from there.
|
We have enough themes for the time being. Please fork the project and add on in there, you can let people know how to grab it from there.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
h2. Contributors
|
h2. Contributors
|
||||||
|
|
||||||
This project wouldn't exist without all of our awesome users and contributors.
|
This project wouldn't exist without all of our awesome users and contributors.
|
||||||
|
|
|
||||||
|
|
@ -8,16 +8,28 @@ alias -- -='cd -'
|
||||||
|
|
||||||
# Super user
|
# Super user
|
||||||
alias _='sudo'
|
alias _='sudo'
|
||||||
|
alias please='sudo'
|
||||||
|
|
||||||
#alias g='grep -in'
|
#alias g='grep -in'
|
||||||
|
|
||||||
# Show history
|
# Show history
|
||||||
|
if [ "$HIST_STAMPS" = "mm/dd/yyyy" ]
|
||||||
|
then
|
||||||
|
alias history='fc -fl 1'
|
||||||
|
elif [ "$HIST_STAMPS" = "dd.mm.yyyy" ]
|
||||||
|
then
|
||||||
|
alias history='fc -El 1'
|
||||||
|
elif [ "$HIST_STAMPS" = "yyyy-mm-dd" ]
|
||||||
|
then
|
||||||
|
alias history='fc -il 1'
|
||||||
|
else
|
||||||
alias history='fc -l 1'
|
alias history='fc -l 1'
|
||||||
|
fi
|
||||||
# List direcory contents
|
# List direcory contents
|
||||||
alias lsa='ls -lah'
|
alias lsa='ls -lah'
|
||||||
alias l='ls -la'
|
alias l='ls -la'
|
||||||
alias ll='ls -l'
|
alias ll='ls -l'
|
||||||
|
alias la='ls -lA'
|
||||||
alias sl=ls # often screw this up
|
alias sl=ls # often screw this up
|
||||||
|
|
||||||
alias afind='ack-grep -il'
|
alias afind='ack-grep -il'
|
||||||
|
|
|
||||||
10
lib/bzr.zsh
Normal file
10
lib/bzr.zsh
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
## Bazaar integration
|
||||||
|
## Just works with the GIT integration just add $(bzr_prompt_info) to the PROMPT
|
||||||
|
function 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]%} * %{$fg[green]%}"
|
||||||
|
echo "$ZSH_THEME_SCM_PROMPT_PREFIX$BZR_CB$BZR_DIRTY$ZSH_THEME_GIT_PROMPT_SUFFIX"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
@ -32,10 +32,12 @@ zstyle ':completion:*:cd:*' tag-order local-directories directory-stack path-dir
|
||||||
cdpath=(.)
|
cdpath=(.)
|
||||||
|
|
||||||
# use /etc/hosts and known_hosts for hostname completion
|
# use /etc/hosts and known_hosts for hostname completion
|
||||||
[ -r /etc/ssh/ssh_known_hosts ] && _global_ssh_hosts=(${${${${(f)"$(</etc/ssh/ssh_known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _ssh_hosts=()
|
[ -r /etc/ssh/ssh_known_hosts ] && _global_ssh_hosts=(${${${${(f)"$(</etc/ssh/ssh_known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _global_ssh_hosts=()
|
||||||
[ -r ~/.ssh/known_hosts ] && _ssh_hosts=(${${${${(f)"$(<$HOME/.ssh/known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _ssh_hosts=()
|
[ -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)~~"$(</etc/hosts)"}%%\#*}##[:blank:]#[^[:blank:]]#}}} || _etc_hosts=()
|
[ -r /etc/hosts ] && : ${(A)_etc_hosts:=${(s: :)${(ps:\t:)${${(f)~~"$(</etc/hosts)"}%%\#*}##[:blank:]#[^[:blank:]]#}}} || _etc_hosts=()
|
||||||
hosts=(
|
hosts=(
|
||||||
|
"$_ssh_config[@]"
|
||||||
"$_global_ssh_hosts[@]"
|
"$_global_ssh_hosts[@]"
|
||||||
"$_ssh_hosts[@]"
|
"$_ssh_hosts[@]"
|
||||||
"$_etc_hosts[@]"
|
"$_etc_hosts[@]"
|
||||||
|
|
@ -43,6 +45,7 @@ hosts=(
|
||||||
localhost
|
localhost
|
||||||
)
|
)
|
||||||
zstyle ':completion:*:hosts' hosts $hosts
|
zstyle ':completion:*:hosts' hosts $hosts
|
||||||
|
zstyle ':completion:*' users off
|
||||||
|
|
||||||
# Use caching so that commands like apt and dpkg complete are useable
|
# Use caching so that commands like apt and dpkg complete are useable
|
||||||
zstyle ':completion::complete:*' use-cache 1
|
zstyle ':completion::complete:*' use-cache 1
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,3 @@
|
||||||
setopt correct_all
|
|
||||||
|
|
||||||
alias man='nocorrect man'
|
alias man='nocorrect man'
|
||||||
alias mv='nocorrect mv'
|
alias mv='nocorrect mv'
|
||||||
alias mysql='nocorrect mysql'
|
alias mysql='nocorrect mysql'
|
||||||
|
|
@ -8,3 +6,8 @@ alias gist='nocorrect gist'
|
||||||
alias heroku='nocorrect heroku'
|
alias heroku='nocorrect heroku'
|
||||||
alias ebuild='nocorrect ebuild'
|
alias ebuild='nocorrect ebuild'
|
||||||
alias hpodder='nocorrect hpodder'
|
alias hpodder='nocorrect hpodder'
|
||||||
|
alias sudo='nocorrect sudo'
|
||||||
|
|
||||||
|
if [[ "$ENABLE_CORRECTION" == "true" ]]; then
|
||||||
|
setopt correct_all
|
||||||
|
fi
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@
|
||||||
setopt auto_name_dirs
|
setopt auto_name_dirs
|
||||||
setopt auto_pushd
|
setopt auto_pushd
|
||||||
setopt pushd_ignore_dups
|
setopt pushd_ignore_dups
|
||||||
|
setopt pushdminus
|
||||||
|
|
||||||
alias ..='cd ..'
|
alias ..='cd ..'
|
||||||
alias cd..='cd ..'
|
alias cd..='cd ..'
|
||||||
|
|
@ -11,14 +12,14 @@ alias cd.....='cd ../../../..'
|
||||||
alias cd/='cd /'
|
alias cd/='cd /'
|
||||||
|
|
||||||
alias 1='cd -'
|
alias 1='cd -'
|
||||||
alias 2='cd +2'
|
alias 2='cd -2'
|
||||||
alias 3='cd +3'
|
alias 3='cd -3'
|
||||||
alias 4='cd +4'
|
alias 4='cd -4'
|
||||||
alias 5='cd +5'
|
alias 5='cd -5'
|
||||||
alias 6='cd +6'
|
alias 6='cd -6'
|
||||||
alias 7='cd +7'
|
alias 7='cd -7'
|
||||||
alias 8='cd +8'
|
alias 8='cd -8'
|
||||||
alias 9='cd +9'
|
alias 9='cd -9'
|
||||||
|
|
||||||
cd () {
|
cd () {
|
||||||
if [[ "x$*" == "x..." ]]; then
|
if [[ "x$*" == "x..." ]]; then
|
||||||
|
|
@ -26,9 +27,12 @@ cd () {
|
||||||
elif [[ "x$*" == "x...." ]]; then
|
elif [[ "x$*" == "x...." ]]; then
|
||||||
cd ../../..
|
cd ../../..
|
||||||
elif [[ "x$*" == "x....." ]]; then
|
elif [[ "x$*" == "x....." ]]; then
|
||||||
cd ../../..
|
|
||||||
elif [[ "x$*" == "x......" ]]; then
|
|
||||||
cd ../../../..
|
cd ../../../..
|
||||||
|
elif [[ "x$*" == "x......" ]]; then
|
||||||
|
cd ../../../../..
|
||||||
|
elif [ -d ~/.autoenv ]; then
|
||||||
|
source ~/.autoenv/activate.sh
|
||||||
|
autoenv_cd "$@"
|
||||||
else
|
else
|
||||||
builtin cd "$@"
|
builtin cd "$@"
|
||||||
fi
|
fi
|
||||||
|
|
@ -37,8 +41,3 @@ cd () {
|
||||||
alias md='mkdir -p'
|
alias md='mkdir -p'
|
||||||
alias rd=rmdir
|
alias rd=rmdir
|
||||||
alias d='dirs -v | head -10'
|
alias d='dirs -v | head -10'
|
||||||
|
|
||||||
# mkdir & cd to it
|
|
||||||
function mcd() {
|
|
||||||
mkdir -p "$1" && cd "$1";
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
autoload -U edit-command-line
|
|
||||||
zle -N edit-command-line
|
|
||||||
bindkey '\C-x\C-e' edit-command-line
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
function zsh_stats() {
|
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() {
|
function uninstall_oh_my_zsh() {
|
||||||
|
|
@ -15,3 +15,61 @@ function take() {
|
||||||
cd $1
|
cd $1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Get the value of an alias.
|
||||||
|
#
|
||||||
|
# Arguments:
|
||||||
|
# 1. alias - The alias to get its value from
|
||||||
|
# STDOUT:
|
||||||
|
# The value of alias $1 (if it has one).
|
||||||
|
# Return value:
|
||||||
|
# 0 if the alias was found,
|
||||||
|
# 1 if it does not exist
|
||||||
|
#
|
||||||
|
function alias_value() {
|
||||||
|
alias "$1" | sed "s/^$1='\(.*\)'$/\1/"
|
||||||
|
test $(alias "$1")
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Try to get the value of an alias,
|
||||||
|
# otherwise return the input.
|
||||||
|
#
|
||||||
|
# Arguments:
|
||||||
|
# 1. alias - The alias to get its value from
|
||||||
|
# STDOUT:
|
||||||
|
# The value of alias $1, or $1 if there is no alias $1.
|
||||||
|
# Return value:
|
||||||
|
# Always 0
|
||||||
|
#
|
||||||
|
function try_alias_value() {
|
||||||
|
alias_value "$1" || echo "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Set variable "$1" to default value "$2" if "$1" is not yet defined.
|
||||||
|
#
|
||||||
|
# Arguments:
|
||||||
|
# 1. name - The variable to set
|
||||||
|
# 2. val - The default value
|
||||||
|
# Return value:
|
||||||
|
# 0 if the variable exists, 3 if it was set
|
||||||
|
#
|
||||||
|
function default() {
|
||||||
|
test `typeset +m "$1"` && return 0
|
||||||
|
typeset -g "$1"="$2" && return 3
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Set enviroment variable "$1" to default value "$2" if "$1" is not yet defined.
|
||||||
|
#
|
||||||
|
# Arguments:
|
||||||
|
# 1. name - The env variable to set
|
||||||
|
# 2. val - The default value
|
||||||
|
# Return value:
|
||||||
|
# 0 if the env variable exists, 3 if it was set
|
||||||
|
#
|
||||||
|
function env_default() {
|
||||||
|
env | grep -q "^$1=" && return 0
|
||||||
|
export "$1=$2" && return 3
|
||||||
|
}
|
||||||
|
|
|
||||||
63
lib/git.zsh
63
lib/git.zsh
|
|
@ -1,46 +1,79 @@
|
||||||
# get the name of the branch we are on
|
# get the name of the branch we are on
|
||||||
function git_prompt_info() {
|
function git_prompt_info() {
|
||||||
ref=$(git symbolic-ref HEAD 2> /dev/null) || return
|
if [[ "$(git config --get oh-my-zsh.hide-status)" != "1" ]]; then
|
||||||
|
ref=$(command git symbolic-ref HEAD 2> /dev/null) || \
|
||||||
|
ref=$(command 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"
|
echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# Checks if working tree is dirty
|
# Checks if working tree is dirty
|
||||||
parse_git_dirty() {
|
parse_git_dirty() {
|
||||||
local SUBMODULE_SYNTAX=''
|
local SUBMODULE_SYNTAX=''
|
||||||
|
local GIT_STATUS=''
|
||||||
|
local CLEAN_MESSAGE='nothing to commit (working directory clean)'
|
||||||
|
if [[ "$(command git config --get oh-my-zsh.hide-status)" != "1" ]]; then
|
||||||
if [[ $POST_1_7_2_GIT -gt 0 ]]; then
|
if [[ $POST_1_7_2_GIT -gt 0 ]]; then
|
||||||
SUBMODULE_SYNTAX="--ignore-submodules=dirty"
|
SUBMODULE_SYNTAX="--ignore-submodules=dirty"
|
||||||
fi
|
fi
|
||||||
if [[ -n $(git status -s ${SUBMODULE_SYNTAX} 2> /dev/null) ]]; then
|
if [[ "$DISABLE_UNTRACKED_FILES_DIRTY" == "true" ]]; then
|
||||||
|
GIT_STATUS=$(command git status -s ${SUBMODULE_SYNTAX} -uno 2> /dev/null | tail -n1)
|
||||||
|
else
|
||||||
|
GIT_STATUS=$(command git status -s ${SUBMODULE_SYNTAX} 2> /dev/null | tail -n1)
|
||||||
|
fi
|
||||||
|
if [[ -n $GIT_STATUS ]]; then
|
||||||
echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
|
echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
|
||||||
else
|
else
|
||||||
echo "$ZSH_THEME_GIT_PROMPT_CLEAN"
|
echo "$ZSH_THEME_GIT_PROMPT_CLEAN"
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
echo "$ZSH_THEME_GIT_PROMPT_CLEAN"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# get the difference between the local and remote branches
|
||||||
|
git_remote_status() {
|
||||||
|
remote=${$(command git rev-parse --verify ${hook_com[branch]}@{upstream} --symbolic-full-name 2>/dev/null)/refs\/remotes\/}
|
||||||
|
if [[ -n ${remote} ]] ; then
|
||||||
|
ahead=$(command git rev-list ${hook_com[branch]}@{upstream}..HEAD 2>/dev/null | wc -l)
|
||||||
|
behind=$(command 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() {
|
||||||
if $(echo "$(git log origin/$(current_branch)..HEAD 2> /dev/null)" | grep '^commit' &> /dev/null); then
|
if $(echo "$(command git log origin/$(current_branch)..HEAD 2> /dev/null)" | grep '^commit' &> /dev/null); then
|
||||||
echo "$ZSH_THEME_GIT_PROMPT_AHEAD"
|
echo "$ZSH_THEME_GIT_PROMPT_AHEAD"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Formats prompt string for current git commit short SHA
|
# Formats prompt string for current git commit short SHA
|
||||||
function git_prompt_short_sha() {
|
function git_prompt_short_sha() {
|
||||||
SHA=$(git rev-parse --short HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER"
|
SHA=$(command git rev-parse --short HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Formats prompt string for current git commit long SHA
|
# Formats prompt string for current git commit long SHA
|
||||||
function git_prompt_long_sha() {
|
function git_prompt_long_sha() {
|
||||||
SHA=$(git rev-parse HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER"
|
SHA=$(command git rev-parse HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Get the status of the working tree
|
# Get the status of the working tree
|
||||||
git_prompt_status() {
|
git_prompt_status() {
|
||||||
INDEX=$(git status --porcelain 2> /dev/null)
|
INDEX=$(command git status --porcelain -b 2> /dev/null)
|
||||||
STATUS=""
|
STATUS=""
|
||||||
if $(echo "$INDEX" | grep '^?? ' &> /dev/null); then
|
if $(echo "$INDEX" | grep -E '^\?\? ' &> /dev/null); then
|
||||||
STATUS="$ZSH_THEME_GIT_PROMPT_UNTRACKED$STATUS"
|
STATUS="$ZSH_THEME_GIT_PROMPT_UNTRACKED$STATUS"
|
||||||
fi
|
fi
|
||||||
if $(echo "$INDEX" | grep '^A ' &> /dev/null); then
|
if $(echo "$INDEX" | grep '^A ' &> /dev/null); then
|
||||||
|
|
@ -60,12 +93,26 @@ git_prompt_status() {
|
||||||
fi
|
fi
|
||||||
if $(echo "$INDEX" | grep '^ D ' &> /dev/null); then
|
if $(echo "$INDEX" | grep '^ D ' &> /dev/null); then
|
||||||
STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
|
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
|
elif $(echo "$INDEX" | grep '^AD ' &> /dev/null); then
|
||||||
STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
|
STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
|
||||||
fi
|
fi
|
||||||
|
if $(command 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
|
if $(echo "$INDEX" | grep '^UU ' &> /dev/null); then
|
||||||
STATUS="$ZSH_THEME_GIT_PROMPT_UNMERGED$STATUS"
|
STATUS="$ZSH_THEME_GIT_PROMPT_UNMERGED$STATUS"
|
||||||
fi
|
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
|
echo $STATUS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -76,7 +123,7 @@ function git_compare_version() {
|
||||||
local INPUT_GIT_VERSION=$1;
|
local INPUT_GIT_VERSION=$1;
|
||||||
local INSTALLED_GIT_VERSION
|
local INSTALLED_GIT_VERSION
|
||||||
INPUT_GIT_VERSION=(${(s/./)INPUT_GIT_VERSION});
|
INPUT_GIT_VERSION=(${(s/./)INPUT_GIT_VERSION});
|
||||||
INSTALLED_GIT_VERSION=($(git --version));
|
INSTALLED_GIT_VERSION=($(command git --version 2>/dev/null));
|
||||||
INSTALLED_GIT_VERSION=(${(s/./)INSTALLED_GIT_VERSION[3]});
|
INSTALLED_GIT_VERSION=(${(s/./)INSTALLED_GIT_VERSION[3]});
|
||||||
|
|
||||||
for i in {1..3}; do
|
for i in {1..3}; do
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
## Command history configuration
|
## Command history configuration
|
||||||
|
if [ -z $HISTFILE ]; then
|
||||||
HISTFILE=$HOME/.zsh_history
|
HISTFILE=$HOME/.zsh_history
|
||||||
|
fi
|
||||||
HISTSIZE=10000
|
HISTSIZE=10000
|
||||||
SAVEHIST=10000
|
SAVEHIST=10000
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,6 +30,11 @@ bindkey "^[[3~" delete-char
|
||||||
bindkey "^[3;5~" delete-char
|
bindkey "^[3;5~" delete-char
|
||||||
bindkey "\e[3~" delete-char
|
bindkey "\e[3~" delete-char
|
||||||
|
|
||||||
|
# Edit the current command line in $EDITOR
|
||||||
|
autoload -U edit-command-line
|
||||||
|
zle -N edit-command-line
|
||||||
|
bindkey '\C-x\C-e' edit-command-line
|
||||||
|
|
||||||
# consider emacs keybindings:
|
# consider emacs keybindings:
|
||||||
|
|
||||||
#bindkey -e ## emacs key bindings
|
#bindkey -e ## emacs key bindings
|
||||||
|
|
|
||||||
|
|
@ -9,5 +9,7 @@ bindkey "^[m" copy-prev-shell-word
|
||||||
setopt long_list_jobs
|
setopt long_list_jobs
|
||||||
|
|
||||||
## pager
|
## pager
|
||||||
export PAGER="less -R"
|
export PAGER="less"
|
||||||
|
export LESS="-R"
|
||||||
|
|
||||||
export LC_CTYPE=$LANG
|
export LC_CTYPE=$LANG
|
||||||
|
|
|
||||||
9
lib/nvm.zsh
Normal file
9
lib/nvm.zsh
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
# get the node.js version
|
||||||
|
function nvm_prompt_info() {
|
||||||
|
[ -f $HOME/.nvm/nvm.sh ] || return
|
||||||
|
local nvm_prompt
|
||||||
|
nvm_prompt=$(node -v 2>/dev/null)
|
||||||
|
[[ "${nvm_prompt}x" == "x" ]] && return
|
||||||
|
nvm_prompt=${nvm_prompt:1}
|
||||||
|
echo "${ZSH_THEME_NVM_PROMPT_PREFIX}${nvm_prompt}${ZSH_THEME_NVM_PROMPT_SUFFIX}"
|
||||||
|
}
|
||||||
2
lib/rbenv.zsh
Normal file
2
lib/rbenv.zsh
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
# using the rbenv plugin will override this with a real implementation
|
||||||
|
function rbenv_prompt_info() {}
|
||||||
|
|
@ -1,5 +1,8 @@
|
||||||
# get the name of the branch we are on
|
# get the name of the ruby version
|
||||||
function rvm_prompt_info() {
|
function rvm_prompt_info() {
|
||||||
ruby_version=$(~/.rvm/bin/rvm-prompt 2> /dev/null) || return
|
[ -f $HOME/.rvm/bin/rvm-prompt ] || return
|
||||||
[[ ! -z $ruby_version ]] && echo "($ruby_version)"
|
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:=)}"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,3 +26,10 @@ function spectrum_ls() {
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Show all 256 colors where the background is set to specific color
|
||||||
|
function spectrum_bls() {
|
||||||
|
for code in {000..255}; do
|
||||||
|
((cc = code + 1))
|
||||||
|
print -P -- "$BG[$code]$code: Test %{$reset_color%}"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ function title {
|
||||||
fi
|
fi
|
||||||
if [[ "$TERM" == screen* ]]; then
|
if [[ "$TERM" == screen* ]]; then
|
||||||
print -Pn "\ek$1:q\e\\" #set screen hardstatus, usually truncated at 20 chars
|
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]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)
|
print -Pn "\e]1;$1:q\a" #set icon (=tab) name (will override window name on broken terminal)
|
||||||
fi
|
fi
|
||||||
|
|
@ -26,8 +26,10 @@ function omz_termsupport_precmd {
|
||||||
function omz_termsupport_preexec {
|
function omz_termsupport_preexec {
|
||||||
emulate -L zsh
|
emulate -L zsh
|
||||||
setopt extended_glob
|
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%<<"
|
local LINE="${2:gs/$/\\$}"
|
||||||
|
LINE="${LINE:gs/%/%%}"
|
||||||
|
title "$CMD" "%100>...>$LINE%<<"
|
||||||
}
|
}
|
||||||
|
|
||||||
autoload -U add-zsh-hook
|
autoload -U add-zsh-hook
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,18 @@ export LSCOLORS="Gxfxcxdxbxegedabagacad"
|
||||||
if [ "$DISABLE_LS_COLORS" != "true" ]
|
if [ "$DISABLE_LS_COLORS" != "true" ]
|
||||||
then
|
then
|
||||||
# Find the option for using colors in ls, depending on the version: Linux or BSD
|
# 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'
|
||||||
|
elif [[ "$(uname -s)" == "OpenBSD" ]]; then
|
||||||
|
# On OpenBSD, test if "colorls" is installed (this one supports colors);
|
||||||
|
# otherwise, leave ls as is, because OpenBSD's ls doesn't support -G
|
||||||
|
colorls -G -d . &>/dev/null 2>&1 && alias ls='colorls -G'
|
||||||
|
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
|
||||||
|
fi
|
||||||
|
|
||||||
#setopt no_beep
|
#setopt no_beep
|
||||||
setopt auto_cd
|
setopt auto_cd
|
||||||
|
|
|
||||||
39
oh-my-zsh.sh
39
oh-my-zsh.sh
|
|
@ -1,7 +1,6 @@
|
||||||
# Check for updates on initial load...
|
# Check for updates on initial load...
|
||||||
if [ "$DISABLE_AUTO_UPDATE" != "true" ]
|
if [ "$DISABLE_AUTO_UPDATE" != "true" ]; then
|
||||||
then
|
/usr/bin/env ZSH=$ZSH DISABLE_UPDATE_PROMPT=$DISABLE_UPDATE_PROMPT zsh -f $ZSH/tools/check_for_upgrade.sh
|
||||||
/usr/bin/env ZSH=$ZSH zsh $ZSH/tools/check_for_upgrade.sh
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Initializes Oh My Zsh
|
# Initializes Oh My Zsh
|
||||||
|
|
@ -11,7 +10,9 @@ fpath=($ZSH/functions $ZSH/completions $fpath)
|
||||||
|
|
||||||
# Load all of the config files in ~/oh-my-zsh that end in .zsh
|
# 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
|
# 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
|
# Set ZSH_CUSTOM to the path where your custom config files
|
||||||
# and plugins exists, or else we will use the default custom/
|
# and plugins exists, or else we will use the default custom/
|
||||||
|
|
@ -36,10 +37,20 @@ for plugin ($plugins); do
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Figure out the SHORT hostname
|
||||||
|
if [ -n "$commands[scutil]" ]; then
|
||||||
|
# OS X
|
||||||
|
SHORT_HOST=$(scutil --get ComputerName)
|
||||||
|
else
|
||||||
|
SHORT_HOST=${HOST/.*/}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Save the location of the current completion dump file.
|
||||||
|
ZSH_COMPDUMP="${ZDOTDIR:-${HOME}}/.zcompdump-${SHORT_HOST}-${ZSH_VERSION}"
|
||||||
|
|
||||||
# Load and run compinit
|
# Load and run compinit
|
||||||
autoload -U compinit
|
autoload -U compinit
|
||||||
compinit -i
|
compinit -i -d "${ZSH_COMPDUMP}"
|
||||||
|
|
||||||
|
|
||||||
# Load all of the plugins that were defined in ~/.zshrc
|
# Load all of the plugins that were defined in ~/.zshrc
|
||||||
for plugin ($plugins); do
|
for plugin ($plugins); do
|
||||||
|
|
@ -51,11 +62,13 @@ for plugin ($plugins); do
|
||||||
done
|
done
|
||||||
|
|
||||||
# Load all of your custom configurations from custom/
|
# 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
|
||||||
|
unset config_file
|
||||||
|
|
||||||
# Load the theme
|
# Load the theme
|
||||||
if [ "$ZSH_THEME" = "random" ]
|
if [ "$ZSH_THEME" = "random" ]; then
|
||||||
then
|
|
||||||
themes=($ZSH/themes/*zsh-theme)
|
themes=($ZSH/themes/*zsh-theme)
|
||||||
N=${#themes[@]}
|
N=${#themes[@]}
|
||||||
((N=(RANDOM%N)+1))
|
((N=(RANDOM%N)+1))
|
||||||
|
|
@ -63,11 +76,11 @@ then
|
||||||
source "$RANDOM_THEME"
|
source "$RANDOM_THEME"
|
||||||
echo "[oh-my-zsh] Random theme '$RANDOM_THEME' loaded..."
|
echo "[oh-my-zsh] Random theme '$RANDOM_THEME' loaded..."
|
||||||
else
|
else
|
||||||
if [ ! "$ZSH_THEME" = "" ]
|
if [ ! "$ZSH_THEME" = "" ]; then
|
||||||
then
|
if [ -f "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme" ]; then
|
||||||
if [ -f "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme" ]
|
|
||||||
then
|
|
||||||
source "$ZSH_CUSTOM/$ZSH_THEME.zsh-theme"
|
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
|
else
|
||||||
source "$ZSH/themes/$ZSH_THEME.zsh-theme"
|
source "$ZSH/themes/$ZSH_THEME.zsh-theme"
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -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 () {
|
_ant_does_target_list_need_generating () {
|
||||||
if [ ! -f .ant_targets ]; then return 0;
|
[ ! -f .ant_targets ] && return 0;
|
||||||
else
|
[ .ant_targets -nt build.xml ] && return 0;
|
||||||
accurate=$($stat_cmd .ant_targets)
|
return 1;
|
||||||
changed=$($stat_cmd build.xml)
|
|
||||||
return $(expr $accurate '>=' $changed)
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_ant () {
|
_ant () {
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ if [[ -x `which yaourt` ]]; then
|
||||||
}
|
}
|
||||||
alias yaconf='yaourt -C' # Fix all configuration files with vimdiff
|
alias yaconf='yaourt -C' # Fix all configuration files with vimdiff
|
||||||
# Pacman - https://wiki.archlinux.org/index.php/Pacman_Tips
|
# Pacman - https://wiki.archlinux.org/index.php/Pacman_Tips
|
||||||
alias yaupg='yaourt -Syu' # Synchronize with repositories before upgrading packages that are out of date on the local system.
|
alias yaupg='yaourt -Syua' # Synchronize with repositories before upgrading packages (AUR packages too) that are out of date on the local system.
|
||||||
alias yasu='yaourt --sucre' # Same as yaupg, but without confirmation
|
alias yasu='yaourt --sucre' # Same as yaupg, but without confirmation
|
||||||
alias yain='yaourt -S' # Install specific package(s) from the repositories
|
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
|
||||||
|
|
@ -18,6 +18,8 @@ if [[ -x `which yaourt` ]]; then
|
||||||
alias yareps='yaourt -Ss' # Search for package(s) in the repositories
|
alias yareps='yaourt -Ss' # Search for package(s) in the repositories
|
||||||
alias yaloc='yaourt -Qi' # Display information about a given package in the local database
|
alias yaloc='yaourt -Qi' # Display information about a given package in the local database
|
||||||
alias yalocs='yaourt -Qs' # Search for package(s) in the local database
|
alias yalocs='yaourt -Qs' # Search for package(s) in the local database
|
||||||
|
alias yalst='yaourt -Qe' # List installed packages, even those installed from AUR (they're tagged as "local")
|
||||||
|
alias yaorph='yaourt -Qtd' # Remove orphans using yaourt
|
||||||
# Additional yaourt alias examples
|
# Additional yaourt alias examples
|
||||||
if [[ -x `which abs` ]]; then
|
if [[ -x `which abs` ]]; then
|
||||||
alias yaupd='yaourt -Sy && sudo abs' # Update and refresh the local package and ABS databases against repositories
|
alias yaupd='yaourt -Sy && sudo abs' # Update and refresh the local package and ABS databases against repositories
|
||||||
|
|
@ -75,3 +77,19 @@ pacdisowned() {
|
||||||
|
|
||||||
comm -23 "$fs" "$db"
|
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
|
||||||
|
}
|
||||||
|
|
|
||||||
4
plugins/atom/atom.plugin.zsh
Normal file
4
plugins/atom/atom.plugin.zsh
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
#
|
||||||
|
# Your guess is as good as mine. Let's just assume that we will need this...
|
||||||
|
# - For more info visit... http://atom.io/
|
||||||
|
#
|
||||||
18
plugins/autoenv/autoenv.plugin.zsh
Normal file
18
plugins/autoenv/autoenv.plugin.zsh
Normal file
|
|
@ -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
|
||||||
|
}
|
||||||
|
|
@ -3,9 +3,15 @@ if [ $commands[autojump] ]; then # check if autojump is installed
|
||||||
. /usr/share/autojump/autojump.zsh
|
. /usr/share/autojump/autojump.zsh
|
||||||
elif [ -f /etc/profile.d/autojump.zsh ]; then # manual installation
|
elif [ -f /etc/profile.d/autojump.zsh ]; then # manual installation
|
||||||
. /etc/profile.d/autojump.zsh
|
. /etc/profile.d/autojump.zsh
|
||||||
|
elif [ -f /etc/profile.d/autojump.sh ]; then # gentoo installation
|
||||||
|
. /etc/profile.d/autojump.sh
|
||||||
|
elif [ -f /usr/local/share/autojump/autojump.zsh ]; then # freebsd installation
|
||||||
|
. /usr/local/share/autojump/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
|
elif [ -f /opt/local/etc/profile.d/autojump.zsh ]; then # mac os x with ports
|
||||||
. /opt/local/etc/profile.d/autojump.zsh
|
. /opt/local/etc/profile.d/autojump.zsh
|
||||||
elif [ $commands[brew] -a -f `brew --prefix`/etc/autojump ]; then # mac os x with brew
|
elif [ $commands[brew] -a -f `brew --prefix`/etc/autojump.zsh ]; then # mac os x with brew
|
||||||
. `brew --prefix`/etc/autojump
|
. `brew --prefix`/etc/autojump.zsh
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
32
plugins/autopep8/_autopep8
Normal file
32
plugins/autopep8/_autopep8
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
#compdef autopep8
|
||||||
|
#
|
||||||
|
# this is zsh completion function file.
|
||||||
|
# generated by genzshcomp(ver: 0.5.1)
|
||||||
|
#
|
||||||
|
|
||||||
|
typeset -A opt_args
|
||||||
|
local context state line
|
||||||
|
|
||||||
|
_arguments -s -S \
|
||||||
|
"--help[show this help message and exit]:" \
|
||||||
|
"-h[show this help message and exit]:" \
|
||||||
|
"--version[show program's version number and exit]:" \
|
||||||
|
"--verbose[print verbose messages; multiple -v result in more verbose messages]" \
|
||||||
|
"-v[print verbose messages; multiple -v result in more verbose messages]" \
|
||||||
|
"--diff[print the diff for the fixed source]" \
|
||||||
|
"-d[print the diff for the fixed source]" \
|
||||||
|
"--in-place[make changes to files in place]" \
|
||||||
|
"-i[make changes to files in place]" \
|
||||||
|
"--recursive[run recursively; must be used with --in-place or --diff]" \
|
||||||
|
"-r[run recursively; must be used with --in-place or --diff]" \
|
||||||
|
"--jobs[number of parallel jobs; match CPU count if value is less than 1]::n number of parallel jobs; match CPU count if value is:_files" \
|
||||||
|
"-j[number of parallel jobs; match CPU count if value is less than 1]::n number of parallel jobs; match CPU count if value is:_files" \
|
||||||
|
"--pep8-passes[maximum number of additional pep8 passes (default: 100)]::n:_files" \
|
||||||
|
"-p[maximum number of additional pep8 passes (default: 100)]::n:_files" \
|
||||||
|
"-a[-a result in more aggressive changes]::result:_files" \
|
||||||
|
"--exclude[exclude files/directories that match these comma- separated globs]::globs:_files" \
|
||||||
|
"--list-fixes[list codes for fixes; used by --ignore and --select]" \
|
||||||
|
"--ignore[do not fix these errors/warnings (default E226,E24)]::errors:_files" \
|
||||||
|
"--select[fix only these errors/warnings (e.g. E4,W)]::errors:_files" \
|
||||||
|
"--max-line-length[set maximum allowed line length (default: 79)]::n:_files" \
|
||||||
|
"*::args:_files"
|
||||||
0
plugins/autopep8/autopep8.plugin.zsh
Normal file
0
plugins/autopep8/autopep8.plugin.zsh
Normal file
|
|
@ -1,7 +1,43 @@
|
||||||
if [[ $(acpi 2&>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]] ; then
|
###########################################
|
||||||
function battery_pct_remaining() { echo "$(acpi | cut -f2 -d ',' | tr -cd '[:digit:]')" }
|
# Battery plugin for oh-my-zsh #
|
||||||
function battery_time_remaining() { echo $(acpi | cut -f3 -d ',') }
|
# 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) == "Darwin" ]] ; then
|
||||||
|
|
||||||
|
function battery_pct() {
|
||||||
|
local smart_battery_status="$(ioreg -rc "AppleSmartBattery")"
|
||||||
|
typeset -F maxcapacity=$(echo $smart_battery_status | grep '^.*"MaxCapacity"\ =\ ' | sed -e 's/^.*"MaxCapacity"\ =\ //')
|
||||||
|
typeset -F currentcapacity=$(echo $smart_battery_status | grep '^.*"CurrentCapacity"\ =\ ' | sed -e 's/^.*CurrentCapacity"\ =\ //')
|
||||||
|
integer i=$(((currentcapacity/maxcapacity) * 100))
|
||||||
|
echo $i
|
||||||
|
}
|
||||||
|
|
||||||
|
function battery_pct_remaining() {
|
||||||
|
if [[ $(ioreg -rc AppleSmartBattery | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]] ; then
|
||||||
|
battery_pct
|
||||||
|
else
|
||||||
|
echo "External Power"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function battery_time_remaining() {
|
||||||
|
local smart_battery_status="$(ioreg -rc "AppleSmartBattery")"
|
||||||
|
if [[ $(echo $smart_battery_status | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]] ; then
|
||||||
|
timeremaining=$(echo $smart_battery_status | grep '^.*"AvgTimeToEmpty"\ =\ ' | sed -e 's/^.*"AvgTimeToEmpty"\ =\ //')
|
||||||
|
echo "~$((timeremaining / 60)):$((timeremaining % 60))"
|
||||||
|
else
|
||||||
|
echo "∞"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function battery_pct_prompt () {
|
function battery_pct_prompt () {
|
||||||
|
if [[ $(ioreg -rc AppleSmartBattery | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]] ; then
|
||||||
b=$(battery_pct_remaining)
|
b=$(battery_pct_remaining)
|
||||||
if [ $b -gt 50 ] ; then
|
if [ $b -gt 50 ] ; then
|
||||||
color='green'
|
color='green'
|
||||||
|
|
@ -11,10 +47,104 @@ if [[ $(acpi 2&>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]] ; then
|
||||||
color='red'
|
color='red'
|
||||||
fi
|
fi
|
||||||
echo "%{$fg[$color]%}[$(battery_pct_remaining)%%]%{$reset_color%}"
|
echo "%{$fg[$color]%}[$(battery_pct_remaining)%%]%{$reset_color%}"
|
||||||
}
|
|
||||||
else
|
else
|
||||||
error_msg='no battery'
|
echo "∞"
|
||||||
function battery_pct_remaining() { echo $error_msg }
|
|
||||||
function battery_time_remaining() { echo $error_msg }
|
|
||||||
function battery_pct_prompt() { echo '' }
|
|
||||||
fi
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function battery_is_charging() {
|
||||||
|
[[ $(ioreg -rc "AppleSmartBattery"| grep '^.*"IsCharging"\ =\ ' | sed -e 's/^.*"IsCharging"\ =\ //') == "Yes" ]]
|
||||||
|
}
|
||||||
|
|
||||||
|
elif [[ $(uname) == "Linux" ]] ; then
|
||||||
|
|
||||||
|
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
|
||||||
|
color='yellow'
|
||||||
|
else
|
||||||
|
color='red'
|
||||||
|
fi
|
||||||
|
echo "%{$fg[$color]%}[$(battery_pct_remaining)%%]%{$reset_color%}"
|
||||||
|
else
|
||||||
|
echo "∞"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function battery_pct() {
|
||||||
|
# todo for on linux
|
||||||
|
}
|
||||||
|
|
||||||
|
function battery_is_charging() {
|
||||||
|
# todo on linux
|
||||||
|
false
|
||||||
|
}
|
||||||
|
|
||||||
|
else
|
||||||
|
# Empty functions so we don't cause errors in prompts
|
||||||
|
function battery_pct_remaining() {
|
||||||
|
}
|
||||||
|
|
||||||
|
function battery_time_remaining() {
|
||||||
|
}
|
||||||
|
|
||||||
|
function battery_pct_prompt() {
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
|
||||||
|
function battery_level_gauge() {
|
||||||
|
local gauge_slots=${BATTERY_GAUGE_SLOTS:-10};
|
||||||
|
local green_threshold=${BATTERY_GREEN_THRESHOLD:-6};
|
||||||
|
local yellow_threshold=${BATTERY_YELLOW_THRESHOLD:-4};
|
||||||
|
local color_green=${BATTERY_COLOR_GREEN:-%F{green}};
|
||||||
|
local color_yellow=${BATTERY_COLOR_YELLOW:-%F{yellow}};
|
||||||
|
local color_red=${BATTERY_COLOR_RED:-%F{red}};
|
||||||
|
local color_reset=${BATTERY_COLOR_RESET:-%{%f%k%b%}};
|
||||||
|
local battery_prefix=${BATTERY_GAUGE_PREFIX:-'['};
|
||||||
|
local battery_suffix=${BATTERY_GAUGE_SUFFIX:-']'};
|
||||||
|
local filled_symbol=${BATTERY_GAUGE_FILLED_SYMBOL:-'▶'};
|
||||||
|
local empty_symbol=${BATTERY_GAUGE_EMPTY_SYMBOL:-'▷'};
|
||||||
|
local charging_color=${BATTERY_CHARGING_COLOR:-$color_yellow};
|
||||||
|
local charging_symbol=${BATTERY_CHARGING_SYMBOL:-'⚡'};
|
||||||
|
|
||||||
|
local battery_remaining_percentage=$(battery_pct);
|
||||||
|
|
||||||
|
if [[ $battery_remaining_percentage =~ [0-9]+ ]]; then
|
||||||
|
local filled=$(((( $battery_remaining_percentage + $gauge_slots - 1) / $gauge_slots)));
|
||||||
|
local empty=$(($gauge_slots - $filled));
|
||||||
|
|
||||||
|
if [[ $filled -gt $green_threshold ]]; then local gauge_color=$color_green;
|
||||||
|
elif [[ $filled -gt $yellow_threshold ]]; then local gauge_color=$color_yellow;
|
||||||
|
else local gauge_color=$color_red;
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
local filled=$gauge_slots;
|
||||||
|
local empty=0;
|
||||||
|
filled_symbol=${BATTERY_UNKNOWN_SYMBOL:-'.'};
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
local charging=' ' && battery_is_charging && charging=$charging_symbol;
|
||||||
|
|
||||||
|
printf ${charging_color//\%/\%\%}$charging${color_reset//\%/\%\%}${battery_prefix//\%/\%\%}${gauge_color//\%/\%\%}
|
||||||
|
printf ${filled_symbol//\%/\%\%}'%.0s' {1..$filled}
|
||||||
|
[[ $filled -lt $gauge_slots ]] && printf ${empty_symbol//\%/\%\%}'%.0s' {1..$empty}
|
||||||
|
printf ${color_reset//\%/\%\%}${battery_suffix//\%/\%\%}${color_reset//\%/\%\%}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
58
plugins/bower/_bower
Executable file
58
plugins/bower/_bower
Executable file
|
|
@ -0,0 +1,58 @@
|
||||||
|
|
||||||
|
|
||||||
|
# Credits to npm's awesome completion utility.
|
||||||
|
#
|
||||||
|
# Bower completion script, based on npm completion script.
|
||||||
|
|
||||||
|
###-begin-bower-completion-###
|
||||||
|
#
|
||||||
|
# Installation: bower completion >> ~/.bashrc (or ~/.zshrc)
|
||||||
|
# Or, maybe: bower completion > /usr/local/etc/bash_completion.d/bower
|
||||||
|
#
|
||||||
|
|
||||||
|
COMP_WORDBREAKS=${COMP_WORDBREAKS/=/}
|
||||||
|
COMP_WORDBREAKS=${COMP_WORDBREAKS/@/}
|
||||||
|
export COMP_WORDBREAKS
|
||||||
|
|
||||||
|
if type complete &>/dev/null; then
|
||||||
|
_bower_completion () {
|
||||||
|
local si="$IFS"
|
||||||
|
IFS=$'\n' COMPREPLY=($(COMP_CWORD="$COMP_CWORD" \
|
||||||
|
COMP_LINE="$COMP_LINE" \
|
||||||
|
COMP_POINT="$COMP_POINT" \
|
||||||
|
bower completion -- "${COMP_WORDS[@]}" \
|
||||||
|
2>/dev/null)) || return $?
|
||||||
|
IFS="$si"
|
||||||
|
}
|
||||||
|
complete -F _bower_completion bower
|
||||||
|
elif type compdef &>/dev/null; then
|
||||||
|
_bower_completion() {
|
||||||
|
si=$IFS
|
||||||
|
compadd -- $(COMP_CWORD=$((CURRENT-1)) \
|
||||||
|
COMP_LINE=$BUFFER \
|
||||||
|
COMP_POINT=0 \
|
||||||
|
bower completion -- "${words[@]}" \
|
||||||
|
2>/dev/null)
|
||||||
|
IFS=$si
|
||||||
|
}
|
||||||
|
compdef _bower_completion bower
|
||||||
|
elif type compctl &>/dev/null; then
|
||||||
|
_bower_completion () {
|
||||||
|
local cword line point words si
|
||||||
|
read -Ac words
|
||||||
|
read -cn cword
|
||||||
|
let cword-=1
|
||||||
|
read -l line
|
||||||
|
read -ln point
|
||||||
|
si="$IFS"
|
||||||
|
IFS=$'\n' reply=($(COMP_CWORD="$cword" \
|
||||||
|
COMP_LINE="$line" \
|
||||||
|
COMP_POINT="$point" \
|
||||||
|
bower completion -- "${words[@]}" \
|
||||||
|
2>/dev/null)) || return $?
|
||||||
|
IFS="$si"
|
||||||
|
}
|
||||||
|
compctl -K _bower_completion bower
|
||||||
|
fi
|
||||||
|
###-end-bower-completion-###
|
||||||
|
|
||||||
81
plugins/bower/bower.plugin.zsh
Normal file
81
plugins/bower/bower.plugin.zsh
Normal file
|
|
@ -0,0 +1,81 @@
|
||||||
|
alias bi="bower install"
|
||||||
|
alias bl="bower list"
|
||||||
|
alias bs="bower search"
|
||||||
|
|
||||||
|
_bower_installed_packages () {
|
||||||
|
bower_package_list=$(bower ls --no-color 2>/dev/null| awk 'NR>3{print p}{p=$0}'| cut -d ' ' -f 2|sed 's/#.*//')
|
||||||
|
}
|
||||||
|
_bower ()
|
||||||
|
{
|
||||||
|
local -a _1st_arguments _no_color _dopts _save_dev _force_lastest _production
|
||||||
|
local expl
|
||||||
|
typeset -A opt_args
|
||||||
|
|
||||||
|
_no_color=('--no-color[Do not print colors (available in all commands)]')
|
||||||
|
|
||||||
|
_dopts=(
|
||||||
|
'(--save)--save[Save installed packages into the project"s bower.json dependencies]'
|
||||||
|
'(--force)--force[Force fetching remote resources even if a local copy exists on disk]'
|
||||||
|
)
|
||||||
|
|
||||||
|
_save_dev=('(--save-dev)--save-dev[Save installed packages into the project"s bower.json devDependencies]')
|
||||||
|
|
||||||
|
_force_lastest=('(--force-latest)--force-latest[Force latest version on conflict]')
|
||||||
|
|
||||||
|
_production=('(--production)--production[Do not install project devDependencies]')
|
||||||
|
|
||||||
|
_1st_arguments=(
|
||||||
|
'cache-clean:Clean the Bower cache, or the specified package caches' \
|
||||||
|
'help:Display help information about Bower' \
|
||||||
|
'info:Version info and description of a particular package' \
|
||||||
|
'init:Interactively create a bower.json file' \
|
||||||
|
'install:Install a package locally' \
|
||||||
|
'link:Symlink a package folder' \
|
||||||
|
'lookup:Look up a package URL by name' \
|
||||||
|
'register:Register a package' \
|
||||||
|
'search:Search for a package by name' \
|
||||||
|
'uninstall:Remove a package' \
|
||||||
|
'update:Update a package' \
|
||||||
|
{ls,list}:'[List all installed packages]'
|
||||||
|
)
|
||||||
|
_arguments \
|
||||||
|
$_no_color \
|
||||||
|
'*:: :->subcmds' && return 0
|
||||||
|
|
||||||
|
if (( CURRENT == 1 )); then
|
||||||
|
_describe -t commands "bower subcommand" _1st_arguments
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$words[1]" in
|
||||||
|
install)
|
||||||
|
_arguments \
|
||||||
|
$_dopts \
|
||||||
|
$_save_dev \
|
||||||
|
$_force_lastest \
|
||||||
|
$_no_color \
|
||||||
|
$_production
|
||||||
|
;;
|
||||||
|
update)
|
||||||
|
_arguments \
|
||||||
|
$_dopts \
|
||||||
|
$_no_color \
|
||||||
|
$_force_lastest
|
||||||
|
_bower_installed_packages
|
||||||
|
compadd "$@" $(echo $bower_package_list)
|
||||||
|
;;
|
||||||
|
uninstall)
|
||||||
|
_arguments \
|
||||||
|
$_no_color \
|
||||||
|
$_dopts
|
||||||
|
_bower_installed_packages
|
||||||
|
compadd "$@" $(echo $bower_package_list)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
$_no_color \
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
compdef _bower bower
|
||||||
|
|
@ -26,15 +26,19 @@ _1st_arguments=(
|
||||||
'list:list files in a formula or not-installed formulae'
|
'list:list files in a formula or not-installed formulae'
|
||||||
'log:git commit log for a formula'
|
'log:git commit log for a formula'
|
||||||
'missing:check all installed formuale for missing dependencies.'
|
'missing:check all installed formuale for missing dependencies.'
|
||||||
|
'options:display install options specific to formula.'
|
||||||
'outdated:list formulas for which a newer version is available'
|
'outdated:list formulas for which a newer version is available'
|
||||||
'prune:remove dead links'
|
'prune:remove dead links'
|
||||||
|
'reinstall:reinstall a formula'
|
||||||
'remove:remove a formula'
|
'remove:remove a formula'
|
||||||
'search:search for a formula (/regex/ or string)'
|
'search:search for a formula (/regex/ or string)'
|
||||||
'server:start a local web app that lets you browse formulae (requires Sinatra)'
|
'server:start a local web app that lets you browse formulae (requires Sinatra)'
|
||||||
|
'services:manage background services via launchctl'
|
||||||
'unlink:unlink a formula'
|
'unlink:unlink a formula'
|
||||||
'update:freshen up links'
|
'update:freshen up links'
|
||||||
'upgrade:upgrade outdated formulae'
|
'upgrade:upgrade outdated formulae'
|
||||||
'uses:show formulas which depend on a formula'
|
'uses:show formulas which depend on a formula'
|
||||||
|
'versions:show all available formula versions'
|
||||||
)
|
)
|
||||||
|
|
||||||
local expl
|
local expl
|
||||||
|
|
@ -71,10 +75,10 @@ case "$words[1]" in
|
||||||
_brew_installed_formulae
|
_brew_installed_formulae
|
||||||
_wanted installed_formulae expl 'installed formulae' compadd -a installed_formulae
|
_wanted installed_formulae expl 'installed formulae' compadd -a installed_formulae
|
||||||
fi ;;
|
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
|
_brew_all_formulae
|
||||||
_wanted formulae expl 'all formulae' compadd -a formulae ;;
|
_wanted formulae expl 'all formulae' compadd -a formulae ;;
|
||||||
remove|rm|uninstall|unlink|cleanup|link|ln)
|
reinstall|remove|rm|uninstall|unlink|cleanup|link|ln)
|
||||||
_brew_installed_formulae
|
_brew_installed_formulae
|
||||||
_wanted installed_formulae expl 'installed formulae' compadd -a installed_formulae ;;
|
_wanted installed_formulae expl 'installed formulae' compadd -a installed_formulae ;;
|
||||||
esac
|
esac
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,7 @@ case $state in
|
||||||
"viz[Generate a visual representation of your dependencies]" \
|
"viz[Generate a visual representation of your dependencies]" \
|
||||||
"init[Generate a simple Gemfile, placed in the current directory]" \
|
"init[Generate a simple Gemfile, placed in the current directory]" \
|
||||||
"gem[Create a simple gem, suitable for development with bundler]" \
|
"gem[Create a simple gem, suitable for development with bundler]" \
|
||||||
|
"clean[Cleans up unused gems in your bundler directory]" \
|
||||||
"help[Describe available tasks or one specific task]"
|
"help[Describe available tasks or one specific task]"
|
||||||
ret=0
|
ret=0
|
||||||
;;
|
;;
|
||||||
|
|
@ -62,6 +63,14 @@ case $state in
|
||||||
exec)
|
exec)
|
||||||
_normal && ret=0
|
_normal && ret=0
|
||||||
;;
|
;;
|
||||||
|
clean)
|
||||||
|
_arguments \
|
||||||
|
'(--force)--force[forces clean even if --path is not set]' \
|
||||||
|
'(--dry-run)--dry-run[only print out changes, do not actually clean gems]' \
|
||||||
|
'(--no-color)--no-color[Disable colorization in output]' \
|
||||||
|
'(--verbose)--verbose[Enable verbose output mode]'
|
||||||
|
ret=0
|
||||||
|
;;
|
||||||
(open|show)
|
(open|show)
|
||||||
_gems=( $(bundle show 2> /dev/null | sed -e '/^ \*/!d; s/^ \* \([^ ]*\) .*/\1/') )
|
_gems=( $(bundle show 2> /dev/null | sed -e '/^ \*/!d; s/^ \* \([^ ]*\) .*/\1/') )
|
||||||
if [[ $_gems != "" ]]; then
|
if [[ $_gems != "" ]]; then
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,39 @@
|
||||||
alias be="bundle exec"
|
alias be="bundle exec"
|
||||||
alias bi="bundle install"
|
|
||||||
alias bl="bundle list"
|
alias bl="bundle list"
|
||||||
alias bp="bundle package"
|
alias bp="bundle package"
|
||||||
|
alias bo="bundle open"
|
||||||
alias bu="bundle update"
|
alias bu="bundle update"
|
||||||
|
|
||||||
# The following is based on https://github.com/gma/bundler-exec
|
# 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 berks cap capify cucumber foodcritic foreman guard jekyll kitchen knife middleman nanoc rackup rainbows rake rspec ruby shotgun spec spin spork strainer tailor taps thin thor unicorn unicorn_rails puma)
|
||||||
|
|
||||||
|
# Remove $UNBUNDLED_COMMANDS from the bundled_commands list
|
||||||
|
for cmd in $UNBUNDLED_COMMANDS; do
|
||||||
|
bundled_commands=(${bundled_commands#$cmd});
|
||||||
|
done
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
|
bi() {
|
||||||
|
if _bundler-installed && _within-bundled-project; then
|
||||||
|
local bundler_version=`bundle version | cut -d' ' -f3`
|
||||||
|
if [[ $bundler_version > '1.4.0' || $bundler_version = '1.4.0' ]]; then
|
||||||
|
if [[ "$(uname)" == 'Darwin' ]]
|
||||||
|
then
|
||||||
|
local cores_num="$(sysctl hw.ncpu | awk '{print $2}')"
|
||||||
|
else
|
||||||
|
local cores_num="$(nproc)"
|
||||||
|
fi
|
||||||
|
bundle install --jobs=$cores_num $@
|
||||||
|
else
|
||||||
|
bundle install $@
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo "Can't 'bundle install' outside a bundled project"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
_bundler-installed() {
|
_bundler-installed() {
|
||||||
which bundle > /dev/null 2>&1
|
which bundle > /dev/null 2>&1
|
||||||
}
|
}
|
||||||
|
|
@ -33,6 +57,7 @@ _run-with-bundler() {
|
||||||
|
|
||||||
## Main program
|
## Main program
|
||||||
for cmd in $bundled_commands; do
|
for cmd in $bundled_commands; do
|
||||||
|
eval "function unbundled_$cmd () { $cmd \$@ }"
|
||||||
eval "function bundled_$cmd () { _run-with-bundler $cmd \$@}"
|
eval "function bundled_$cmd () { _run-with-bundler $cmd \$@}"
|
||||||
alias $cmd=bundled_$cmd
|
alias $cmd=bundled_$cmd
|
||||||
|
|
||||||
|
|
@ -40,3 +65,4 @@ for cmd in $bundled_commands; do
|
||||||
compdef _$cmd bundled_$cmd=$cmd
|
compdef _$cmd bundled_$cmd=$cmd
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
|
||||||
13
plugins/bwana/bwana.plugin.zsh
Normal file
13
plugins/bwana/bwana.plugin.zsh
Normal file
|
|
@ -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
|
||||||
47
plugins/cabal/cabal.plugin.zsh
Normal file
47
plugins/cabal/cabal.plugin.zsh
Normal file
|
|
@ -0,0 +1,47 @@
|
||||||
|
function cabal_sandbox_info() {
|
||||||
|
cabal_files=(*.cabal(N))
|
||||||
|
if [ $#cabal_files -gt 0 ]; then
|
||||||
|
if [ -f cabal.sandbox.config ]; then
|
||||||
|
echo "%{$fg[green]%}sandboxed%{$reset_color%}"
|
||||||
|
else
|
||||||
|
echo "%{$fg[red]%}not sandboxed%{$reset_color%}"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function _cabal_commands() {
|
||||||
|
local ret=1 state
|
||||||
|
_arguments ':subcommand:->subcommand' && ret=0
|
||||||
|
|
||||||
|
case $state in
|
||||||
|
subcommand)
|
||||||
|
subcommands=(
|
||||||
|
"bench:Run the benchmark, if any (configure with UserHooks)"
|
||||||
|
"build:Make this package ready for installation"
|
||||||
|
"check:Check the package for common mistakes"
|
||||||
|
"clean:Clean up after a build"
|
||||||
|
"copy:Copy teh files into the install locations"
|
||||||
|
"configure:Prepare to build the package"
|
||||||
|
"fetch:Downloads packages for later installation"
|
||||||
|
"haddock:Generate HAddock HTML documentation"
|
||||||
|
"help:Help about commands"
|
||||||
|
"hscolour:Generate HsColour colourised code, in HTML format"
|
||||||
|
"info:Display detailed information about a particular package"
|
||||||
|
"init:Interactively create a .cabal file"
|
||||||
|
"install:Installs a list of packages"
|
||||||
|
"list:List packages matching a search string"
|
||||||
|
"register:Register this package with the compiler"
|
||||||
|
"report:Upload build reports to a remote server"
|
||||||
|
"sdist:Generate a source distribution file (.tar.gz)"
|
||||||
|
"test:Run the test suite, if any (configure with UserHooks)"
|
||||||
|
"unpack:Unpacks packages for user inspection"
|
||||||
|
"update:Updates list of known packages"
|
||||||
|
"upload:Uploads source packages to Hackage"
|
||||||
|
)
|
||||||
|
_describe -t subcommands 'cabal subcommands' subcommands && ret=0
|
||||||
|
esac
|
||||||
|
|
||||||
|
return ret
|
||||||
|
}
|
||||||
|
|
||||||
|
compdef _cabal_commands cabal
|
||||||
|
|
@ -14,12 +14,9 @@ _cake_does_target_list_need_generating () {
|
||||||
return 1;
|
return 1;
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -f ${_cake_task_cache_file} ]; then return 0;
|
[ ! -f ${_cake_task_cache_file} ] && return 0;
|
||||||
else
|
[ ${_cake_task_cache_file} -nt Cakefile ] && return 0;
|
||||||
accurate=$(stat -f%m $_cake_task_cache_file)
|
return 1;
|
||||||
changed=$(stat -f%m Cakefile)
|
|
||||||
return $(expr $accurate '>=' $changed)
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_cake () {
|
_cake () {
|
||||||
|
|
|
||||||
|
|
@ -1,41 +0,0 @@
|
||||||
stat -f%m . > /dev/null 2>&1
|
|
||||||
if [ "$?" = 0 ]; then
|
|
||||||
stat_cmd=(stat -f%m)
|
|
||||||
else
|
|
||||||
stat_cmd=(stat -L --format=%y)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Cache filename
|
|
||||||
_cap_show_undescribed_tasks=0
|
|
||||||
|
|
||||||
# Cache filename
|
|
||||||
_cap_task_cache_file='.cap_task_cache'
|
|
||||||
|
|
||||||
_cap_get_task_list () {
|
|
||||||
if [ ${_cap_show_undescribed_tasks} -eq 0 ]; then
|
|
||||||
cap -T | grep '^cap' | cut -d " " -f 2
|
|
||||||
else
|
|
||||||
cap -vT | grep '^cap' | cut -d " " -f 2
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
_cap_does_task_list_need_generating () {
|
|
||||||
|
|
||||||
if [ ! -f ${_cap_task_cache_file} ]; then return 0;
|
|
||||||
else
|
|
||||||
accurate=$($stat_cmd $_cap_task_cache_file)
|
|
||||||
changed=$($stat_cmd config/deploy.rb)
|
|
||||||
return $(expr $accurate '>=' $changed)
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function _cap () {
|
|
||||||
if [ -f config/deploy.rb ]; then
|
|
||||||
if _cap_does_task_list_need_generating; then
|
|
||||||
_cap_get_task_list > ${_cap_task_cache_file}
|
|
||||||
fi
|
|
||||||
compadd `cat ${_cap_task_cache_file}`
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
compdef _cap cap
|
|
||||||
10
plugins/capistrano/_capistrano
Normal file
10
plugins/capistrano/_capistrano
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
#compdef cap
|
||||||
|
#autoload
|
||||||
|
|
||||||
|
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 -v --tasks | grep '#' | cut -d " " -f 2 > .cap_tasks~
|
||||||
|
fi
|
||||||
|
compadd `cat .cap_tasks~`
|
||||||
|
fi
|
||||||
129
plugins/celery/_celery
Normal file
129
plugins/celery/_celery
Normal file
|
|
@ -0,0 +1,129 @@
|
||||||
|
#compdef celery
|
||||||
|
#autoload
|
||||||
|
|
||||||
|
#celery zsh completion
|
||||||
|
|
||||||
|
_celery () {
|
||||||
|
local -a _1st_arguments ifargs dopts controlargs
|
||||||
|
|
||||||
|
typeset -A opt_args
|
||||||
|
|
||||||
|
_1st_arguments=('worker' 'events' 'beat' 'shell' 'multi' 'amqp' 'status' 'inspect' \
|
||||||
|
'control' 'purge' 'list' 'migrate' 'call' 'result' 'report')
|
||||||
|
ifargs=('--app=' '--broker=' '--loader=' '--config=' '--version')
|
||||||
|
dopts=('--detach' '--umask=' '--gid=' '--uid=' '--pidfile=' '--logfile=' '--loglevel=')
|
||||||
|
controlargs=('--timeout' '--destination')
|
||||||
|
_arguments \
|
||||||
|
'(-A --app=)'{-A,--app}'[app instance to use (e.g. module.attr_name):APP]' \
|
||||||
|
'(-b --broker=)'{-b,--broker}'[url to broker. default is "amqp://guest@localhost//":BROKER]' \
|
||||||
|
'(--loader)--loader[name of custom loader class to use.:LOADER]' \
|
||||||
|
'(--config)--config[Name of the configuration module:CONFIG]' \
|
||||||
|
'(--workdir)--workdir[Optional directory to change to after detaching.:WORKING_DIRECTORY]' \
|
||||||
|
'(-q --quiet)'{-q,--quiet}'[Don"t show as much output.]' \
|
||||||
|
'(-C --no-color)'{-C,--no-color}'[Don"t display colors.]' \
|
||||||
|
'(--version)--version[show program"s version number and exit]' \
|
||||||
|
'(- : *)'{-h,--help}'[show this help message and exit]' \
|
||||||
|
'*:: :->subcmds' && return 0
|
||||||
|
|
||||||
|
if (( CURRENT == 1 )); then
|
||||||
|
_describe -t commands "celery subcommand" _1st_arguments
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$words[1]" in
|
||||||
|
worker)
|
||||||
|
_arguments \
|
||||||
|
'(-C --concurrency=)'{-C,--concurrency=}'[Number of child processes processing the queue. The default is the number of CPUs.]' \
|
||||||
|
'(--pool)--pool=:::(processes eventlet gevent threads solo)' \
|
||||||
|
'(--purge --discard)'{--discard,--purge}'[Purges all waiting tasks before the daemon is started.]' \
|
||||||
|
'(-f --logfile=)'{-f,--logfile=}'[Path to log file. If no logfile is specified, stderr is used.]' \
|
||||||
|
'(--loglevel=)--loglevel=:::(critical error warning info debug)' \
|
||||||
|
'(-N --hostname=)'{-N,--hostname=}'[Set custom hostname, e.g. "foo.example.com".]' \
|
||||||
|
'(-B --beat)'{-B,--beat}'[Also run the celerybeat periodic task scheduler.]' \
|
||||||
|
'(-s --schedule=)'{-s,--schedule=}'[Path to the schedule database if running with the -B option. Defaults to celerybeat-schedule.]' \
|
||||||
|
'(-S --statedb=)'{-S,--statedb=}'[Path to the state database.Default: None]' \
|
||||||
|
'(-E --events)'{-E,--events}'[Send events that can be captured by monitors like celeryev, celerymon, and others.]' \
|
||||||
|
'(--time-limit=)--time-limit=[nables a hard time limit (in seconds int/float) for tasks]' \
|
||||||
|
'(--soft-time-limit=)--soft-time-limit=[Enables a soft time limit (in seconds int/float) for tasks]' \
|
||||||
|
'(--maxtasksperchild=)--maxtasksperchild=[Maximum number of tasks a pool worker can execute before it"s terminated and replaced by a new worker.]' \
|
||||||
|
'(-Q --queues=)'{-Q,--queues=}'[List of queues to enable for this worker, separated by comma. By default all configured queues are enabled.]' \
|
||||||
|
'(-I --include=)'{-I,--include=}'[Comma separated list of additional modules to import.]' \
|
||||||
|
'(--pidfile=)--pidfile=[Optional file used to store the process pid.]' \
|
||||||
|
'(--autoscale=)--autoscale=[Enable autoscaling by providing max_concurrency, min_concurrency.]' \
|
||||||
|
'(--autoreload)--autoreload[Enable autoreloading.]' \
|
||||||
|
'(--no-execv)--no-execv[Don"t do execv after multiprocessing child fork.]'
|
||||||
|
compadd -a ifargs
|
||||||
|
;;
|
||||||
|
inspect)
|
||||||
|
_values -s \
|
||||||
|
'active[dump active tasks (being processed)]' \
|
||||||
|
'active_queues[dump queues being consumed from]' \
|
||||||
|
'ping[ping worker(s)]' \
|
||||||
|
'registered[dump of registered tasks]' \
|
||||||
|
'report[get bugreport info]' \
|
||||||
|
'reserved[dump reserved tasks (waiting to be processed)]' \
|
||||||
|
'revoked[dump of revoked task ids]' \
|
||||||
|
'scheduled[dump scheduled tasks (eta/countdown/retry)]' \
|
||||||
|
'stats[dump worker statistics]'
|
||||||
|
compadd -a controlargs ifargs
|
||||||
|
;;
|
||||||
|
control)
|
||||||
|
_values -s \
|
||||||
|
'add_consumer[tell worker(s) to start consuming a queue]' \
|
||||||
|
'autoscale[change autoscale settings]' \
|
||||||
|
'cancel_consumer[tell worker(s) to stop consuming a queue]' \
|
||||||
|
'disable_events[tell worker(s) to disable events]' \
|
||||||
|
'enable_events[tell worker(s) to enable events]' \
|
||||||
|
'pool_grow[start more pool processes]' \
|
||||||
|
'pool_shrink[use less pool processes]' \
|
||||||
|
'rate_limit[tell worker(s) to modify the rate limit for a task type]' \
|
||||||
|
'time_limit[tell worker(s) to modify the time limit for a task type.]'
|
||||||
|
compadd -a controlargs ifargs
|
||||||
|
;;
|
||||||
|
multi)
|
||||||
|
_values -s \
|
||||||
|
'--nosplash[Don"t display program info.]' \
|
||||||
|
'--verbose[Show more output.]' \
|
||||||
|
'--no-color[Don"t display colors.]' \
|
||||||
|
'--quiet[Don"t show as much output.]' \
|
||||||
|
'start' 'restart' 'stopwait' 'stop' 'show' \
|
||||||
|
'names' 'expand' 'get' 'kill'
|
||||||
|
compadd -a ifargs
|
||||||
|
;;
|
||||||
|
amqp)
|
||||||
|
_values -s \
|
||||||
|
'queue.declare' 'queue.purge' 'exchange.delete' 'basic.publish' \
|
||||||
|
'exchange.declare' 'queue.delete' 'queue.bind' 'basic.get'
|
||||||
|
;;
|
||||||
|
list)
|
||||||
|
_values -s, 'bindings'
|
||||||
|
;;
|
||||||
|
shell)
|
||||||
|
_values -s \
|
||||||
|
'--ipython[force iPython.]' \
|
||||||
|
'--bpython[force bpython.]' \
|
||||||
|
'--python[force default Python shell.]' \
|
||||||
|
'--without-tasks[don"t add tasks to locals.]' \
|
||||||
|
'--eventlet[use eventlet.]' \
|
||||||
|
'--gevent[use gevent.]'
|
||||||
|
compadd -a ifargs
|
||||||
|
;;
|
||||||
|
beat)
|
||||||
|
_arguments \
|
||||||
|
'(-s --schedule=)'{-s,--schedule=}'[Path to the schedule database. Defaults to celerybeat-schedule.]' \
|
||||||
|
'(-S --scheduler=)'{-S,--scheduler=}'[Scheduler class to use. Default is celery.beat.PersistentScheduler.]' \
|
||||||
|
'(--max-interval)--max-interval[]'
|
||||||
|
compadd -a dopts fargs
|
||||||
|
;;
|
||||||
|
events)
|
||||||
|
_arguments \
|
||||||
|
'(-d --dump)'{-d,--dump}'[Dump events to stdout.]' \
|
||||||
|
'(-c --camera=)'{-c,--camera=}'[Take snapshots of events using this camera.]' \
|
||||||
|
'(-F --frequency=)'{-F,--frequency=}'[Camera: Shutter frequency. Default is every 1.0 seconds.]' \
|
||||||
|
'(-r --maxrate=)'{-r,--maxrate=}'[Camera: Optional shutter rate limit (e.g. 10/m).]'
|
||||||
|
compadd -a dopts fargs
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
99
plugins/chruby/chruby.plugin.zsh
Normal file
99
plugins/chruby/chruby.plugin.zsh
Normal file
|
|
@ -0,0 +1,99 @@
|
||||||
|
#
|
||||||
|
# INSTRUCTIONS
|
||||||
|
#
|
||||||
|
# With either a manual or brew installed chruby things should just work.
|
||||||
|
#
|
||||||
|
# If you'd prefer to specify an explicit path to load chruby from
|
||||||
|
# you can set variables like so:
|
||||||
|
#
|
||||||
|
# zstyle :omz:plugins:chruby path /local/path/to/chruby.sh
|
||||||
|
# zstyle :omz:plugins:chruby auto /local/path/to/auto.sh
|
||||||
|
#
|
||||||
|
# TODO
|
||||||
|
# - autodetermine correct source path on non OS X systems
|
||||||
|
# - completion if ruby-install exists
|
||||||
|
|
||||||
|
# rvm and rbenv plugins also provide this alias
|
||||||
|
alias rubies='chruby'
|
||||||
|
|
||||||
|
local _chruby_path
|
||||||
|
local _chruby_auto
|
||||||
|
|
||||||
|
_homebrew-installed() {
|
||||||
|
whence brew &> /dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
_chruby-from-homebrew-installed() {
|
||||||
|
brew --prefix chruby &> /dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
_ruby-build_installed() {
|
||||||
|
whence ruby-build &> /dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
_ruby-install-installed() {
|
||||||
|
whence ruby-install &> /dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
# Simple definition completer for ruby-build
|
||||||
|
if _ruby-build_installed; then
|
||||||
|
_ruby-build() { compadd $(ruby-build --definitions) }
|
||||||
|
compdef _ruby-build ruby-build
|
||||||
|
fi
|
||||||
|
|
||||||
|
_source_from_omz_settings() {
|
||||||
|
zstyle -s :omz:plugins:chruby path _chruby_path
|
||||||
|
zstyle -s :omz:plugins:chruby auto _chruby_auto
|
||||||
|
|
||||||
|
if _chruby_path && [[ -r _chruby_path ]]; then
|
||||||
|
source ${_chruby_path}
|
||||||
|
fi
|
||||||
|
|
||||||
|
if _chruby_auto && [[ -r _chruby_auto ]]; then
|
||||||
|
source ${_chruby_auto}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
_chruby_dirs() {
|
||||||
|
chrubydirs=($HOME/.rubies/ $PREFIX/opt/rubies)
|
||||||
|
for dir in chrubydirs; do
|
||||||
|
if [[ -d $dir ]]; then
|
||||||
|
RUBIES+=$dir
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
if _homebrew-installed && _chruby-from-homebrew-installed ; then
|
||||||
|
source $(brew --prefix chruby)/share/chruby/chruby.sh
|
||||||
|
source $(brew --prefix chruby)/share/chruby/auto.sh
|
||||||
|
_chruby_dirs
|
||||||
|
elif [[ -r "/usr/local/share/chruby/chruby.sh" ]] ; then
|
||||||
|
source /usr/local/share/chruby/chruby.sh
|
||||||
|
source /usr/local/share/chruby/auto.sh
|
||||||
|
_chruby_dirs
|
||||||
|
else
|
||||||
|
_source_from_omz_settings
|
||||||
|
_chruby_dirs
|
||||||
|
fi
|
||||||
|
|
||||||
|
function ensure_chruby() {
|
||||||
|
$(whence chruby)
|
||||||
|
}
|
||||||
|
|
||||||
|
function current_ruby() {
|
||||||
|
local _ruby
|
||||||
|
_ruby="$(chruby |grep \* |tr -d '* ')"
|
||||||
|
if [[ $(chruby |grep -c \*) -eq 1 ]]; then
|
||||||
|
echo ${_ruby}
|
||||||
|
else
|
||||||
|
echo "system"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function chruby_prompt_info() {
|
||||||
|
echo "$(current_ruby)"
|
||||||
|
}
|
||||||
|
|
||||||
|
# complete on installed rubies
|
||||||
|
_chruby() { compadd $(chruby | tr -d '* ') }
|
||||||
|
compdef _chruby chruby
|
||||||
81
plugins/coffee/_coffee
Normal file
81
plugins/coffee/_coffee
Normal file
|
|
@ -0,0 +1,81 @@
|
||||||
|
#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)
|
||||||
|
# * Dong Weiming (https://github.com/dongweiming)
|
||||||
|
#
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
local curcontext="$curcontext" state line ret=1 version opts first second third
|
||||||
|
typeset -A opt_args
|
||||||
|
version=(${(f)"$(_call_program version $words[1] --version)"})
|
||||||
|
version=${${(z)${version[1]}}[3]}
|
||||||
|
first=$(echo $version|cut -d '.' -f 1)
|
||||||
|
second=$(echo $version|cut -d '.' -f 2)
|
||||||
|
third=$(echo $version|cut -d '.' -f 3)
|
||||||
|
if (( $first < 2 )) && (( $second < 7 )) && (( $third < 3 ));then
|
||||||
|
opts+=('(-l --lint)'{-l,--lint}'[pipe the compiled JavaScript through JavaScript Lint]'
|
||||||
|
'(-r --require)'{-r,--require}'[require a library before executing your script]:library')
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
_arguments -C \
|
||||||
|
'(- *)'{-h,--help}'[display this help message]' \
|
||||||
|
'(- *)'{-v,--version}'[display the version number]' \
|
||||||
|
$opts \
|
||||||
|
'(-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"' \
|
||||||
|
'(--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]' \
|
||||||
|
'(-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
|
||||||
11
plugins/colored-man/colored-man.plugin.zsh
Normal file
11
plugins/colored-man/colored-man.plugin.zsh
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
man() {
|
||||||
|
env \
|
||||||
|
LESS_TERMCAP_mb=$(printf "\e[1;31m") \
|
||||||
|
LESS_TERMCAP_md=$(printf "\e[1;31m") \
|
||||||
|
LESS_TERMCAP_me=$(printf "\e[0m") \
|
||||||
|
LESS_TERMCAP_se=$(printf "\e[0m") \
|
||||||
|
LESS_TERMCAP_so=$(printf "\e[1;44;33m") \
|
||||||
|
LESS_TERMCAP_ue=$(printf "\e[0m") \
|
||||||
|
LESS_TERMCAP_us=$(printf "\e[1;32m") \
|
||||||
|
man "$@"
|
||||||
|
}
|
||||||
28
plugins/colorize/colorize.plugin.zsh
Normal file
28
plugins/colorize/colorize.plugin.zsh
Normal file
|
|
@ -0,0 +1,28 @@
|
||||||
|
# Plugin for highligthing file content
|
||||||
|
# Plugin highlights file content based on the filename extension.
|
||||||
|
# If no highlighting method supported for given extension then it tries
|
||||||
|
# guess it by looking for file content.
|
||||||
|
|
||||||
|
alias colorize='colorize_via_pygmentize'
|
||||||
|
|
||||||
|
colorize_via_pygmentize() {
|
||||||
|
if [ ! -x $(which pygmentize) ]; then
|
||||||
|
echo package \'pygmentize\' is not installed!
|
||||||
|
exit -1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $# -eq 0 ]; then
|
||||||
|
pygmentize -g $@
|
||||||
|
fi
|
||||||
|
|
||||||
|
for FNAME in $@
|
||||||
|
do
|
||||||
|
filename=$(basename "$FNAME")
|
||||||
|
lexer=`pygmentize -N \"$filename\"`
|
||||||
|
if [ "Z$lexer" != "Ztext" ]; then
|
||||||
|
pygmentize -l $lexer "$FNAME"
|
||||||
|
else
|
||||||
|
pygmentize -g "$FNAME"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
@ -2,4 +2,8 @@
|
||||||
# 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
|
||||||
|
|
||||||
|
# Arch Linux command-not-found support, you must have package pkgfile installed
|
||||||
|
# https://wiki.archlinux.org/index.php/Pkgfile#.22Command_not_found.22_hook
|
||||||
|
[[ -e /usr/share/doc/pkgfile/command-not-found.zsh ]] && source /usr/share/doc/pkgfile/command-not-found.zsh
|
||||||
|
|
|
||||||
94
plugins/common-aliases/common-aliases.plugin.zsh
Normal file
94
plugins/common-aliases/common-aliases.plugin.zsh
Normal file
|
|
@ -0,0 +1,94 @@
|
||||||
|
# Advanced Aliases.
|
||||||
|
# Use with caution
|
||||||
|
#
|
||||||
|
|
||||||
|
# ls, the common ones I use a lot shortened for rapid fire usage
|
||||||
|
alias ls='ls --color' #I like color
|
||||||
|
alias l='ls -lFh' #size,show type,human readable
|
||||||
|
alias la='ls -lAFh' #long list,show almost all,show type,human readable
|
||||||
|
alias lr='ls -tRFh' #sorted by date,recursive,show type,human readable
|
||||||
|
alias lt='ls -ltFh' #long list,sorted by date,show type,human readable
|
||||||
|
alias ll='ls -l' #long list
|
||||||
|
alias ldot='ls -ld .*'
|
||||||
|
alias lS='ls -1FSsh'
|
||||||
|
alias lart='ls -1Fcart'
|
||||||
|
alias lrt='ls -1Fcrt'
|
||||||
|
|
||||||
|
alias zshrc='vim ~/.zshrc' # Quick access to the ~/.zshrc file
|
||||||
|
|
||||||
|
alias grep='grep --color'
|
||||||
|
alias sgrep='grep -R -n -H -C 5 --exclude-dir={.git,.svn,CVS} '
|
||||||
|
|
||||||
|
alias t='tail -f'
|
||||||
|
|
||||||
|
# because typing 'cd' is A LOT of work!!
|
||||||
|
alias ..='cd ../'
|
||||||
|
alias ...='cd ../../'
|
||||||
|
alias ....='cd ../../../'
|
||||||
|
alias .....='cd ../../../../'
|
||||||
|
|
||||||
|
# Command line head / tail shortcuts
|
||||||
|
alias -g H='| head'
|
||||||
|
alias -g T='| tail'
|
||||||
|
alias -g G='| grep'
|
||||||
|
alias -g L="| less"
|
||||||
|
alias -g M="| most"
|
||||||
|
alias -g LL="2>&1 | less"
|
||||||
|
alias -g CA="2>&1 | cat -A"
|
||||||
|
alias -g NE="2> /dev/null"
|
||||||
|
alias -g NUL="> /dev/null 2>&1"
|
||||||
|
alias -g P="2>&1| pygmentize -l pytb"
|
||||||
|
|
||||||
|
alias dud='du --max-depth=1 -h'
|
||||||
|
alias duf='du -sh *'
|
||||||
|
alias fd='find . -type d -name'
|
||||||
|
alias ff='find . -type f -name'
|
||||||
|
|
||||||
|
alias h='history'
|
||||||
|
alias hgrep="fc -El 0 | grep"
|
||||||
|
alias help='man'
|
||||||
|
alias j='jobs'
|
||||||
|
alias p='ps -f'
|
||||||
|
alias sortnr='sort -n -r'
|
||||||
|
alias unexport='unset'
|
||||||
|
|
||||||
|
alias whereami=display_info
|
||||||
|
|
||||||
|
alias rm='rm -i'
|
||||||
|
alias cp='cp -i'
|
||||||
|
alias mv='mv -i'
|
||||||
|
|
||||||
|
# zsh is able to auto-do some kungfoo
|
||||||
|
# depends on the SUFFIX :)
|
||||||
|
if [ ${ZSH_VERSION//\./} -ge 420 ]; then
|
||||||
|
# open browser on urls
|
||||||
|
_browser_fts=(htm html de org net com at cx nl se dk dk php)
|
||||||
|
for ft in $_browser_fts ; do alias -s $ft=$BROWSER ; done
|
||||||
|
|
||||||
|
_editor_fts=(cpp cxx cc c hh h inl asc txt TXT tex)
|
||||||
|
for ft in $_editor_fts ; do alias -s $ft=$EDITOR ; done
|
||||||
|
|
||||||
|
_image_fts=(jpg jpeg png gif mng tiff tif xpm)
|
||||||
|
for ft in $_image_fts ; do alias -s $ft=$XIVIEWER; done
|
||||||
|
|
||||||
|
_media_fts=(avi mpg mpeg ogm mp3 wav ogg ape rm mov mkv)
|
||||||
|
for ft in $_media_fts ; do alias -s $ft=mplayer ; done
|
||||||
|
|
||||||
|
#read documents
|
||||||
|
alias -s pdf=acroread
|
||||||
|
alias -s ps=gv
|
||||||
|
alias -s dvi=xdvi
|
||||||
|
alias -s chm=xchm
|
||||||
|
alias -s djvu=djview
|
||||||
|
|
||||||
|
#list whats inside packed file
|
||||||
|
alias -s zip="unzip -l"
|
||||||
|
alias -s rar="unrar l"
|
||||||
|
alias -s tar="tar tf"
|
||||||
|
alias -s tar.gz="echo "
|
||||||
|
alias -s ace="unace l"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Make zsh know about hosts already accessed by SSH
|
||||||
|
zstyle -e ':completion:*:(ssh|scp|sftp|rsh|rsync):hosts' hosts 'reply=(${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) /dev/null)"}%%[# ]*}//,/ })'
|
||||||
|
|
||||||
|
|
@ -10,9 +10,27 @@ _composer_get_command_list () {
|
||||||
composer --no-ansi | sed "1,/Available commands/d" | awk '/^ [a-z]+/ { print $1 }'
|
composer --no-ansi | sed "1,/Available commands/d" | awk '/^ [a-z]+/ { print $1 }'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_composer_get_required_list () {
|
||||||
|
composer show -s --no-ansi | sed '1,/requires/d' | awk 'NF > 0 && !/^requires \(dev\)/{ print $1 }'
|
||||||
|
}
|
||||||
|
|
||||||
_composer () {
|
_composer () {
|
||||||
|
local curcontext="$curcontext" state line
|
||||||
|
typeset -A opt_args
|
||||||
|
_arguments \
|
||||||
|
'1: :->command'\
|
||||||
|
'*: :->args'
|
||||||
if [ -f composer.json ]; then
|
if [ -f composer.json ]; then
|
||||||
|
case $state in
|
||||||
|
command)
|
||||||
compadd `_composer_get_command_list`
|
compadd `_composer_get_command_list`
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
compadd `_composer_get_required_list`
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
compadd create-project init search selfupdate show
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -24,6 +42,7 @@ alias csu='composer self-update'
|
||||||
alias cu='composer update'
|
alias cu='composer update'
|
||||||
alias ci='composer install'
|
alias ci='composer install'
|
||||||
alias ccp='composer create-project'
|
alias ccp='composer create-project'
|
||||||
|
alias cdu='composer dump-autoload'
|
||||||
|
|
||||||
# install composer in the current directory
|
# install composer in the current directory
|
||||||
alias cget='curl -s https://getcomposer.org/installer | php'
|
alias cget='curl -s https://getcomposer.org/installer | php'
|
||||||
3
plugins/copydir/copydir.plugin.zsh
Normal file
3
plugins/copydir/copydir.plugin.zsh
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
function copydir {
|
||||||
|
pwd | tr -d "\r\n" | pbcopy
|
||||||
|
}
|
||||||
5
plugins/copyfile/copyfile.plugin.zsh
Normal file
5
plugins/copyfile/copyfile.plugin.zsh
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
function copyfile {
|
||||||
|
[[ "$#" != 1 ]] && return 1
|
||||||
|
local file_to_copy=$1
|
||||||
|
cat $file_to_copy | pbcopy
|
||||||
|
}
|
||||||
14
plugins/cp/cp.plugin.zsh
Normal file
14
plugins/cp/cp.plugin.zsh
Normal file
|
|
@ -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 --"
|
||||||
|
|
@ -1,19 +1,20 @@
|
||||||
# Authors:
|
# Authors:
|
||||||
# https://github.com/AlexBio
|
# https://github.com/AlexBio
|
||||||
# https://github.com/dbb
|
# https://github.com/dbb
|
||||||
|
# https://github.com/Mappleconfusers
|
||||||
#
|
#
|
||||||
# Debian-related zsh aliases and functions for zsh
|
# Debian-related zsh aliases and functions for zsh
|
||||||
|
|
||||||
# Use aptitude if installed, or apt-get if not.
|
# Use aptitude if installed, or apt-get if not.
|
||||||
# You can just set apt_pref='apt-get' to override it.
|
# You can just set apt_pref='apt-get' to override it.
|
||||||
if [[ -e $( which aptitude ) ]]; then
|
if [[ -e $( which -p aptitude 2>&1 ) ]]; then
|
||||||
apt_pref='aptitude'
|
apt_pref='aptitude'
|
||||||
else
|
else
|
||||||
apt_pref='apt-get'
|
apt_pref='apt-get'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Use sudo by default if it's installed
|
# Use sudo by default if it's installed
|
||||||
if [[ -e $( which sudo ) ]]; then
|
if [[ -e $( which -p sudo 2>&1 ) ]]; then
|
||||||
use_sudo=1
|
use_sudo=1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -21,7 +22,7 @@ fi
|
||||||
# These are for more obscure uses of apt-get and aptitude that aren't covered
|
# These are for more obscure uses of apt-get and aptitude that aren't covered
|
||||||
# below.
|
# below.
|
||||||
alias ag='apt-get'
|
alias ag='apt-get'
|
||||||
alias at='aptitude'
|
alias ap='aptitude'
|
||||||
|
|
||||||
# Some self-explanatory aliases
|
# Some self-explanatory aliases
|
||||||
alias acs="apt-cache search"
|
alias acs="apt-cache search"
|
||||||
|
|
@ -35,7 +36,7 @@ alias afs='apt-file search --regexp'
|
||||||
|
|
||||||
# These are apt-get only
|
# These are apt-get only
|
||||||
alias asrc='apt-get source'
|
alias asrc='apt-get source'
|
||||||
alias ap='apt-cache policy'
|
alias app='apt-cache policy'
|
||||||
|
|
||||||
# superuser operations ######################################################
|
# superuser operations ######################################################
|
||||||
if [[ $use_sudo -eq 1 ]]; then
|
if [[ $use_sudo -eq 1 ]]; then
|
||||||
|
|
@ -56,12 +57,13 @@ if [[ $use_sudo -eq 1 ]]; then
|
||||||
alias ar='sudo $apt_pref remove'
|
alias ar='sudo $apt_pref remove'
|
||||||
|
|
||||||
# apt-get only
|
# apt-get only
|
||||||
alias ads='sudo $apt_pref dselect-upgrade'
|
alias ads='sudo apt-get dselect-upgrade'
|
||||||
|
|
||||||
# Install all .deb files in the current directory.
|
# Install all .deb files in the current directory.
|
||||||
# Warning: you will need to put the glob in single quotes if you use:
|
# Warning: you will need to put the glob in single quotes if you use:
|
||||||
# glob_subst
|
# 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
|
# Remove ALL kernel images and headers EXCEPT the one in use
|
||||||
alias kclean='sudo aptitude remove -P ?and(~i~nlinux-(ima|hea) \
|
alias kclean='sudo aptitude remove -P ?and(~i~nlinux-(ima|hea) \
|
||||||
|
|
@ -100,13 +102,46 @@ else
|
||||||
|
|
||||||
# Install all .deb files in the current directory
|
# Install all .deb files in the current directory
|
||||||
# Assumes glob_subst is off
|
# 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
|
# Remove ALL kernel images and headers EXCEPT the one in use
|
||||||
alias kclean='su -lc '\''aptitude remove -P ?and(~i~nlinux-(ima|hea) \
|
alias kclean='su -lc '\''aptitude remove -P ?and(~i~nlinux-(ima|hea) \
|
||||||
?not(~n`uname -r`))'\'' root'
|
?not(~n`uname -r`))'\'' root'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Completion ################################################################
|
||||||
|
|
||||||
|
#
|
||||||
|
# Registers a compdef for $1 that calls $apt_pref with the commands $2
|
||||||
|
# To do that it creates a new completion function called _apt_pref_$2
|
||||||
|
#
|
||||||
|
apt_pref_compdef() {
|
||||||
|
local f fb
|
||||||
|
f="_apt_pref_${2}"
|
||||||
|
|
||||||
|
eval "function ${f}() {
|
||||||
|
shift words;
|
||||||
|
service=\"\$apt_pref\";
|
||||||
|
words=(\"\$apt_pref\" '$2' \$words);
|
||||||
|
((CURRENT++))
|
||||||
|
test \"\${apt_pref}\" = 'aptitude' && _aptitude || _apt
|
||||||
|
}"
|
||||||
|
|
||||||
|
compdef "$f" "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
apt_pref_compdef aac "autoclean"
|
||||||
|
apt_pref_compdef abd "build-dep"
|
||||||
|
apt_pref_compdef ac "clean"
|
||||||
|
apt_pref_compdef ad "update"
|
||||||
|
apt_pref_compdef afu "update"
|
||||||
|
apt_pref_compdef ag "upgrade"
|
||||||
|
apt_pref_compdef ai "install"
|
||||||
|
apt_pref_compdef ail "install"
|
||||||
|
apt_pref_compdef ap "purge"
|
||||||
|
apt_pref_compdef ar "remove"
|
||||||
|
apt_pref_compdef ads "dselect-upgrade"
|
||||||
|
|
||||||
# Misc. #####################################################################
|
# Misc. #####################################################################
|
||||||
# print all installed packages
|
# print all installed packages
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,19 @@ _managepy-createcachetable(){
|
||||||
$nul_args && ret=0
|
$nul_args && ret=0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_managepy-collectstatic(){
|
||||||
|
_arguments -s : \
|
||||||
|
'--link=-[Create a symbolic link to each file instead of copying.]:' \
|
||||||
|
'--noinput=-[Do NOT prompt the user for input of any kind.]:' \
|
||||||
|
'--no-post-process=-[Do NOT post process collected files.]:' \
|
||||||
|
'--ignore=-[Ignore files or directories matching this glob-style pattern. Use multiple times to ignore more.]:' \
|
||||||
|
'--dry-run=-[Do everything except modify the filesystem.]:' \
|
||||||
|
'--clear=-[Clear the existing files using the storage before trying to copy or link the original file.]:' \
|
||||||
|
'--link=-[Create a symbolic link to each file instead of copying.]:' \
|
||||||
|
'--no-default-ignore=-[Do not ignore the common private glob-style patterns "CVS", ".*" and "*~".]:' \
|
||||||
|
$nul_args && ret=0
|
||||||
|
}
|
||||||
|
|
||||||
_managepy-dbshell(){
|
_managepy-dbshell(){
|
||||||
_arguments -s : \
|
_arguments -s : \
|
||||||
$nul_args && ret=0
|
$nul_args && ret=0
|
||||||
|
|
@ -163,6 +176,7 @@ _managepy-commands() {
|
||||||
commands=(
|
commands=(
|
||||||
'adminindex:prints the admin-index template snippet for the given app name(s).'
|
'adminindex:prints the admin-index template snippet for the given app name(s).'
|
||||||
'createcachetable:creates the table needed to use the SQL cache backend.'
|
'createcachetable:creates the table needed to use the SQL cache backend.'
|
||||||
|
'collectstatic:Collect static files in a single location.'
|
||||||
'dbshell:runs the command-line client for the current DATABASE_ENGINE.'
|
'dbshell:runs the command-line client for the current DATABASE_ENGINE.'
|
||||||
"diffsettings:displays differences between the current settings.py and Django's default settings."
|
"diffsettings:displays differences between the current settings.py and Django's default settings."
|
||||||
'dumpdata:Output the contents of the database as a fixture of the given format.'
|
'dumpdata:Output the contents of the database as a fixture of the given format.'
|
||||||
|
|
@ -220,4 +234,5 @@ _managepy() {
|
||||||
|
|
||||||
compdef _managepy manage.py
|
compdef _managepy manage.py
|
||||||
compdef _managepy django
|
compdef _managepy django
|
||||||
|
compdef _managepy django-admin.py
|
||||||
compdef _managepy django-manage
|
compdef _managepy django-manage
|
||||||
|
|
|
||||||
19
plugins/docker/README.md
Normal file
19
plugins/docker/README.md
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
## Docker autocomplete plugin
|
||||||
|
|
||||||
|
- Adds autocomplete options for all docker commands.
|
||||||
|
- Will also show containerIDs and Image names where applicable
|
||||||
|
|
||||||
|
####Shows help for all commands
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
####Shows your downloaded images where applicable
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
####Shows your running containers where applicable
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Maintainer : Ahmed Azaan ([@aeonazaan](https://twitter.com/aeonazaan))
|
||||||
290
plugins/docker/_docker
Normal file
290
plugins/docker/_docker
Normal file
|
|
@ -0,0 +1,290 @@
|
||||||
|
#compdef docker
|
||||||
|
|
||||||
|
# Docker autocompletion for oh-my-zsh
|
||||||
|
# Requires: Docker installed
|
||||||
|
# Author : Azaan (@aeonazaan)
|
||||||
|
|
||||||
|
|
||||||
|
# ----- Helper functions
|
||||||
|
# Output a selectable list of all running docker containers
|
||||||
|
__docker_containers() {
|
||||||
|
declare -a cont_cmd
|
||||||
|
cont_cmd=($(docker ps | awk 'NR>1{print $1":[CON("$1")"$2"("$3")]"}'))
|
||||||
|
_describe 'containers' cont_cmd
|
||||||
|
}
|
||||||
|
|
||||||
|
# output a selectable list of all docker images
|
||||||
|
__docker_images() {
|
||||||
|
declare -a img_cmd
|
||||||
|
img_cmd=($(docker images | awk 'NR>1{print $1}'))
|
||||||
|
_describe 'images' img_cmd
|
||||||
|
}
|
||||||
|
|
||||||
|
# ----- Commands
|
||||||
|
# Seperate function for each command, makes extension easier later
|
||||||
|
# ---------------------------
|
||||||
|
__attach() {
|
||||||
|
__docker_containers
|
||||||
|
}
|
||||||
|
|
||||||
|
__build() {
|
||||||
|
_arguments \
|
||||||
|
'-q=false[Suppress verbose build output]' \
|
||||||
|
'-t="[fuck to be applied to the resulting image in case of success]' \
|
||||||
|
'*:files:_files'
|
||||||
|
}
|
||||||
|
|
||||||
|
__commit() {
|
||||||
|
_arguments \
|
||||||
|
'-author="[Author]' \
|
||||||
|
'-m="[Commit message]' \
|
||||||
|
'-run="[Config automatically applied when the image is run.\n]'
|
||||||
|
__docker_containers
|
||||||
|
}
|
||||||
|
|
||||||
|
__diff() {
|
||||||
|
__docker_containers
|
||||||
|
}
|
||||||
|
|
||||||
|
__export() {
|
||||||
|
__docker_containers
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
__history() {
|
||||||
|
__docker_images
|
||||||
|
}
|
||||||
|
|
||||||
|
__images() {
|
||||||
|
_arguments \
|
||||||
|
'-a[show all images]' \
|
||||||
|
'-notrunc[dont truncate output]' \
|
||||||
|
'-q[only show numeric IDs]' \
|
||||||
|
'-viz[output graph in graphviz format]'
|
||||||
|
__docker_images
|
||||||
|
}
|
||||||
|
|
||||||
|
__import() {
|
||||||
|
_arguments '*:files:_files'
|
||||||
|
}
|
||||||
|
|
||||||
|
__info() {
|
||||||
|
# no arguments
|
||||||
|
}
|
||||||
|
|
||||||
|
__insert() {
|
||||||
|
__docker_images
|
||||||
|
_arguments '*:files:_files'
|
||||||
|
}
|
||||||
|
|
||||||
|
__inspect() {
|
||||||
|
__docker_images
|
||||||
|
__docker_containers
|
||||||
|
}
|
||||||
|
|
||||||
|
__kill() {
|
||||||
|
__docker_containers
|
||||||
|
}
|
||||||
|
|
||||||
|
__login() {
|
||||||
|
_arguments \
|
||||||
|
'-e="[email]' \
|
||||||
|
'-p="[password]' \
|
||||||
|
'-u="[username]' \
|
||||||
|
}
|
||||||
|
|
||||||
|
__logs() {
|
||||||
|
__docker_containers
|
||||||
|
}
|
||||||
|
|
||||||
|
__port() {
|
||||||
|
__docker_containers
|
||||||
|
}
|
||||||
|
|
||||||
|
__top() {
|
||||||
|
__docker_containers
|
||||||
|
}
|
||||||
|
|
||||||
|
__ps() {
|
||||||
|
_arguments \
|
||||||
|
'-a[Show all containers. Only running containers are shown by default.]' \
|
||||||
|
'-beforeId="[Show only container created before Id, include non-running ones.]' \
|
||||||
|
'-l[Show only the latest created container, include non-running ones.]' \
|
||||||
|
'-n=[Show n last created containers, include non-running ones.]' \
|
||||||
|
'-notrurrrrnc[Dont truncate output]' \
|
||||||
|
'-q[Only display numeric IDs]' \
|
||||||
|
'-s[Display sizes]' \
|
||||||
|
'-sinceId="[Show only containers created since Id, include non-running ones.]'
|
||||||
|
}
|
||||||
|
|
||||||
|
__pull() {
|
||||||
|
_arguments '-t="[Download tagged image in repository]'
|
||||||
|
}
|
||||||
|
|
||||||
|
__push() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
__restart() {
|
||||||
|
_arguments '-t=[number of seconds to try to stop before killing]'
|
||||||
|
__docker_containers
|
||||||
|
}
|
||||||
|
|
||||||
|
__rm() {
|
||||||
|
_arguments '-v[Remove the volumes associated to the container]'
|
||||||
|
__docker_containers
|
||||||
|
}
|
||||||
|
|
||||||
|
__rmi() {
|
||||||
|
__docker_images
|
||||||
|
}
|
||||||
|
|
||||||
|
__run() {
|
||||||
|
_arguments \
|
||||||
|
'-a=[Attach to stdin, stdout or stderr.]' \
|
||||||
|
'-c=[CPU shares (relative weight)]' \
|
||||||
|
'-d[Detached mode: leave the container running in the background]' \
|
||||||
|
'-dns=[Set custom dns servers]' \
|
||||||
|
'-e=[Set environment variables]' \
|
||||||
|
'-entrypoint="[Overwrite the default entrypoint of the image]' \
|
||||||
|
'-h="[Container host name]' \
|
||||||
|
'-i[Keep stdin open even if not attached]' \
|
||||||
|
'-m=[Memory limit (in bytes)]' \
|
||||||
|
'-p=[Expose a containers port to the host (use docker port to see the actual mapping)]' \
|
||||||
|
'-t[Allocate a pseudo-tty]' \
|
||||||
|
'-u="[Username or UID]' \
|
||||||
|
'-v=[Bind mount a volume (e.g. from the host: -v /host:/container, from docker: -v /container)]' \
|
||||||
|
'-volumes-from="[Mount volumes from the specified container]'
|
||||||
|
__docker_images
|
||||||
|
}
|
||||||
|
|
||||||
|
__search() {
|
||||||
|
_arguments '-notrunc[Dont truncate output]'
|
||||||
|
}
|
||||||
|
|
||||||
|
__start() {
|
||||||
|
__docker_containers
|
||||||
|
}
|
||||||
|
|
||||||
|
__stop() {
|
||||||
|
_arguments '-t=[number of seconds to try to stop before killing]'
|
||||||
|
__docker_containers
|
||||||
|
}
|
||||||
|
|
||||||
|
__tag() {
|
||||||
|
_arguments '-f[Force]'
|
||||||
|
__docker_images
|
||||||
|
}
|
||||||
|
|
||||||
|
__version() {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
__wait() {
|
||||||
|
__docker_containers
|
||||||
|
}
|
||||||
|
|
||||||
|
# end commands ---------
|
||||||
|
# ----------------------
|
||||||
|
|
||||||
|
local -a _1st_arguments
|
||||||
|
_1st_arguments=(
|
||||||
|
"attach":"Attach to a running container"
|
||||||
|
"build":"Build a container from a Dockerfile"
|
||||||
|
"commit":"Create a new image from a container's changes"
|
||||||
|
"diff":"Inspect changes on a container's filesystem"
|
||||||
|
"export":"Stream the contents of a container as a tar archive"
|
||||||
|
"history":"Show the history of an image"
|
||||||
|
"images":"List images"
|
||||||
|
"import":"Create a new filesystem image from the contents of a tarball"
|
||||||
|
"info":"Display system-wide information"
|
||||||
|
"insert":"Insert a file in an image"
|
||||||
|
"inspect":"Return low-level information on a container"
|
||||||
|
"kill":"Kill a running container"
|
||||||
|
"login":"Register or Login to the docker registry server"
|
||||||
|
"logs":"Fetch the logs of a container"
|
||||||
|
"port":"Lookup the public-facing port which is NAT-ed to PRIVATE_PORT"
|
||||||
|
"top":"Lookup the running processes of a container"
|
||||||
|
"ps":"List containers"
|
||||||
|
"pull":"Pull an image or a repository from the docker registry server"
|
||||||
|
"push":"Push an image or a repository to the docker registry server"
|
||||||
|
"restart":"Restart a running container"
|
||||||
|
"rm":"Remove one or more containers"
|
||||||
|
"rmi":"Remove one or more images"
|
||||||
|
"run":"Run a command in a new container"
|
||||||
|
"search":"Search for an image in the docker index"
|
||||||
|
"start":"Start a stopped container"
|
||||||
|
"stop":"Stop a running container"
|
||||||
|
"tag":"Tag an image into a repository"
|
||||||
|
"version":"Show the docker version information"
|
||||||
|
"wait":"Block until a container stops, then print its exit code"
|
||||||
|
)
|
||||||
|
|
||||||
|
_arguments '*:: :->command'
|
||||||
|
|
||||||
|
if (( CURRENT == 1 )); then
|
||||||
|
_describe -t commands "docker command" _1st_arguments
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
local -a _command_args
|
||||||
|
case "$words[1]" in
|
||||||
|
attach)
|
||||||
|
__docker_containers ;;
|
||||||
|
build)
|
||||||
|
__build ;;
|
||||||
|
commit)
|
||||||
|
__commit ;;
|
||||||
|
diff)
|
||||||
|
__diff ;;
|
||||||
|
export)
|
||||||
|
__export ;;
|
||||||
|
history)
|
||||||
|
__history ;;
|
||||||
|
images)
|
||||||
|
__images ;;
|
||||||
|
import)
|
||||||
|
__import ;;
|
||||||
|
info)
|
||||||
|
__info ;;
|
||||||
|
insert)
|
||||||
|
__insert ;;
|
||||||
|
inspect)
|
||||||
|
__inspect ;;
|
||||||
|
kill)
|
||||||
|
__kill ;;
|
||||||
|
login)
|
||||||
|
__login ;;
|
||||||
|
logs)
|
||||||
|
__logs ;;
|
||||||
|
port)
|
||||||
|
__port ;;
|
||||||
|
top)
|
||||||
|
__top ;;
|
||||||
|
ps)
|
||||||
|
__ps ;;
|
||||||
|
pull)
|
||||||
|
__pull ;;
|
||||||
|
push)
|
||||||
|
__push ;;
|
||||||
|
restart)
|
||||||
|
__restart ;;
|
||||||
|
rm)
|
||||||
|
__rm ;;
|
||||||
|
rmi)
|
||||||
|
__rmi ;;
|
||||||
|
run)
|
||||||
|
__run ;;
|
||||||
|
search)
|
||||||
|
__search ;;
|
||||||
|
start)
|
||||||
|
__start ;;
|
||||||
|
stop)
|
||||||
|
__stop ;;
|
||||||
|
tag)
|
||||||
|
__tag ;;
|
||||||
|
version)
|
||||||
|
__version ;;
|
||||||
|
wait)
|
||||||
|
__wait ;;
|
||||||
|
esac
|
||||||
29
plugins/emoji-clock/emoji-clock.plugin.zsh
Normal file
29
plugins/emoji-clock/emoji-clock.plugin.zsh
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
# FILE: emoji-clock.plugin.zsh
|
||||||
|
# DESCRIPTION: The current time with half hour accuracy as an emoji symbol.
|
||||||
|
# Inspired by Andre Torrez' "Put A Burger In Your Shell"
|
||||||
|
# http://notes.torrez.org/2013/04/put-a-burger-in-your-shell.html
|
||||||
|
# AUTHOR: Alexis Hildebrandt (afh[at]surryhill.net)
|
||||||
|
# VERSION: 1.0.0
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
function emoji-clock() {
|
||||||
|
hour=$(date '+%I')
|
||||||
|
minutes=$(date '+%M')
|
||||||
|
case $hour in
|
||||||
|
01) clock="🕐"; [ $minutes -ge 30 ] && clock="🕜";;
|
||||||
|
02) clock="🕑"; [ $minutes -ge 30 ] && clock="🕝";;
|
||||||
|
03) clock="🕒"; [ $minutes -ge 30 ] && clock="🕞";;
|
||||||
|
04) clock="🕓"; [ $minutes -ge 30 ] && clock="🕟";;
|
||||||
|
05) clock="🕔"; [ $minutes -ge 30 ] && clock="🕠";;
|
||||||
|
06) clock="🕕"; [ $minutes -ge 30 ] && clock="🕡";;
|
||||||
|
07) clock="🕖"; [ $minutes -ge 30 ] && clock="🕢";;
|
||||||
|
08) clock="🕗"; [ $minutes -ge 30 ] && clock="🕣";;
|
||||||
|
09) clock="🕘"; [ $minutes -ge 30 ] && clock="🕤";;
|
||||||
|
10) clock="🕙"; [ $minutes -ge 30 ] && clock="🕥";;
|
||||||
|
11) clock="🕚"; [ $minutes -ge 30 ] && clock="🕦";;
|
||||||
|
12) clock="🕛"; [ $minutes -ge 30 ] && clock="🕧";;
|
||||||
|
*) clock="⌛";;
|
||||||
|
esac
|
||||||
|
echo $clock
|
||||||
|
}
|
||||||
|
|
@ -1,2 +1,4 @@
|
||||||
encode64(){ echo -n $1 | base64 }
|
encode64(){ echo -n $1 | base64 }
|
||||||
decode64(){ echo -n $1 | base64 -D }
|
decode64(){ echo -n $1 | base64 --decode }
|
||||||
|
alias e64=encode64
|
||||||
|
alias d64=decode64
|
||||||
|
|
|
||||||
|
|
@ -52,8 +52,8 @@ function extract() {
|
||||||
(*.xz) unxz "$1" ;;
|
(*.xz) unxz "$1" ;;
|
||||||
(*.lzma) unlzma "$1" ;;
|
(*.lzma) unlzma "$1" ;;
|
||||||
(*.Z) uncompress "$1" ;;
|
(*.Z) uncompress "$1" ;;
|
||||||
(*.zip) unzip "$1" -d $extract_dir ;;
|
(*.zip|*.war|*.jar) unzip "$1" -d $extract_dir ;;
|
||||||
(*.rar) unrar e -ad "$1" ;;
|
(*.rar) unrar x -ad "$1" ;;
|
||||||
(*.7z) 7za x "$1" ;;
|
(*.7z) 7za x "$1" ;;
|
||||||
(*.deb)
|
(*.deb)
|
||||||
mkdir -p "$extract_dir/control"
|
mkdir -p "$extract_dir/control"
|
||||||
|
|
|
||||||
60
plugins/fabric/_fab
Normal file
60
plugins/fabric/_fab
Normal file
|
|
@ -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
|
||||||
1
plugins/fabric/fabric.plugin.zsh
Normal file
1
plugins/fabric/fabric.plugin.zsh
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
# DECLARION: This plugin was created by vhbit. What I did is just making a portal from https://github.com/vhbit/fabric-zsh-autocomplete.
|
||||||
|
|
@ -1,5 +1,10 @@
|
||||||
if [ $commands[fasd] ]; then # check if fasd is installed
|
if [ $commands[fasd] ]; then # check if fasd is installed
|
||||||
eval "$(fasd --init auto)"
|
fasd_cache="$HOME/.fasd-init-cache"
|
||||||
|
if [ "$(command -v fasd)" -nt "$fasd_cache" -o ! -s "$fasd_cache" ]; then
|
||||||
|
fasd --init auto >| "$fasd_cache"
|
||||||
|
fi
|
||||||
|
source "$fasd_cache"
|
||||||
|
unset fasd_cache
|
||||||
alias v='f -e vim'
|
alias v='f -e vim'
|
||||||
alias o='a -e open'
|
alias o='a -e open'
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
138
plugins/fastfile/fastfile.plugin.zsh
Normal file
138
plugins/fastfile/fastfile.plugin.zsh
Normal file
|
|
@ -0,0 +1,138 @@
|
||||||
|
################################################################################
|
||||||
|
# FILE: fastfile.plugin.zsh
|
||||||
|
# DESCRIPTION: oh-my-zsh plugin file.
|
||||||
|
# AUTHOR: Michael Varner (musikmichael@web.de)
|
||||||
|
# VERSION: 1.0.0
|
||||||
|
#
|
||||||
|
# This plugin adds the ability to on the fly generate and access file shortcuts.
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
###########################
|
||||||
|
# Settings
|
||||||
|
|
||||||
|
# These can be overwritten any time.
|
||||||
|
# If they are not set yet, they will be
|
||||||
|
# overwritten with their default values
|
||||||
|
|
||||||
|
default fastfile_dir "${HOME}/.fastfile/"
|
||||||
|
default fastfile_var_prefix "§"
|
||||||
|
|
||||||
|
###########################
|
||||||
|
# Impl
|
||||||
|
|
||||||
|
#
|
||||||
|
# Generate a shortcut
|
||||||
|
#
|
||||||
|
# Arguments:
|
||||||
|
# 1. name - The name of the shortcut (default: name of the file)
|
||||||
|
# 2. file - The file or directory to make the shortcut for
|
||||||
|
# STDOUT:
|
||||||
|
# => fastfle_print
|
||||||
|
#
|
||||||
|
function fastfile() {
|
||||||
|
test "$2" || 2="."
|
||||||
|
file=$(readlink -f "$2")
|
||||||
|
|
||||||
|
test "$1" || 1="$(basename "$file")"
|
||||||
|
name=$(echo "$1" | tr " " "_")
|
||||||
|
|
||||||
|
|
||||||
|
mkdir -p "${fastfile_dir}"
|
||||||
|
echo "$file" > "$(fastfile_resolv "$name")"
|
||||||
|
|
||||||
|
fastfile_sync
|
||||||
|
fastfile_print "$name"
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Resolve the location of a shortcut file (the database file, where the value is written!)
|
||||||
|
#
|
||||||
|
# Arguments:
|
||||||
|
# 1. name - The name of the shortcut
|
||||||
|
# STDOUT:
|
||||||
|
# The path
|
||||||
|
#
|
||||||
|
function fastfile_resolv() {
|
||||||
|
echo "${fastfile_dir}${1}"
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Get the real path of a shortcut
|
||||||
|
#
|
||||||
|
# Arguments:
|
||||||
|
# 1. name - The name of the shortcut
|
||||||
|
# STDOUT:
|
||||||
|
# The path
|
||||||
|
#
|
||||||
|
function fastfile_get() {
|
||||||
|
cat "$(fastfile_resolv "$1")"
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Print a shortcut
|
||||||
|
#
|
||||||
|
# Arguments:
|
||||||
|
# 1. name - The name of the shortcut
|
||||||
|
# STDOUT:
|
||||||
|
# Name and value of the shortcut
|
||||||
|
#
|
||||||
|
function fastfile_print() {
|
||||||
|
echo "${fastfile_var_prefix}${1} -> $(fastfile_get "$1")"
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# List all shortcuts
|
||||||
|
#
|
||||||
|
# STDOUT:
|
||||||
|
# (=> fastfle_print) for each shortcut
|
||||||
|
#
|
||||||
|
function fastfile_ls() {
|
||||||
|
for f in "${fastfile_dir}"/*; do
|
||||||
|
file=`basename "$f"` # To enable simpler handeling of spaces in file names
|
||||||
|
varkey=`echo "$file" | tr " " "_"`
|
||||||
|
|
||||||
|
# Special format for colums
|
||||||
|
echo "${fastfile_var_prefix}${varkey}|->|$(fastfile_get "$file")"
|
||||||
|
done | column -t -s "|"
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Remove a shortcut
|
||||||
|
#
|
||||||
|
# Arguments:
|
||||||
|
# 1. name - The name of the shortcut (default: name of the file)
|
||||||
|
# 2. file - The file or directory to make the shortcut for
|
||||||
|
# STDOUT:
|
||||||
|
# => fastfle_print
|
||||||
|
#
|
||||||
|
function fastfile_rm() {
|
||||||
|
fastfile_print "$1"
|
||||||
|
rm "$(fastfile_resolv "$1")"
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Generate the aliases for the shortcuts
|
||||||
|
#
|
||||||
|
function fastfile_sync() {
|
||||||
|
for f in "${fastfile_dir}"/*; do
|
||||||
|
file=`basename "$f"` # To enable simpler handeling of spaces in file names
|
||||||
|
varkey=`echo "$file" | tr " " "_"`
|
||||||
|
|
||||||
|
alias -g "${fastfile_var_prefix}${varkey}"="'$(fastfile_get "$file")'"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
##################################
|
||||||
|
# Shortcuts
|
||||||
|
|
||||||
|
alias ff=fastfile
|
||||||
|
alias ffp=fastfile_print
|
||||||
|
alias ffrm=fastfile_rm
|
||||||
|
alias ffls=fastfile_ls
|
||||||
|
alias ffsync=fastfile_sync
|
||||||
|
|
||||||
|
##################################
|
||||||
|
# Init
|
||||||
|
|
||||||
|
fastfile_sync
|
||||||
6
plugins/fbterm/fbterm.plugin.zsh
Normal file
6
plugins/fbterm/fbterm.plugin.zsh
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
# start fbterm automatically in /dev/tty*
|
||||||
|
|
||||||
|
if [[ $(tty|grep -o '/dev/tty') = /dev/tty ]] ; then
|
||||||
|
fbterm
|
||||||
|
exit
|
||||||
|
fi
|
||||||
69
plugins/forklift/forklift.plugin.zsh
Normal file
69
plugins/forklift/forklift.plugin.zsh
Normal file
|
|
@ -0,0 +1,69 @@
|
||||||
|
# Open folder in ForkLift.app of ForkLift2.app from console
|
||||||
|
# Author: Adam Strzelecki nanoant.com, modified by Bodo Tasche bitboxer.de
|
||||||
|
# Updated to support ForkLift2 by Johan Kaving
|
||||||
|
#
|
||||||
|
# Usage:
|
||||||
|
# fl [<folder>]
|
||||||
|
#
|
||||||
|
# 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 <<END
|
||||||
|
|
||||||
|
try
|
||||||
|
tell application "Finder"
|
||||||
|
set appName to name of application file id "com.binarynights.ForkLift2"
|
||||||
|
end tell
|
||||||
|
on error err_msg number err_num
|
||||||
|
tell application "Finder"
|
||||||
|
set appName to name of application file id "com.binarynights.ForkLift"
|
||||||
|
end tell
|
||||||
|
end try
|
||||||
|
|
||||||
|
if application appName is running
|
||||||
|
tell application appName
|
||||||
|
activate
|
||||||
|
end tell
|
||||||
|
else
|
||||||
|
tell application appName
|
||||||
|
activate
|
||||||
|
end tell
|
||||||
|
repeat until application appName is running
|
||||||
|
delay 1
|
||||||
|
end repeat
|
||||||
|
tell application appName
|
||||||
|
activate
|
||||||
|
end tell
|
||||||
|
end if
|
||||||
|
|
||||||
|
tell application "System Events"
|
||||||
|
tell application process "ForkLift"
|
||||||
|
try
|
||||||
|
set topWindow to window 1
|
||||||
|
on error
|
||||||
|
keystroke "n" using command down
|
||||||
|
set topWindow to window 1
|
||||||
|
end try
|
||||||
|
keystroke "g" using {command down, shift down}
|
||||||
|
tell sheet 1 of topWindow
|
||||||
|
set value of text field 1 to "$PWD"
|
||||||
|
keystroke return
|
||||||
|
end tell
|
||||||
|
end tell
|
||||||
|
end tell
|
||||||
|
END
|
||||||
|
}
|
||||||
|
|
@ -4,13 +4,15 @@
|
||||||
# gem zsh completion, based on homebrew completion
|
# gem zsh completion, based on homebrew completion
|
||||||
|
|
||||||
_gem_installed() {
|
_gem_installed() {
|
||||||
installed_gems=(`gem list --local --no-versions`)
|
installed_gems=(${(f)"$(gem list --local --no-versions)"})
|
||||||
}
|
}
|
||||||
|
|
||||||
local -a _1st_arguments
|
local -a _1st_arguments
|
||||||
|
|
||||||
_1st_arguments=(
|
_1st_arguments=(
|
||||||
|
'build:Build a gem from a gemspec'
|
||||||
'cert:Manage RubyGems certificates and signing settings'
|
'cert:Manage RubyGems certificates and signing settings'
|
||||||
'check:Check installed gems'
|
'check:Check a gem repository for added or missing files'
|
||||||
'cleanup:Clean up old versions of installed gems in the local repository'
|
'cleanup:Clean up old versions of installed gems in the local repository'
|
||||||
'contents:Display the contents of the installed gems'
|
'contents:Display the contents of the installed gems'
|
||||||
'dependency:Show the dependencies of an installed gem'
|
'dependency:Show the dependencies of an installed gem'
|
||||||
|
|
@ -21,7 +23,7 @@ _1st_arguments=(
|
||||||
'install:Install a gem into the local repository'
|
'install:Install a gem into the local repository'
|
||||||
'list:Display gems whose name starts with STRING'
|
'list:Display gems whose name starts with STRING'
|
||||||
'lock:Generate a lockdown list of gems'
|
'lock:Generate a lockdown list of gems'
|
||||||
'mirror:Mirror a gem repository'
|
'mirror:Mirror all gem files (requires rubygems-mirror)'
|
||||||
'outdated:Display all gems that need updates'
|
'outdated:Display all gems that need updates'
|
||||||
'owner:Manage gem owners on RubyGems.org.'
|
'owner:Manage gem owners on RubyGems.org.'
|
||||||
'pristine:Restores installed gems to pristine condition from files located in the gem cache'
|
'pristine:Restores installed gems to pristine condition from files located in the gem cache'
|
||||||
|
|
@ -35,8 +37,9 @@ _1st_arguments=(
|
||||||
'stale:List gems along with access times'
|
'stale:List gems along with access times'
|
||||||
'uninstall:Uninstall gems from the local repository'
|
'uninstall:Uninstall gems from the local repository'
|
||||||
'unpack:Unpack an installed gem to the current directory'
|
'unpack:Unpack an installed gem to the current directory'
|
||||||
'update:Update the named gems (or all installed gems) in the local repository'
|
'update:Update installed gems to the latest version'
|
||||||
'which:Find the location of a library file you can require'
|
'which:Find the location of a library file you can require'
|
||||||
|
'yank:Remove a specific gem version release from RubyGems.org'
|
||||||
)
|
)
|
||||||
|
|
||||||
local expl
|
local expl
|
||||||
|
|
|
||||||
285
plugins/git-extras/git-extras.plugin.zsh
Normal file
285
plugins/git-extras/git-extras.plugin.zsh
Normal file
|
|
@ -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' \
|
||||||
419
plugins/git-flow-avh/git-flow-avh.plugin.zsh
Normal file
419
plugins/git-flow-avh/git-flow-avh.plugin.zsh
Normal file
|
|
@ -0,0 +1,419 @@
|
||||||
|
#!zsh
|
||||||
|
#
|
||||||
|
# Installation
|
||||||
|
# ------------
|
||||||
|
#
|
||||||
|
# To achieve git-flow 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-flow-completion.zsh) and put the following line in
|
||||||
|
# your .zshrc:
|
||||||
|
#
|
||||||
|
# source ~/.git-flow-completion.zsh
|
||||||
|
#
|
||||||
|
# c. Or, use this file as a oh-my-zsh plugin.
|
||||||
|
#
|
||||||
|
|
||||||
|
_git-flow ()
|
||||||
|
{
|
||||||
|
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.'
|
||||||
|
'config:Manage your configuration.'
|
||||||
|
'release:Manage your release branches.'
|
||||||
|
'hotfix:Manage your hotfix branches.'
|
||||||
|
'support:Manage your support branches.'
|
||||||
|
'version:Shows version information.'
|
||||||
|
'finish:Finish the branch you are currently on.'
|
||||||
|
'delete:Delete the branch you are currently on.'
|
||||||
|
'publish:Publish the branch you are currently on.'
|
||||||
|
)
|
||||||
|
_describe -t commands 'git flow' subcommands
|
||||||
|
;;
|
||||||
|
|
||||||
|
(options)
|
||||||
|
case $line[1] in
|
||||||
|
|
||||||
|
(init)
|
||||||
|
_arguments \
|
||||||
|
-f'[Force setting of gitflow branches, even if already configured]'
|
||||||
|
;;
|
||||||
|
|
||||||
|
(version)
|
||||||
|
;;
|
||||||
|
|
||||||
|
(hotfix)
|
||||||
|
__git-flow-hotfix
|
||||||
|
;;
|
||||||
|
|
||||||
|
(release)
|
||||||
|
__git-flow-release
|
||||||
|
;;
|
||||||
|
|
||||||
|
(feature)
|
||||||
|
__git-flow-feature
|
||||||
|
;;
|
||||||
|
(config)
|
||||||
|
__git-flow-config
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
__git-flow-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 flow release`)'
|
||||||
|
'publish:Publish release branch to remote.'
|
||||||
|
'track:Checkout remote release branch.'
|
||||||
|
'delete:Delete a release branch.'
|
||||||
|
)
|
||||||
|
_describe -t commands 'git flow release' subcommands
|
||||||
|
_arguments \
|
||||||
|
-v'[Verbose (more) output]'
|
||||||
|
;;
|
||||||
|
|
||||||
|
(options)
|
||||||
|
case $line[1] in
|
||||||
|
|
||||||
|
(start)
|
||||||
|
_arguments \
|
||||||
|
-F'[Fetch from origin before performing finish]'\
|
||||||
|
':version:__git_flow_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]'\
|
||||||
|
':version:__git_flow_version_list'
|
||||||
|
;;
|
||||||
|
|
||||||
|
(delete)
|
||||||
|
_arguments \
|
||||||
|
-f'[Force deletion]' \
|
||||||
|
-r'[Delete remote branch]' \
|
||||||
|
':version:__git_flow_version_list'
|
||||||
|
;;
|
||||||
|
|
||||||
|
(publish)
|
||||||
|
_arguments \
|
||||||
|
':version:__git_flow_version_list'
|
||||||
|
;;
|
||||||
|
|
||||||
|
(track)
|
||||||
|
_arguments \
|
||||||
|
':version:__git_flow_version_list'
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
_arguments \
|
||||||
|
-v'[Verbose (more) output]'
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
__git-flow-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.'
|
||||||
|
'delete:Delete a hotfix branch.'
|
||||||
|
'list:List all your hotfix branches. (Alias to `git flow hotfix`)'
|
||||||
|
)
|
||||||
|
_describe -t commands 'git flow hotfix' subcommands
|
||||||
|
_arguments \
|
||||||
|
-v'[Verbose (more) output]'
|
||||||
|
;;
|
||||||
|
|
||||||
|
(options)
|
||||||
|
case $line[1] in
|
||||||
|
|
||||||
|
(start)
|
||||||
|
_arguments \
|
||||||
|
-F'[Fetch from origin before performing finish]'\
|
||||||
|
':hotfix:__git_flow_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]'\
|
||||||
|
':hotfix:__git_flow_hotfix_list'
|
||||||
|
;;
|
||||||
|
|
||||||
|
(delete)
|
||||||
|
_arguments \
|
||||||
|
-f'[Force deletion]' \
|
||||||
|
-r'[Delete remote branch]' \
|
||||||
|
':hotfix:__git_flow_hotfix_list'
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
_arguments \
|
||||||
|
-v'[Verbose (more) output]'
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
__git-flow-feature ()
|
||||||
|
{
|
||||||
|
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 feature branch.'
|
||||||
|
'finish:Finish a feature branch.'
|
||||||
|
'delete:Delete a feature branch.'
|
||||||
|
'list:List all your feature branches. (Alias to `git flow feature`)'
|
||||||
|
'publish:Publish feature branch to remote.'
|
||||||
|
'track:Checkout remote feature branch.'
|
||||||
|
'diff:Show all changes.'
|
||||||
|
'rebase:Rebase from integration branch.'
|
||||||
|
'checkout:Checkout local feature branch.'
|
||||||
|
'pull:Pull changes from remote.'
|
||||||
|
)
|
||||||
|
_describe -t commands 'git flow feature' subcommands
|
||||||
|
_arguments \
|
||||||
|
-v'[Verbose (more) output]'
|
||||||
|
;;
|
||||||
|
|
||||||
|
(options)
|
||||||
|
case $line[1] in
|
||||||
|
|
||||||
|
(start)
|
||||||
|
_arguments \
|
||||||
|
-F'[Fetch from origin before performing finish]'\
|
||||||
|
':feature:__git_flow_feature_list'\
|
||||||
|
':branch-name:__git_branch_names'
|
||||||
|
;;
|
||||||
|
|
||||||
|
(finish)
|
||||||
|
_arguments \
|
||||||
|
-F'[Fetch from origin before performing finish]' \
|
||||||
|
-r'[Rebase instead of merge]'\
|
||||||
|
':feature:__git_flow_feature_list'
|
||||||
|
;;
|
||||||
|
|
||||||
|
(delete)
|
||||||
|
_arguments \
|
||||||
|
-f'[Force deletion]' \
|
||||||
|
-r'[Delete remote branch]' \
|
||||||
|
':feature:__git_flow_feature_list'
|
||||||
|
;;
|
||||||
|
|
||||||
|
(publish)
|
||||||
|
_arguments \
|
||||||
|
':feature:__git_flow_feature_list'\
|
||||||
|
;;
|
||||||
|
|
||||||
|
(track)
|
||||||
|
_arguments \
|
||||||
|
':feature:__git_flow_feature_list'\
|
||||||
|
;;
|
||||||
|
|
||||||
|
(diff)
|
||||||
|
_arguments \
|
||||||
|
':branch:__git_branch_names'\
|
||||||
|
;;
|
||||||
|
|
||||||
|
(rebase)
|
||||||
|
_arguments \
|
||||||
|
-i'[Do an interactive rebase]' \
|
||||||
|
':branch:__git_branch_names'
|
||||||
|
;;
|
||||||
|
|
||||||
|
(checkout)
|
||||||
|
_arguments \
|
||||||
|
':branch:__git_flow_feature_list'\
|
||||||
|
;;
|
||||||
|
|
||||||
|
(pull)
|
||||||
|
_arguments \
|
||||||
|
':remote:__git_remotes'\
|
||||||
|
':branch:__git_branch_names'
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
_arguments \
|
||||||
|
-v'[Verbose (more) output]'
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
__git-flow-config ()
|
||||||
|
{
|
||||||
|
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 the configuration. (Alias to `git flow config`)'
|
||||||
|
'set:Set the configuration option'
|
||||||
|
)
|
||||||
|
_describe -t commands 'git flow config' subcommands
|
||||||
|
;;
|
||||||
|
|
||||||
|
(options)
|
||||||
|
case $line[1] in
|
||||||
|
|
||||||
|
(set)
|
||||||
|
_arguments \
|
||||||
|
--local'[Use repository config file]' \
|
||||||
|
--global'[Use global config file]'\
|
||||||
|
--system'[Use system config file]'\
|
||||||
|
--file'[Use given config file]'\
|
||||||
|
':option:(master develop feature hotfix release support versiontagprefix)'
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
_arguments \
|
||||||
|
--local'[Use repository config file]' \
|
||||||
|
--global'[Use global config file]'\
|
||||||
|
--system'[Use system config file]'\
|
||||||
|
--file'[Use given config file]'
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
__git_flow_version_list ()
|
||||||
|
{
|
||||||
|
local expl
|
||||||
|
declare -a versions
|
||||||
|
|
||||||
|
versions=(${${(f)"$(_call_program versions git flow release list 2> /dev/null | tr -d ' |*')"}})
|
||||||
|
__git_command_successful || return
|
||||||
|
|
||||||
|
_wanted versions expl 'version' compadd $versions
|
||||||
|
}
|
||||||
|
|
||||||
|
__git_flow_feature_list ()
|
||||||
|
{
|
||||||
|
local expl
|
||||||
|
declare -a features
|
||||||
|
|
||||||
|
features=(${${(f)"$(_call_program features git flow 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_flow_hotfix_list ()
|
||||||
|
{
|
||||||
|
local expl
|
||||||
|
declare -a hotfixes
|
||||||
|
|
||||||
|
hotfixes=(${${(f)"$(_call_program hotfixes git flow 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:'provide high-level repository operations'
|
||||||
|
|
@ -20,6 +20,12 @@
|
||||||
# c. Or, use this file as a oh-my-zsh plugin.
|
# c. Or, use this file as a oh-my-zsh plugin.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
#Alias
|
||||||
|
alias gf='git flow'
|
||||||
|
alias gcd='git checkout develop'
|
||||||
|
alias gch='git checkout hotfix'
|
||||||
|
alias gcr='git checkout release'
|
||||||
|
|
||||||
_git-flow ()
|
_git-flow ()
|
||||||
{
|
{
|
||||||
local curcontext="$curcontext" state line
|
local curcontext="$curcontext" state line
|
||||||
|
|
@ -88,6 +94,8 @@ __git-flow-release ()
|
||||||
'start:Start a new release branch.'
|
'start:Start a new release branch.'
|
||||||
'finish:Finish a release branch.'
|
'finish:Finish a release branch.'
|
||||||
'list:List all your release branches. (Alias to `git flow release`)'
|
'list:List all your release branches. (Alias to `git flow release`)'
|
||||||
|
'publish: public'
|
||||||
|
'track: track'
|
||||||
)
|
)
|
||||||
_describe -t commands 'git flow release' subcommands
|
_describe -t commands 'git flow release' subcommands
|
||||||
_arguments \
|
_arguments \
|
||||||
|
|
@ -115,6 +123,16 @@ __git-flow-release ()
|
||||||
':version:__git_flow_version_list'
|
':version:__git_flow_version_list'
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
(publish)
|
||||||
|
_arguments \
|
||||||
|
':version:__git_flow_version_list'\
|
||||||
|
;;
|
||||||
|
|
||||||
|
(track)
|
||||||
|
_arguments \
|
||||||
|
':version:__git_flow_version_list'\
|
||||||
|
;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
_arguments \
|
_arguments \
|
||||||
-v'[Verbose (more) output]'
|
-v'[Verbose (more) output]'
|
||||||
|
|
@ -195,7 +213,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'
|
||||||
|
|
@ -221,6 +239,7 @@ __git-flow-feature ()
|
||||||
_arguments \
|
_arguments \
|
||||||
-F'[Fetch from origin before performing finish]' \
|
-F'[Fetch from origin before performing finish]' \
|
||||||
-r'[Rebase instead of merge]'\
|
-r'[Rebase instead of merge]'\
|
||||||
|
-k'[Keep branch after performing finish]'\
|
||||||
':feature:__git_flow_feature_list'
|
':feature:__git_flow_feature_list'
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
|
@ -236,13 +255,13 @@ __git-flow-feature ()
|
||||||
|
|
||||||
(diff)
|
(diff)
|
||||||
_arguments \
|
_arguments \
|
||||||
':branch:__git_branch_names'\
|
':branch:__git_flow_feature_list'\
|
||||||
;;
|
;;
|
||||||
|
|
||||||
(rebase)
|
(rebase)
|
||||||
_arguments \
|
_arguments \
|
||||||
-i'[Do an interactive rebase]' \
|
-i'[Do an interactive rebase]' \
|
||||||
':branch:__git_branch_names'
|
':branch:__git_flow_feature_list'
|
||||||
;;
|
;;
|
||||||
|
|
||||||
(checkout)
|
(checkout)
|
||||||
|
|
@ -253,7 +272,7 @@ __git-flow-feature ()
|
||||||
(pull)
|
(pull)
|
||||||
_arguments \
|
_arguments \
|
||||||
':remote:__git_remotes'\
|
':remote:__git_remotes'\
|
||||||
':branch:__git_branch_names'
|
':branch:__git_flow_feature_list'
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
|
|
|
||||||
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'
|
||||||
60
plugins/git-prompt/git-prompt.plugin.zsh
Normal file
60
plugins/git-prompt/git-prompt.plugin.zsh
Normal file
|
|
@ -0,0 +1,60 @@
|
||||||
|
# ZSH Git Prompt Plugin from:
|
||||||
|
# http://github.com/olivierverdier/zsh-git-prompt
|
||||||
|
#
|
||||||
|
export __GIT_PROMPT_DIR=$ZSH/plugins/git-prompt
|
||||||
|
# Initialize colors.
|
||||||
|
autoload -U colors
|
||||||
|
colors
|
||||||
|
|
||||||
|
# Allow for functions in the prompt.
|
||||||
|
setopt PROMPT_SUBST
|
||||||
|
|
||||||
|
## Enable auto-execution of functions.
|
||||||
|
typeset -ga preexec_functions
|
||||||
|
typeset -ga precmd_functions
|
||||||
|
typeset -ga chpwd_functions
|
||||||
|
|
||||||
|
# Append git functions needed for prompt.
|
||||||
|
preexec_functions+='preexec_update_git_vars'
|
||||||
|
precmd_functions+='precmd_update_git_vars'
|
||||||
|
chpwd_functions+='chpwd_update_git_vars'
|
||||||
|
|
||||||
|
## Function definitions
|
||||||
|
function preexec_update_git_vars() {
|
||||||
|
case "$2" in
|
||||||
|
git*)
|
||||||
|
__EXECUTED_GIT_COMMAND=1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
function precmd_update_git_vars() {
|
||||||
|
if [ -n "$__EXECUTED_GIT_COMMAND" ]; then
|
||||||
|
update_current_git_vars
|
||||||
|
unset __EXECUTED_GIT_COMMAND
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function chpwd_update_git_vars() {
|
||||||
|
update_current_git_vars
|
||||||
|
}
|
||||||
|
|
||||||
|
function update_current_git_vars() {
|
||||||
|
unset __CURRENT_GIT_STATUS
|
||||||
|
|
||||||
|
local gitstatus="$__GIT_PROMPT_DIR/gitstatus.py"
|
||||||
|
_GIT_STATUS=`python ${gitstatus}`
|
||||||
|
__CURRENT_GIT_STATUS=("${(f)_GIT_STATUS}")
|
||||||
|
}
|
||||||
|
|
||||||
|
function prompt_git_info() {
|
||||||
|
if [ -n "$__CURRENT_GIT_STATUS" ]; then
|
||||||
|
echo "(%{${fg[red]}%}$__CURRENT_GIT_STATUS[1]%{${fg[default]}%}$__CURRENT_GIT_STATUS[2]%{${fg[magenta]}%}$__CURRENT_GIT_STATUS[3]%{${fg[default]}%})"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Set the prompt.
|
||||||
|
#PROMPT='%B%m%~%b$(prompt_git_info) %# '
|
||||||
|
# for a right prompt:
|
||||||
|
#RPROMPT='%b$(prompt_git_info)'
|
||||||
|
RPROMPT='$(prompt_git_info)'
|
||||||
68
plugins/git-prompt/gitstatus.py
Normal file
68
plugins/git-prompt/gitstatus.py
Normal file
|
|
@ -0,0 +1,68 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
# -*- coding: UTF-8 -*-
|
||||||
|
|
||||||
|
# change those symbols to whatever you prefer
|
||||||
|
symbols = {'ahead of': '↑', 'behind': '↓', 'staged':'♦', 'changed':'‣', 'untracked':'…', 'clean':'⚡', 'unmerged':'≠', 'sha1':':'}
|
||||||
|
|
||||||
|
from subprocess import Popen, PIPE
|
||||||
|
|
||||||
|
output,error = Popen(['git','status'], stdout=PIPE, stderr=PIPE).communicate()
|
||||||
|
|
||||||
|
if error:
|
||||||
|
import sys
|
||||||
|
sys.exit(0)
|
||||||
|
lines = output.splitlines()
|
||||||
|
|
||||||
|
import re
|
||||||
|
behead_re = re.compile(r"^# Your branch is (ahead of|behind) '(.*)' by (\d+) commit")
|
||||||
|
diverge_re = re.compile(r"^# and have (\d+) and (\d+) different")
|
||||||
|
|
||||||
|
status = ''
|
||||||
|
staged = re.compile(r'^# Changes to be committed:$', re.MULTILINE)
|
||||||
|
changed = re.compile(r'^# Changed but not updated:$', re.MULTILINE)
|
||||||
|
untracked = re.compile(r'^# Untracked files:$', re.MULTILINE)
|
||||||
|
unmerged = re.compile(r'^# Unmerged paths:$', re.MULTILINE)
|
||||||
|
|
||||||
|
def execute(*command):
|
||||||
|
out, err = Popen(stdout=PIPE, stderr=PIPE, *command).communicate()
|
||||||
|
if not err:
|
||||||
|
nb = len(out.splitlines())
|
||||||
|
else:
|
||||||
|
nb = '?'
|
||||||
|
return nb
|
||||||
|
|
||||||
|
if staged.search(output):
|
||||||
|
nb = execute(['git','diff','--staged','--name-only','--diff-filter=ACDMRT'])
|
||||||
|
status += '%s%s' % (symbols['staged'], nb)
|
||||||
|
if unmerged.search(output):
|
||||||
|
nb = execute(['git','diff', '--staged','--name-only', '--diff-filter=U'])
|
||||||
|
status += '%s%s' % (symbols['unmerged'], nb)
|
||||||
|
if changed.search(output):
|
||||||
|
nb = execute(['git','diff','--name-only', '--diff-filter=ACDMRT'])
|
||||||
|
status += '%s%s' % (symbols['changed'], nb)
|
||||||
|
if untracked.search(output):
|
||||||
|
## nb = len(Popen(['git','ls-files','--others','--exclude-standard'],stdout=PIPE).communicate()[0].splitlines())
|
||||||
|
## status += "%s" % (symbols['untracked']*(nb//3 + 1), )
|
||||||
|
status += symbols['untracked']
|
||||||
|
if status == '':
|
||||||
|
status = symbols['clean']
|
||||||
|
|
||||||
|
remote = ''
|
||||||
|
|
||||||
|
bline = lines[0]
|
||||||
|
if bline.find('Not currently on any branch') != -1:
|
||||||
|
branch = symbols['sha1']+ Popen(['git','rev-parse','--short','HEAD'], stdout=PIPE).communicate()[0][:-1]
|
||||||
|
else:
|
||||||
|
branch = bline.split(' ')[3]
|
||||||
|
bstatusline = lines[1]
|
||||||
|
match = behead_re.match(bstatusline)
|
||||||
|
if match:
|
||||||
|
remote = symbols[match.groups()[0]]
|
||||||
|
remote += match.groups()[2]
|
||||||
|
elif lines[2:]:
|
||||||
|
div_match = diverge_re.match(lines[2])
|
||||||
|
if div_match:
|
||||||
|
remote = "{behind}{1}{ahead of}{0}".format(*div_match.groups(), **symbols)
|
||||||
|
|
||||||
|
print '\n'.join([branch,remote,status])
|
||||||
|
|
||||||
19
plugins/git-remote-branch/git-remote-branch.plugin.zsh
Normal file
19
plugins/git-remote-branch/git-remote-branch.plugin.zsh
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
_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
|
||||||
|
remotes=`git remote | tr '\n' '|' | sed "s/\|$//g"`
|
||||||
|
compadd `git branch -r | grep -v HEAD | sed "s/$remotes\///" | sed "s/ //g"`
|
||||||
|
elif (( CURRENT == 4 )); then
|
||||||
|
# third arg: remote name
|
||||||
|
compadd `git remote`
|
||||||
|
fi
|
||||||
|
else;
|
||||||
|
_files
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
compdef _git_remote_branch grb
|
||||||
4
plugins/git/README.md
Normal file
4
plugins/git/README.md
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
## git
|
||||||
|
**Maintainer:** [Stibbons](https://github.com/Stibbons)
|
||||||
|
|
||||||
|
This plugin adds several git aliases and increase the completion function provided by zsh
|
||||||
83
plugins/git/_git-branch
Normal file
83
plugins/git/_git-branch
Normal file
|
|
@ -0,0 +1,83 @@
|
||||||
|
#compdef git-branch
|
||||||
|
|
||||||
|
_git-branch ()
|
||||||
|
{
|
||||||
|
declare l c m d
|
||||||
|
|
||||||
|
l='--color --no-color -r -a --all -v --verbose --abbrev --no-abbrev'
|
||||||
|
c='-l -f --force -t --track --no-track --set-upstream --contains --merged --no-merged'
|
||||||
|
m='-m -M'
|
||||||
|
d='-d -D'
|
||||||
|
|
||||||
|
declare -a dependent_creation_args
|
||||||
|
if (( words[(I)-r] == 0 )); then
|
||||||
|
dependent_creation_args=(
|
||||||
|
"($l $m $d): :__git_branch_names"
|
||||||
|
"::start-point:__git_revisions")
|
||||||
|
fi
|
||||||
|
|
||||||
|
declare -a dependent_deletion_args
|
||||||
|
if (( words[(I)-d] || words[(I)-D] )); then
|
||||||
|
dependent_creation_args=
|
||||||
|
dependent_deletion_args=(
|
||||||
|
'-r[delete only remote-tracking branches]')
|
||||||
|
if (( words[(I)-r] )); then
|
||||||
|
dependent_deletion_args+='*: :__git_ignore_line_inside_arguments __git_remote_branch_names'
|
||||||
|
else
|
||||||
|
dependent_deletion_args+='*: :__git_ignore_line_inside_arguments __git_branch_names'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
declare -a dependent_modification_args
|
||||||
|
if (( words[(I)-m] || words[(I)-M] )); then
|
||||||
|
dependent_creation_args=
|
||||||
|
dependent_modification_args=(
|
||||||
|
':old or new branch name:__git_branch_names'
|
||||||
|
'::new branch name:__git_branch_names')
|
||||||
|
fi
|
||||||
|
|
||||||
|
_arguments -w -S -s \
|
||||||
|
"($c $m $d --no-color :)--color=-[turn on branch coloring]:: :__git_color_whens" \
|
||||||
|
"($c $m $d : --color)--no-color[turn off branch coloring]" \
|
||||||
|
"($c $m -a --all)-r[list or delete only remote-tracking branches]" \
|
||||||
|
"($c $m $d : -r)"{-a,--all}"[list both remote-tracking branches and local branches]" \
|
||||||
|
"($c $m $d : -v --verbose)"{-v,--verbose}'[show SHA1 and commit subject line for each head]' \
|
||||||
|
"($c $m $d :)--abbrev=[set minimum SHA1 display-length]: :__git_guard_number length" \
|
||||||
|
"($c $m $d :)--no-abbrev[do not abbreviate sha1s]" \
|
||||||
|
"($l $m $d)-l[create the branch's reflog]" \
|
||||||
|
"($l $m $d -f --force)"{-f,--force}"[force the creation of a new branch]" \
|
||||||
|
"($l $m $d -t --track)"{-t,--track}"[set up configuration so that pull merges from the start point]" \
|
||||||
|
"($l $m $d)--no-track[override the branch.autosetupmerge configuration variable]" \
|
||||||
|
"($l $m $d)--set-upstream[set up configuration so that pull merges]" \
|
||||||
|
"($l $m $d)--contains=[only list branches which contain the specified commit]: :__git_committishs" \
|
||||||
|
"($l $m $d)--merged=[only list branches which are fully contained by HEAD]: :__git_committishs" \
|
||||||
|
"($l $m $d)--no-merged=[do not list branches which are fully contained by HEAD]: :__git_committishs" \
|
||||||
|
$dependent_creation_args \
|
||||||
|
"($l $c $d -M)-m[rename a branch and the corresponding reflog]" \
|
||||||
|
"($l $c $d -m)-M[rename a branch even if the new branch-name already exists]" \
|
||||||
|
$dependent_modification_args \
|
||||||
|
"($l $c $m -D)-d[delete a fully merged branch]" \
|
||||||
|
"($l $c $m -d)-D[delete a branch]" \
|
||||||
|
$dependent_deletion_args
|
||||||
|
}
|
||||||
|
|
||||||
|
(( $+functions[__git_ignore_line] )) ||
|
||||||
|
__git_ignore_line () {
|
||||||
|
declare -a ignored
|
||||||
|
ignored=()
|
||||||
|
((CURRENT > 1)) &&
|
||||||
|
ignored+=(${line[1,CURRENT-1]//(#m)[\[\]()\\*?#<>~\^]/\\$MATCH})
|
||||||
|
((CURRENT < $#line)) &&
|
||||||
|
ignored+=(${line[CURRENT+1,-1]//(#m)[\[\]()\\*?#<>~\^]/\\$MATCH})
|
||||||
|
$* -F ignored
|
||||||
|
}
|
||||||
|
|
||||||
|
(( $+functions[__git_ignore_line_inside_arguments] )) ||
|
||||||
|
__git_ignore_line_inside_arguments () {
|
||||||
|
declare -a compadd_opts
|
||||||
|
|
||||||
|
zparseopts -D -E -a compadd_opts V: J: 1 2 n f X: M: P: S: r: R: q F:
|
||||||
|
|
||||||
|
__git_ignore_line $* $compadd_opts
|
||||||
|
}
|
||||||
|
|
||||||
74
plugins/git/_git-remote
Normal file
74
plugins/git/_git-remote
Normal file
|
|
@ -0,0 +1,74 @@
|
||||||
|
#compdef git-remote
|
||||||
|
|
||||||
|
# NOTE: --track is undocumented.
|
||||||
|
# TODO: --track, -t, --master, and -m should take remote branches, I guess.
|
||||||
|
# NOTE: --master is undocumented.
|
||||||
|
# NOTE: --fetch is undocumented.
|
||||||
|
_git-remote () {
|
||||||
|
local curcontext=$curcontext state line
|
||||||
|
declare -A opt_args
|
||||||
|
|
||||||
|
_arguments -C \
|
||||||
|
':command:->command' \
|
||||||
|
'*::options:->options' && ret=0
|
||||||
|
|
||||||
|
case $state in
|
||||||
|
(command)
|
||||||
|
declare -a commands
|
||||||
|
|
||||||
|
commands=(
|
||||||
|
'add:add a new remote'
|
||||||
|
'show:show information about a given remote'
|
||||||
|
'prune:delete all stale tracking branches for a given remote'
|
||||||
|
'update:fetch updates for a set of remotes'
|
||||||
|
'rm:remove a remote from .git/config and all associated tracking branches'
|
||||||
|
'rename:rename a remote from .git/config and update all associated tracking branches'
|
||||||
|
'set-head:sets or deletes the default branch'
|
||||||
|
'set-branches:changes the list of branches tracked by the named remote.'
|
||||||
|
'set-url:changes URL remote points to.'
|
||||||
|
)
|
||||||
|
|
||||||
|
_describe -t commands 'sub-command' commands && ret=0
|
||||||
|
;;
|
||||||
|
(options)
|
||||||
|
case $line[1] in
|
||||||
|
(add)
|
||||||
|
_arguments \
|
||||||
|
'*'{--track,-t}'[track given branch instead of default glob refspec]:branch:__git_branch_names' \
|
||||||
|
'(--master -m)'{--master,-m}'[set the remote'\''s HEAD to point to given master branch]:branch:__git_branch_names' \
|
||||||
|
'(--fetch -f)'{--fetch,-f}'[run git-fetch on the new remote after it has been created]' \
|
||||||
|
':branch name:__git_remotes' \
|
||||||
|
':url:_urls' && ret=0
|
||||||
|
;;
|
||||||
|
(show)
|
||||||
|
_arguments \
|
||||||
|
'-n[do not contact the remote for a list of branches]' \
|
||||||
|
':remote:__git_remotes' && ret=0
|
||||||
|
;;
|
||||||
|
(prune)
|
||||||
|
_arguments \
|
||||||
|
'(--dry-run -n)'{-n,--dry-run}'[do not actually prune, only list what would be done]' \
|
||||||
|
':remote:__git_remotes' && ret=0
|
||||||
|
;;
|
||||||
|
(update)
|
||||||
|
__git_remote-groups && ret=0
|
||||||
|
;;
|
||||||
|
(rm)
|
||||||
|
__git_remotes && ret=0
|
||||||
|
;;
|
||||||
|
(rename)
|
||||||
|
__git_remotes && ret=0
|
||||||
|
;;
|
||||||
|
(set-url)
|
||||||
|
_arguments \
|
||||||
|
'*--push[manipulate push URLs]' \
|
||||||
|
'(--add)--add[add URL]' \
|
||||||
|
'(--delete)--delete[delete URLs]' \
|
||||||
|
':branch name:__git_remotes' \
|
||||||
|
':url:_urls' && ret=0
|
||||||
|
;;
|
||||||
|
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
@ -3,33 +3,67 @@ alias g='git'
|
||||||
compdef g=git
|
compdef g=git
|
||||||
alias gst='git status'
|
alias gst='git status'
|
||||||
compdef _git gst=git-status
|
compdef _git gst=git-status
|
||||||
|
alias gd='git diff'
|
||||||
|
compdef _git gd=git-diff
|
||||||
|
alias gdc='git diff --cached'
|
||||||
|
compdef _git gdc=git-diff
|
||||||
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
|
||||||
|
alias gd='git diff'
|
||||||
gdv() { git diff -w "$@" | view - }
|
gdv() { git diff -w "$@" | view - }
|
||||||
compdef _git gdv=git-diff
|
compdef _git gdv=git-diff
|
||||||
alias gc='git commit -v'
|
alias gc='git commit -v'
|
||||||
compdef _git gc=git-commit
|
compdef _git gc=git-commit
|
||||||
|
alias gc!='git commit -v --amend'
|
||||||
|
compdef _git gc!=git-commit
|
||||||
alias gca='git commit -v -a'
|
alias gca='git commit -v -a'
|
||||||
compdef _git gca=git-commit
|
compdef _git gc=git-commit
|
||||||
|
alias gca!='git commit -v -a --amend'
|
||||||
|
compdef _git gca!=git-commit
|
||||||
|
alias gcmsg='git commit -m'
|
||||||
|
compdef _git gcmsg=git-commit
|
||||||
alias gco='git checkout'
|
alias gco='git checkout'
|
||||||
compdef _git gco=git-checkout
|
compdef _git gco=git-checkout
|
||||||
alias gcm='git checkout master'
|
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 grbi='git rebase -i'
|
||||||
|
compdef _git grbi=git-rebase
|
||||||
|
alias grbc='git rebase --continue'
|
||||||
|
compdef _git grbc=git-rebase
|
||||||
|
alias grba='git rebase --abort'
|
||||||
|
compdef _git grba=git-rebase
|
||||||
alias gb='git branch'
|
alias gb='git branch'
|
||||||
compdef _git gb=git-branch
|
compdef _git gb=git-branch
|
||||||
alias gba='git branch -a'
|
alias gba='git branch -a'
|
||||||
compdef _git gba=git-branch
|
compdef _git gba=git-branch
|
||||||
alias gcount='git shortlog -sn'
|
alias gcount='git shortlog -sn'
|
||||||
compdef gcount=git
|
compdef gcount=git
|
||||||
|
alias gcl='git config --list'
|
||||||
alias gcp='git cherry-pick'
|
alias gcp='git cherry-pick'
|
||||||
compdef _git gcp=git-cherry-pick
|
compdef _git gcp=git-cherry-pick
|
||||||
alias glg='git log --stat --max-count=5'
|
alias glg='git log --stat --max-count=10'
|
||||||
compdef _git glg=git-log
|
compdef _git glg=git-log
|
||||||
alias glgg='git log --graph --max-count=5'
|
alias glgg='git log --graph --max-count=10'
|
||||||
compdef _git glgg=git-log
|
compdef _git glgg=git-log
|
||||||
|
alias glgga='git log --graph --decorate --all'
|
||||||
|
compdef _git glgga=git-log
|
||||||
|
alias glo='git log --oneline'
|
||||||
|
compdef _git glo=git-log
|
||||||
alias gss='git status -s'
|
alias gss='git status -s'
|
||||||
compdef _git gss=git-status
|
compdef _git gss=git-status
|
||||||
alias ga='git add'
|
alias ga='git add'
|
||||||
|
|
@ -38,6 +72,28 @@ 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 gclean='git reset --hard && git clean -dfx'
|
||||||
|
alias gwc='git whatchanged -p --abbrev-commit --pretty=medium'
|
||||||
|
|
||||||
|
#remove the gf alias
|
||||||
|
#alias gf='git ls-files | grep'
|
||||||
|
|
||||||
|
alias gpoat='git push origin --all && git push origin --tags'
|
||||||
|
alias gmt='git mergetool --no-prompt'
|
||||||
|
compdef _git gm=git-mergetool
|
||||||
|
|
||||||
|
alias gg='git gui citool'
|
||||||
|
alias gga='git gui citool --amend'
|
||||||
|
alias gk='gitk --all --branches'
|
||||||
|
|
||||||
|
alias gsts='git stash show --text'
|
||||||
|
alias gsta='git stash'
|
||||||
|
alias gstp='git stash pop'
|
||||||
|
alias gstd='git stash drop'
|
||||||
|
|
||||||
|
# Will cd into the top of the current repository
|
||||||
|
# or submodule.
|
||||||
|
alias grt='cd $(git rev-parse --show-toplevel || echo ".")'
|
||||||
|
|
||||||
# Git and svn mix
|
# Git and svn mix
|
||||||
alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk'
|
alias git-svn-dcommit-push='git svn dcommit && git push github master:svntrunk'
|
||||||
|
|
@ -50,20 +106,55 @@ alias gsd='git svn dcommit'
|
||||||
# Usage example: git pull origin $(current_branch)
|
# Usage example: git pull origin $(current_branch)
|
||||||
#
|
#
|
||||||
function 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/}
|
echo ${ref#refs/heads/}
|
||||||
}
|
}
|
||||||
|
|
||||||
function current_repository() {
|
function current_repository() {
|
||||||
|
ref=$(git symbolic-ref HEAD 2> /dev/null) || \
|
||||||
ref=$(git symbolic-ref HEAD 2> /dev/null) || return
|
ref=$(git rev-parse --short HEAD 2> /dev/null) || return
|
||||||
echo $(git remote -v | cut -d':' -f 2)
|
echo $(git remote -v | cut -d':' -f 2)
|
||||||
}
|
}
|
||||||
|
|
||||||
# these aliases take advantage of the previous function
|
# these aliases take advantage of the previous function
|
||||||
alias ggpull='git pull origin $(current_branch)'
|
alias ggpull='git pull origin $(current_branch)'
|
||||||
compdef ggpull=git
|
compdef ggpull=git
|
||||||
|
alias ggpur='git pull --rebase origin $(current_branch)'
|
||||||
|
compdef ggpur=git
|
||||||
alias ggpush='git push origin $(current_branch)'
|
alias ggpush='git push origin $(current_branch)'
|
||||||
compdef ggpush=git
|
compdef ggpush=git
|
||||||
alias ggpnp='git pull origin $(current_branch) && git push origin $(current_branch)'
|
alias ggpnp='git pull origin $(current_branch) && git push origin $(current_branch)'
|
||||||
compdef ggpnp=git
|
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
|
||||||
|
|
||||||
|
# Work In Progress (wip)
|
||||||
|
# These features allow to pause a branch development and switch to another one (wip)
|
||||||
|
# When you want to go back to work, just unwip it
|
||||||
|
#
|
||||||
|
# This function return a warning if the current branch is a wip
|
||||||
|
function work_in_progress() {
|
||||||
|
if $(git log -n 1 2>/dev/null | grep -q -c "\-\-wip\-\-"); then
|
||||||
|
echo "WIP!!"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
# these alias commit and uncomit wip branches
|
||||||
|
alias gwip='git add -A; git ls-files --deleted -z | xargs -0 git rm; git commit -m "--wip--"'
|
||||||
|
alias gunwip='git log -n 1 | grep -q -c "\-\-wip\-\-" && git reset HEAD~1'
|
||||||
|
|
||||||
|
# these alias ignore changes to file
|
||||||
|
alias gignore='git update-index --assume-unchanged'
|
||||||
|
alias gunignore='git update-index --no-assume-unchanged'
|
||||||
|
# list temporarily ignored files
|
||||||
|
alias gignored='git ls-files -v | grep "^[[:lower:]]"'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
87
plugins/gitfast/_git
Normal file
87
plugins/gitfast/_git
Normal file
|
|
@ -0,0 +1,87 @@
|
||||||
|
#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
|
||||||
|
}
|
||||||
|
|
||||||
|
__gitcomp_file ()
|
||||||
|
{
|
||||||
|
emulate -L zsh
|
||||||
|
|
||||||
|
local IFS=$'\n'
|
||||||
|
compset -P '*[=:]'
|
||||||
|
compadd -Q -p "${2-}" -f -- ${=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
|
||||||
2766
plugins/gitfast/git-completion.bash
Normal file
2766
plugins/gitfast/git-completion.bash
Normal file
File diff suppressed because it is too large
Load diff
399
plugins/gitfast/git-prompt.sh
Normal file
399
plugins/gitfast/git-prompt.sh
Normal file
|
|
@ -0,0 +1,399 @@
|
||||||
|
# bash/zsh git prompt support
|
||||||
|
#
|
||||||
|
# Copyright (C) 2006,2007 Shawn O. Pearce <spearce@spearce.org>
|
||||||
|
# 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
|
||||||
|
# 3a) Change your PS1 to call __git_ps1 as
|
||||||
|
# command-substitution:
|
||||||
|
# Bash: PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '
|
||||||
|
# ZSH: PS1='[%n@%m %c$(__git_ps1 " (%s)")]\$ '
|
||||||
|
# the optional argument will be used as format string.
|
||||||
|
# 3b) Alternatively, if you are using bash, __git_ps1 can be
|
||||||
|
# used for PROMPT_COMMAND with two parameters, <pre> and
|
||||||
|
# <post>, which are strings you would put in $PS1 before
|
||||||
|
# and after the status string generated by the git-prompt
|
||||||
|
# machinery. e.g.
|
||||||
|
# PROMPT_COMMAND='__git_ps1 "\u@\h:\w" "\\\$ "'
|
||||||
|
# will show username, at-sign, host, colon, cwd, then
|
||||||
|
# various status string, followed by dollar and SP, as
|
||||||
|
# your prompt.
|
||||||
|
# Optionally, you can supply a third argument with a printf
|
||||||
|
# format string to finetune the output of the branch status
|
||||||
|
#
|
||||||
|
# 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. You can
|
||||||
|
# configure this per-repository with the bash.showUntrackedFiles
|
||||||
|
# variable, which defaults to true once GIT_PS1_SHOWUNTRACKEDFILES is
|
||||||
|
# enabled.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
#
|
||||||
|
# If you would like to see more information about the identity of
|
||||||
|
# commits checked out as a detached HEAD, set GIT_PS1_DESCRIBE_STYLE
|
||||||
|
# to one of these values:
|
||||||
|
#
|
||||||
|
# contains relative to newer annotated tag (v1.6.3.2~35)
|
||||||
|
# branch relative to newer tag or branch (master~4)
|
||||||
|
# describe relative to older annotated tag (v1.6.3.1-13-gdd42c2f)
|
||||||
|
# default exactly matching tag
|
||||||
|
#
|
||||||
|
# If you would like a colored hint about the current dirty state, set
|
||||||
|
# GIT_PS1_SHOWCOLORHINTS to a nonempty value. The colors are based on
|
||||||
|
# the colored output of "git status -sb".
|
||||||
|
|
||||||
|
# __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)
|
||||||
|
# when called from PS1 using command substitution
|
||||||
|
# in this mode it prints text to add to bash PS1 prompt (includes branch name)
|
||||||
|
#
|
||||||
|
# __git_ps1 requires 2 or 3 arguments when called from PROMPT_COMMAND (pc)
|
||||||
|
# in that case it _sets_ PS1. The arguments are parts of a PS1 string.
|
||||||
|
# when two arguments are given, the first is prepended and the second appended
|
||||||
|
# to the state string when assigned to PS1.
|
||||||
|
# The optional third parameter will be used as printf format string to further
|
||||||
|
# customize the output of the git-status string.
|
||||||
|
# In this mode you can request colored hints using GIT_PS1_SHOWCOLORHINTS=true
|
||||||
|
__git_ps1 ()
|
||||||
|
{
|
||||||
|
local pcmode=no
|
||||||
|
local detached=no
|
||||||
|
local ps1pc_start='\u@\h:\w '
|
||||||
|
local ps1pc_end='\$ '
|
||||||
|
local printf_format=' (%s)'
|
||||||
|
|
||||||
|
case "$#" in
|
||||||
|
2|3) pcmode=yes
|
||||||
|
ps1pc_start="$1"
|
||||||
|
ps1pc_end="$2"
|
||||||
|
printf_format="${3:-$printf_format}"
|
||||||
|
;;
|
||||||
|
0|1) printf_format="${1:-$printf_format}"
|
||||||
|
;;
|
||||||
|
*) return
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
local g="$(__gitdir)"
|
||||||
|
if [ -z "$g" ]; then
|
||||||
|
if [ $pcmode = yes ]; then
|
||||||
|
#In PC mode PS1 always needs to be set
|
||||||
|
PS1="$ps1pc_start$ps1pc_end"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
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)" || {
|
||||||
|
detached=yes
|
||||||
|
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-}" ] &&
|
||||||
|
[ "$(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
|
||||||
|
if [ -n "${GIT_PS1_SHOWSTASHSTATE-}" ]; then
|
||||||
|
git rev-parse --verify refs/stash >/dev/null 2>&1 && s="$"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "${GIT_PS1_SHOWUNTRACKEDFILES-}" ] &&
|
||||||
|
[ "$(git config --bool bash.showUntrackedFiles)" != "false" ] &&
|
||||||
|
[ -n "$(git ls-files --others --exclude-standard)" ]
|
||||||
|
then
|
||||||
|
u="%%"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "${GIT_PS1_SHOWUPSTREAM-}" ]; then
|
||||||
|
__git_ps1_show_upstream
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
local f="$w$i$s$u"
|
||||||
|
if [ $pcmode = yes ]; then
|
||||||
|
local gitstring=
|
||||||
|
if [ -n "${GIT_PS1_SHOWCOLORHINTS-}" ]; then
|
||||||
|
local c_red='\e[31m'
|
||||||
|
local c_green='\e[32m'
|
||||||
|
local c_lblue='\e[1;34m'
|
||||||
|
local c_clear='\e[0m'
|
||||||
|
local bad_color=$c_red
|
||||||
|
local ok_color=$c_green
|
||||||
|
local branch_color="$c_clear"
|
||||||
|
local flags_color="$c_lblue"
|
||||||
|
local branchstring="$c${b##refs/heads/}"
|
||||||
|
|
||||||
|
if [ $detached = no ]; then
|
||||||
|
branch_color="$ok_color"
|
||||||
|
else
|
||||||
|
branch_color="$bad_color"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Setting gitstring directly with \[ and \] around colors
|
||||||
|
# is necessary to prevent wrapping issues!
|
||||||
|
gitstring="\[$branch_color\]$branchstring\[$c_clear\]"
|
||||||
|
|
||||||
|
if [ -n "$w$i$s$u$r$p" ]; then
|
||||||
|
gitstring="$gitstring "
|
||||||
|
fi
|
||||||
|
if [ "$w" = "*" ]; then
|
||||||
|
gitstring="$gitstring\[$bad_color\]$w"
|
||||||
|
fi
|
||||||
|
if [ -n "$i" ]; then
|
||||||
|
gitstring="$gitstring\[$ok_color\]$i"
|
||||||
|
fi
|
||||||
|
if [ -n "$s" ]; then
|
||||||
|
gitstring="$gitstring\[$flags_color\]$s"
|
||||||
|
fi
|
||||||
|
if [ -n "$u" ]; then
|
||||||
|
gitstring="$gitstring\[$bad_color\]$u"
|
||||||
|
fi
|
||||||
|
gitstring="$gitstring\[$c_clear\]$r$p"
|
||||||
|
else
|
||||||
|
gitstring="$c${b##refs/heads/}${f:+ $f}$r$p"
|
||||||
|
fi
|
||||||
|
gitstring=$(printf -- "$printf_format" "$gitstring")
|
||||||
|
PS1="$ps1pc_start$gitstring$ps1pc_end"
|
||||||
|
else
|
||||||
|
# NO color option unless in PROMPT_COMMAND mode
|
||||||
|
printf -- "$printf_format" "$c${b##refs/heads/}${f:+ $f}$r$p"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
8
plugins/gitfast/gitfast.plugin.zsh
Normal file
8
plugins/gitfast/gitfast.plugin.zsh
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
dir=$(dirname $0)
|
||||||
|
source $dir/../git/git.plugin.zsh
|
||||||
|
source $dir/git-prompt.sh
|
||||||
|
|
||||||
|
function git_prompt_info() {
|
||||||
|
dirty="$(parse_git_dirty)"
|
||||||
|
__git_ps1 "${ZSH_THEME_GIT_PROMPT_PREFIX//\%/%%}%s${dirty//\%/%%}${ZSH_THEME_GIT_PROMPT_SUFFIX//\%/%%}"
|
||||||
|
}
|
||||||
|
|
@ -1,5 +1,22 @@
|
||||||
# Setup hub function for git, if it is available; http://github.com/defunkt/hub
|
# Setup hub function for git, if it is available; http://github.com/defunkt/hub
|
||||||
if [ "$commands[(I)hub]" ] && [ "$commands[(I)ruby]" ]; then
|
if [ "$commands[(I)hub]" ] && [ "$commands[(I)ruby]" ]; then
|
||||||
|
# Autoload _git completion functions
|
||||||
|
if declare -f _git > /dev/null; then
|
||||||
|
_git
|
||||||
|
fi
|
||||||
|
|
||||||
|
if declare -f _git_commands > /dev/null; then
|
||||||
|
_hub_commands=(
|
||||||
|
'alias:show shell instructions for wrapping git'
|
||||||
|
'pull-request:open a pull request on GitHub'
|
||||||
|
'fork:fork origin repo on GitHub'
|
||||||
|
'create:create new repo on GitHub for the current project'
|
||||||
|
'browse:browse the project on GitHub'
|
||||||
|
'compare:open GitHub compare view'
|
||||||
|
)
|
||||||
|
# Extend the '_git_commands' function with hub commands
|
||||||
|
eval "$(declare -f _git_commands | sed -e 's/base_commands=(/base_commands=(${_hub_commands} /')"
|
||||||
|
fi
|
||||||
# eval `hub alias -s zsh`
|
# eval `hub alias -s zsh`
|
||||||
function git(){
|
function git(){
|
||||||
if ! (( $+_has_working_hub )); then
|
if ! (( $+_has_working_hub )); then
|
||||||
|
|
@ -61,6 +78,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
|
||||||
|
|
|
||||||
12
plugins/gitignore/gitignore.plugin.zsh
Normal file
12
plugins/gitignore/gitignore.plugin.zsh
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
function gi() { curl http://www.gitignore.io/api/$@ ;}
|
||||||
|
|
||||||
|
_gitignireio_get_command_list() {
|
||||||
|
curl -s http://www.gitignore.io/api/list | tr "," "\n"
|
||||||
|
}
|
||||||
|
|
||||||
|
_gitignireio () {
|
||||||
|
compset -P '*,'
|
||||||
|
compadd -S '' `_gitignireio_get_command_list`
|
||||||
|
}
|
||||||
|
|
||||||
|
compdef _gitignireio gi
|
||||||
151
plugins/go/go.plugin.zsh
Normal file
151
plugins/go/go.plugin.zsh
Normal file
|
|
@ -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
|
||||||
150
plugins/golang/golang.plugin.zsh
Normal file
150
plugins/golang/golang.plugin.zsh
Normal file
|
|
@ -0,0 +1,150 @@
|
||||||
|
# From : http://golang.org/misc/zsh/go?m=text
|
||||||
|
# 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
|
||||||
|
|
@ -1,26 +1,41 @@
|
||||||
# Based on ssh-agent code
|
|
||||||
|
|
||||||
local GPG_ENV=$HOME/.gnupg/gpg-agent.env
|
local GPG_ENV=$HOME/.gnupg/gpg-agent.env
|
||||||
|
|
||||||
function start_agent {
|
function start_agent_nossh {
|
||||||
/usr/bin/env gpg-agent --daemon --enable-ssh-support --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}
|
chmod 600 ${GPG_ENV}
|
||||||
. ${GPG_ENV} > /dev/null
|
export GPG_AGENT_INFO
|
||||||
}
|
}
|
||||||
|
|
||||||
# Source GPG agent settings, if applicable
|
function start_agent_withssh {
|
||||||
if [ -f "${GPG_ENV}" ]; then
|
eval $(/usr/bin/env gpg-agent --quiet --daemon --enable-ssh-support --write-env-file ${GPG_ENV} 2> /dev/null)
|
||||||
. ${GPG_ENV} > /dev/null
|
chmod 600 ${GPG_ENV}
|
||||||
ps -ef | grep ${SSH_AGENT_PID} | grep gpg-agent > /dev/null || {
|
|
||||||
start_agent;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
start_agent;
|
|
||||||
fi
|
|
||||||
|
|
||||||
export GPG_AGENT_INFO
|
export GPG_AGENT_INFO
|
||||||
export SSH_AUTH_SOCK
|
export SSH_AUTH_SOCK
|
||||||
export SSH_AGENT_PID
|
export SSH_AGENT_PID
|
||||||
|
}
|
||||||
|
|
||||||
|
# check if another agent is running
|
||||||
|
if ! gpg-connect-agent --quiet /bye > /dev/null 2> /dev/null; then
|
||||||
|
# source settings of old agent, if applicable
|
||||||
|
if [ -f "${GPG_ENV}" ]; then
|
||||||
|
. ${GPG_ENV} > /dev/null
|
||||||
|
export GPG_AGENT_INFO
|
||||||
|
export SSH_AUTH_SOCK
|
||||||
|
export SSH_AGENT_PID
|
||||||
|
fi
|
||||||
|
|
||||||
|
# check again if another agent is running using the newly sourced settings
|
||||||
|
if ! gpg-connect-agent --quiet /bye > /dev/null 2> /dev/null; then
|
||||||
|
# check for existing ssh-agent
|
||||||
|
if ssh-add -l > /dev/null 2> /dev/null; then
|
||||||
|
# ssh-agent running, start gpg-agent without ssh support
|
||||||
|
start_agent_nossh;
|
||||||
|
else
|
||||||
|
# otherwise start gpg-agent with ssh support
|
||||||
|
start_agent_withssh;
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
GPG_TTY=$(tty)
|
GPG_TTY=$(tty)
|
||||||
export GPG_TTY
|
export GPG_TTY
|
||||||
|
|
|
||||||
|
|
@ -54,27 +54,14 @@ function in_gradle() {
|
||||||
fi
|
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
|
############################################################################## Examine the build.gradle file to see if its
|
||||||
# timestamp has changed, and if so, regen
|
# timestamp has changed, and if so, regen
|
||||||
# the .gradle_tasks cache file
|
# the .gradle_tasks cache file
|
||||||
############################################################################
|
############################################################################
|
||||||
_gradle_does_task_list_need_generating () {
|
_gradle_does_task_list_need_generating () {
|
||||||
if [ ! -f .gradletasknamecache ]; then return 0;
|
[ ! -f .gradletasknamecache ] && return 0;
|
||||||
else
|
[ .gradletasknamecache -nt build.gradle ] && return 0;
|
||||||
accurate=$($stat_cmd .gradletasknamecache)
|
return 1;
|
||||||
changed=$($stat_cmd build.gradle)
|
|
||||||
return $(expr $accurate '>=' $changed)
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,17 +24,23 @@ _enumerateGrailsScripts() {
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
scripts=()
|
||||||
|
for file in $files
|
||||||
|
do
|
||||||
# - Strip the path
|
# - Strip the path
|
||||||
# - Remove all scripts with a leading '_'
|
# - Remove all scripts with a leading '_'
|
||||||
# - PackagePlugin_.groovy -> PackagePlugin
|
# - PackagePlugin_.groovy -> PackagePlugin
|
||||||
# - PackagePlugin -> Package-Plugin
|
# - PackagePlugin -> Package-Plugin
|
||||||
# - Package-Plugin -> package-plugin
|
# - Package-Plugin -> package-plugin
|
||||||
basename $files \
|
command=$(basename $file \
|
||||||
| sed -E -e 's/^_?([^_]+)_?.groovy/\1/'\
|
| sed -E -e 's/^_?([^_]+)_?.groovy/\1/'\
|
||||||
-e 's/([a-z])([A-Z])/\1-\2/g' \
|
-e 's/([a-z])([A-Z])/\1-\2/g' \
|
||||||
| tr "[:upper:]" "[:lower:]" \
|
| tr "[:upper:]" "[:lower:]" \
|
||||||
| sort \
|
| sort \
|
||||||
| uniq
|
| uniq)
|
||||||
|
scripts+=($command)
|
||||||
|
done
|
||||||
|
echo $scripts
|
||||||
}
|
}
|
||||||
|
|
||||||
_grails() {
|
_grails() {
|
||||||
|
|
|
||||||
|
|
@ -23,8 +23,10 @@ _1st_arguments=(
|
||||||
"auth\:login":"log in with your heroku credentials"
|
"auth\:login":"log in with your heroku credentials"
|
||||||
"auth\:logout":"clear local authentication credentials"
|
"auth\:logout":"clear local authentication credentials"
|
||||||
"config":"display the config vars for an app"
|
"config":"display the config vars for an app"
|
||||||
"config\:add":"add one or more config vars"
|
"config\:pull":"pull heroku config vars down to the local environment"
|
||||||
"config\:remove":"remove a config var"
|
"config\:push":"push local config vars to heroku"
|
||||||
|
"config\:set":"set one or more config vars"
|
||||||
|
"config\:unset":"unset one or more config vars"
|
||||||
"db\:push":"push local data up to your app"
|
"db\:push":"push local data up to your app"
|
||||||
"db\:pull":"pull heroku data down into your local database"
|
"db\:pull":"pull heroku data down into your local database"
|
||||||
"domains":"list custom domains for an app"
|
"domains":"list custom domains for an app"
|
||||||
|
|
@ -154,5 +156,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
|
||||||
|
|
||||||
|
|
|
||||||
8
plugins/history/history.plugin.zsh
Normal file
8
plugins/history/history.plugin.zsh
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
alias h='history'
|
||||||
|
|
||||||
|
function hs
|
||||||
|
{
|
||||||
|
history | grep $*
|
||||||
|
}
|
||||||
|
|
||||||
|
alias hsi='hs -i'
|
||||||
8
plugins/iwhois/iwhois.plugin.zsh
Normal file
8
plugins/iwhois/iwhois.plugin.zsh
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
# provide a whois command with a more accurate and up to date list of whois
|
||||||
|
# servers using CNAMES via whois.geek.nz
|
||||||
|
|
||||||
|
function iwhois() {
|
||||||
|
resolver="whois.geek.nz"
|
||||||
|
tld=`echo ${@: -1} | awk -F "." '{print $NF}'`
|
||||||
|
whois -h ${tld}.${resolver} "$@" ;
|
||||||
|
}
|
||||||
|
|
@ -1,20 +1,43 @@
|
||||||
# To use: add a .jira-url file in the base of your project
|
# 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="true"
|
||||||
|
# in you .zshrc
|
||||||
|
#
|
||||||
# Setup: cd to/my/project
|
# Setup: cd to/my/project
|
||||||
# echo "https://name.jira.com" >> .jira-url
|
# echo "https://name.jira.com" >> .jira-url
|
||||||
# Usage: jira # opens a new issue
|
# Usage: jira # opens a new issue
|
||||||
# jira ABC-123 # Opens an existing issue
|
# jira ABC-123 # Opens an existing issue
|
||||||
open_jira_issue () {
|
open_jira_issue () {
|
||||||
if [ ! -f .jira-url ]; then
|
local open_cmd
|
||||||
echo "There is no .jira-url file in the current directory..."
|
if [[ $(uname -s) == 'Darwin' ]]; then
|
||||||
return 0;
|
open_cmd='open'
|
||||||
else
|
else
|
||||||
jira_url=$(cat .jira-url);
|
open_cmd='xdg-open'
|
||||||
|
fi
|
||||||
|
|
||||||
|
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
|
||||||
|
echo "JIRA url is not specified anywhere."
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -z "$1" ]; then
|
if [ -z "$1" ]; then
|
||||||
echo "Opening new issue";
|
echo "Opening new issue"
|
||||||
`open $jira_url/secure/CreateIssue!default.jspa`;
|
$open_cmd "$jira_url/secure/CreateIssue!default.jspa"
|
||||||
else
|
else
|
||||||
echo "Opening issue #$1";
|
echo "Opening issue #$1"
|
||||||
`open $jira_url/issues/$1`;
|
if [[ "x$JIRA_RAPID_BOARD" = "xtrue" ]]; then
|
||||||
|
$open_cmd "$jira_url/issues/$1"
|
||||||
|
else
|
||||||
|
$open_cmd "$jira_url/browse/$1"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
|
||||||
58
plugins/jump/jump.plugin.zsh
Normal file
58
plugins/jump/jump.plugin.zsh
Normal file
|
|
@ -0,0 +1,58 @@
|
||||||
|
# Easily jump around the file system by manually adding marks
|
||||||
|
# marks are stored as symbolic links in the directory $MARKPATH (default $HOME/.marks)
|
||||||
|
#
|
||||||
|
# jump FOO: jump to a mark named FOO
|
||||||
|
# mark FOO: create a mark named FOO
|
||||||
|
# unmark FOO: delete a mark
|
||||||
|
# marks: lists all marks
|
||||||
|
#
|
||||||
|
export MARKPATH=$HOME/.marks
|
||||||
|
|
||||||
|
jump() {
|
||||||
|
cd -P "$MARKPATH/$1" 2>/dev/null || echo "No such mark: $1"
|
||||||
|
}
|
||||||
|
|
||||||
|
mark() {
|
||||||
|
if (( $# == 0 )); then
|
||||||
|
MARK=$(basename "$(pwd)")
|
||||||
|
else
|
||||||
|
MARK="$1"
|
||||||
|
fi
|
||||||
|
if read -q \?"Mark $(pwd) as ${MARK}? (y/n) "; then
|
||||||
|
mkdir -p "$MARKPATH"; ln -s "$(pwd)" "$MARKPATH/$MARK"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
unmark() {
|
||||||
|
rm -i "$MARKPATH/$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
autoload colors
|
||||||
|
marks() {
|
||||||
|
for link in $MARKPATH/*(@); do
|
||||||
|
local markname="$fg[cyan]${link:t}$reset_color"
|
||||||
|
local markpath="$fg[blue]$(readlink $link)$reset_color"
|
||||||
|
printf "%s\t" $markname
|
||||||
|
printf "-> %s \t\n" $markpath
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
_completemarks() {
|
||||||
|
if [[ $(ls "${MARKPATH}" | wc -l) -gt 1 ]]; then
|
||||||
|
reply=($(ls $MARKPATH/**/*(-) | grep : | sed -E 's/(.*)\/([_\da-zA-Z\-]*):$/\2/g'))
|
||||||
|
else
|
||||||
|
if readlink -e "${MARKPATH}"/* &>/dev/null; then
|
||||||
|
reply=($(ls "${MARKPATH}"))
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
compctl -K _completemarks jump
|
||||||
|
compctl -K _completemarks unmark
|
||||||
|
|
||||||
|
_mark_expansion() {
|
||||||
|
setopt extendedglob
|
||||||
|
autoload -U modify-current-argument
|
||||||
|
modify-current-argument '$(readlink "$MARKPATH/$ARG")'
|
||||||
|
}
|
||||||
|
zle -N _mark_expansion
|
||||||
|
bindkey "^g" _mark_expansion
|
||||||
|
|
@ -1,5 +1,10 @@
|
||||||
#compdef knife
|
#compdef knife
|
||||||
|
|
||||||
|
# You can override the path to knife.rb and your cookbooks by setting
|
||||||
|
# KNIFE_CONF_PATH=/path/to/my/.chef/knife.rb
|
||||||
|
# KNIFE_COOKBOOK_PATH=/path/to/my/chef/cookbooks
|
||||||
|
# Read around where these are used for more detail.
|
||||||
|
|
||||||
# These flags should be available everywhere according to man knife
|
# These flags should be available everywhere according to man knife
|
||||||
knife_general_flags=( --help --server-url --key --config --editor --format --log_level --logfile --no-editor --user --print-after --version --yes )
|
knife_general_flags=( --help --server-url --key --config --editor --format --log_level --logfile --no-editor --user --print-after --version --yes )
|
||||||
|
|
||||||
|
|
@ -26,7 +31,7 @@ _knife() {
|
||||||
|
|
||||||
case $state in
|
case $state in
|
||||||
knifecmd)
|
knifecmd)
|
||||||
compadd -Q "$@" bootstrap client configure cookbook "cookbook site" "data bag" exec environment index node recipe role search ssh status windows $cloudproviders
|
compadd -Q "$@" bootstrap client configure cookbook "cookbook site" "data bag" diff exec environment index node recipe role search ssh status upload windows $cloudproviders
|
||||||
;;
|
;;
|
||||||
knifesubcmd)
|
knifesubcmd)
|
||||||
case $words[2] in
|
case $words[2] in
|
||||||
|
|
@ -42,6 +47,9 @@ _knife() {
|
||||||
cookbook)
|
cookbook)
|
||||||
compadd -Q "$@" test list create download delete "metadata from" show "bulk delete" metadata upload
|
compadd -Q "$@" test list create download delete "metadata from" show "bulk delete" metadata upload
|
||||||
;;
|
;;
|
||||||
|
diff)
|
||||||
|
_arguments '*:file or directory:_files -g "*"'
|
||||||
|
;;
|
||||||
environment)
|
environment)
|
||||||
compadd -Q "$@" list create delete edit show "from file"
|
compadd -Q "$@" list create delete edit show "from file"
|
||||||
;;
|
;;
|
||||||
|
|
@ -54,6 +62,9 @@ _knife() {
|
||||||
role)
|
role)
|
||||||
compadd -Q "$@" "bulk delete" create delete edit "from file" list show
|
compadd -Q "$@" "bulk delete" create delete edit "from file" list show
|
||||||
;;
|
;;
|
||||||
|
upload)
|
||||||
|
_arguments '*:file or directory:_files -g "*"'
|
||||||
|
;;
|
||||||
windows)
|
windows)
|
||||||
compadd "$@" bootstrap
|
compadd "$@" bootstrap
|
||||||
;;
|
;;
|
||||||
|
|
@ -170,7 +181,13 @@ _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
|
# 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() {
|
_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=${KNIFE_CONF_PATH:-${HOME}/.chef/knife.rb}
|
||||||
|
if [ -f ./.chef/knife.rb ]; then
|
||||||
|
knife_rb="./.chef/knife.rb"
|
||||||
|
fi
|
||||||
|
local cookbook_path=${KNIFE_COOKBOOK_PATH:-$(grep cookbook_path $knife_rb | awk 'BEGIN {FS = "[" }; {print $2}' | sed 's/\,//g' | sed "s/'//g" | sed 's/\(.*\)]/\1/' )}
|
||||||
|
(for i in $cookbook_path; do ls $i; done)
|
||||||
}
|
}
|
||||||
|
|
||||||
# This function extracts the available cookbook versions on the chef server
|
# This function extracts the available cookbook versions on the chef server
|
||||||
|
|
|
||||||
18
plugins/knife_ssh/knife_ssh.plugin.zsh
Normal file
18
plugins/knife_ssh/knife_ssh.plugin.zsh
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
function knife_ssh() {
|
||||||
|
grep -q $1 ~/.knife_comp~ 2> /dev/null || rm -f ~/.knife_comp~;
|
||||||
|
ssh $(knife node show $1 | awk '/IP:/{print $2}')
|
||||||
|
}
|
||||||
|
|
||||||
|
_knife_ssh() {
|
||||||
|
if hash knife 2>/dev/null; then
|
||||||
|
if [[ ! -f ~/.knife_comp~ ]]; then
|
||||||
|
echo "\nGenerating ~/.knife_comp~..." >/dev/stderr
|
||||||
|
knife node list > ~/.knife_comp~
|
||||||
|
fi
|
||||||
|
compadd $(<~/.knife_comp~)
|
||||||
|
else
|
||||||
|
echo "Could not find knife" > /dev/stderr;
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
compdef _knife_ssh knife_ssh
|
||||||
25
plugins/last-working-dir/last-working-dir.plugin.zsh
Normal file
25
plugins/last-working-dir/last-working-dir.plugin.zsh
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
#!/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
|
||||||
|
mkdir -p "$ZSH/cache"
|
||||||
|
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
|
||||||
|
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
|
||||||
|
|
@ -5,15 +5,29 @@ function _lein_commands() {
|
||||||
case $state in
|
case $state in
|
||||||
subcommand)
|
subcommand)
|
||||||
subcommands=(
|
subcommands=(
|
||||||
|
"classpath:print the classpath of the current project"
|
||||||
"clean:remove compiled files and dependencies from project"
|
"clean:remove compiled files and dependencies from project"
|
||||||
"compile:ahead-of-time compile the project"
|
"compile:ahead-of-time compile the project"
|
||||||
|
"deploy:build jar and deploy to remote repository"
|
||||||
"deps:download and install all dependencies"
|
"deps:download and install all dependencies"
|
||||||
"help:display a list of tasks or help for a given task"
|
"help:display a list of tasks or help for a given task"
|
||||||
"install:install the project and its dependencies in your local repository"
|
"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"
|
"jar:create a jar file containing the compiled .class files"
|
||||||
|
"javac:compile java source files"
|
||||||
"new:create a new project skeleton"
|
"new:create a new project skeleton"
|
||||||
|
"plugin:manage user-level plugins"
|
||||||
"pom:write a pom.xml file to disk for maven interop"
|
"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 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"
|
"uberjar:Create a jar including the contents of each of deps"
|
||||||
"upgrade:upgrade leiningen to the latest stable release"
|
"upgrade:upgrade leiningen to the latest stable release"
|
||||||
"version:print leiningen's version"
|
"version:print leiningen's version"
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ alias wtf='dmesg'
|
||||||
alias onoz='cat /var/log/errors.log'
|
alias onoz='cat /var/log/errors.log'
|
||||||
alias rtfm='man'
|
alias rtfm='man'
|
||||||
|
|
||||||
|
alias :3='echo'
|
||||||
alias visible='echo'
|
alias visible='echo'
|
||||||
alias invisible='cat'
|
alias invisible='cat'
|
||||||
alias moar='more'
|
alias moar='more'
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,64 @@
|
||||||
|
|
||||||
# Mercurial
|
# Mercurial
|
||||||
alias hgc='hg commit'
|
alias hgc='hg commit'
|
||||||
alias hgb='hg branch'
|
alias hgb='hg branch'
|
||||||
alias hgba='hg branches'
|
alias hgba='hg branches'
|
||||||
|
alias hgbk='hg bookmarks'
|
||||||
alias hgco='hg checkout'
|
alias hgco='hg checkout'
|
||||||
alias hgd='hg diff'
|
alias hgd='hg diff'
|
||||||
alias hged='hg diffmerge'
|
alias hged='hg diffmerge'
|
||||||
# pull and update
|
# pull and update
|
||||||
|
alias hgi='hg incoming'
|
||||||
alias hgl='hg pull -u'
|
alias hgl='hg pull -u'
|
||||||
|
alias hglr='hg pull --rebase'
|
||||||
|
alias hgo='hg outgoing'
|
||||||
alias hgp='hg push'
|
alias hgp='hg push'
|
||||||
alias hgs='hg status'
|
alias hgs='hg status'
|
||||||
|
alias hgsl='log --limit 20 --template "{node|short} | {date|isodatesec} | {author|user}: {desc|strip|firstline}\n" '
|
||||||
# this is the 'git commit --amend' equivalent
|
# this is the 'git commit --amend' equivalent
|
||||||
alias hgca='hg qimport -r tip ; hg qrefresh -e ; hg qfinish tip'
|
alias hgca='hg qimport -r tip ; hg qrefresh -e ; hg qfinish tip'
|
||||||
|
|
||||||
|
function in_hg() {
|
||||||
|
if [[ -d .hg ]] || $(hg summary > /dev/null 2>&1); then
|
||||||
|
echo 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function hg_get_branch_name() {
|
||||||
|
if [ $(in_hg) ]; then
|
||||||
|
echo $(hg branch)
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function hg_prompt_info {
|
||||||
|
if [ $(in_hg) ]; then
|
||||||
|
_DISPLAY=$(hg_get_branch_name)
|
||||||
|
echo "$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_HG_PROMPT_PREFIX\
|
||||||
|
$ZSH_THEME_REPO_NAME_COLOR$_DISPLAY$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_HG_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR$(hg_dirty)$ZSH_PROMPT_BASE_COLOR"
|
||||||
|
unset _DISPLAY
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function hg_dirty_choose {
|
||||||
|
if [ $(in_hg) ]; then
|
||||||
|
hg 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 hg_dirty {
|
||||||
|
hg_dirty_choose $ZSH_THEME_HG_PROMPT_DIRTY $ZSH_THEME_HG_PROMPT_CLEAN
|
||||||
|
}
|
||||||
|
|
||||||
|
function hgic() {
|
||||||
|
hg incoming "$@" | grep "changeset" | wc -l
|
||||||
|
}
|
||||||
|
|
||||||
|
function hgoc() {
|
||||||
|
hg outgoing "$@" | grep "changeset" | wc -l
|
||||||
|
}
|
||||||
|
|
|
||||||
63
plugins/mix/_mix
Normal file
63
plugins/mix/_mix
Normal file
|
|
@ -0,0 +1,63 @@
|
||||||
|
#compdef mix
|
||||||
|
#autoload
|
||||||
|
|
||||||
|
# Elixir mix zsh completion
|
||||||
|
|
||||||
|
local -a _1st_arguments
|
||||||
|
_1st_arguments=(
|
||||||
|
'archive:Archive this project into a .ez file'
|
||||||
|
'clean:Clean generated application files'
|
||||||
|
'compile:Compile source files'
|
||||||
|
'deps:List dependencies and their status'
|
||||||
|
"deps.clean:Remove dependencies' files"
|
||||||
|
'deps.compile:Compile dependencies'
|
||||||
|
'deps.get:Get all out of date dependencies'
|
||||||
|
'deps.unlock:Unlock the given dependencies'
|
||||||
|
'deps.update:Update dependencies'
|
||||||
|
'do:Executes the commands separated by comma'
|
||||||
|
'escriptize:Generates an escript for the project'
|
||||||
|
'help:Print help information for tasks'
|
||||||
|
'local:List local tasks'
|
||||||
|
'local.install:Install a task or an archive locally'
|
||||||
|
'local.rebar:Install rebar locally'
|
||||||
|
'local.uninstall:Uninstall local tasks or archives'
|
||||||
|
'new:Creates a new Elixir project'
|
||||||
|
'run:Run the given file or expression'
|
||||||
|
"test:Run a project's tests"
|
||||||
|
'--help:Describe available tasks'
|
||||||
|
'--version:Prints the Elixir version information'
|
||||||
|
)
|
||||||
|
|
||||||
|
__task_list ()
|
||||||
|
{
|
||||||
|
local expl
|
||||||
|
declare -a tasks
|
||||||
|
|
||||||
|
tasks=(archive clean compile deps deps.clean deps.compile deps.get deps.unlock deps.update do escriptize help local local.install local.rebar local.uninstall new run test)
|
||||||
|
|
||||||
|
_wanted tasks expl 'help' compadd $tasks
|
||||||
|
}
|
||||||
|
|
||||||
|
local expl
|
||||||
|
|
||||||
|
local curcontext="$curcontext" state line
|
||||||
|
typeset -A opt_args
|
||||||
|
|
||||||
|
_arguments -C \
|
||||||
|
':command:->command' \
|
||||||
|
'*::options:->options'
|
||||||
|
|
||||||
|
case $state in
|
||||||
|
(command)
|
||||||
|
_describe -t commands "mix subcommand" _1st_arguments
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
|
||||||
|
(options)
|
||||||
|
case $line[1] in
|
||||||
|
(help)
|
||||||
|
_arguments ':feature:__task_list'
|
||||||
|
esac
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
2
plugins/mosh/mosh.plugin.zsh
Normal file
2
plugins/mosh/mosh.plugin.zsh
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
# Allow SSH tab completion for mosh hostnames
|
||||||
|
compdef mosh=ssh
|
||||||
|
|
@ -1,6 +1,172 @@
|
||||||
|
# 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. Before filtering set the locale to C, so invalid characters won't break some sed implementations
|
||||||
|
unset LANG
|
||||||
|
LC_CTYPE=C mvn $@ | sed -e "s/\(\[INFO\]\)\(.*\)/${TEXT_BLUE}${BOLD}\1${RESET_FORMATTING}\2/g" \
|
||||||
|
-e "s/\(\[INFO\]\ BUILD SUCCESSFUL\)/${BOLD}${TEXT_GREEN}\1${RESET_FORMATTING}/g" \
|
||||||
|
-e "s/\(\[WARNING\]\)\(.*\)/${BOLD}${TEXT_YELLOW}\1${RESET_FORMATTING}\2/g" \
|
||||||
|
-e "s/\(\[ERROR\]\)\(.*\)/${BOLD}${TEXT_RED}\1${RESET_FORMATTING}\2/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'
|
||||||
|
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 {
|
function listMavenCompletions {
|
||||||
reply=(
|
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`);
|
# 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:redeploy
|
||||||
|
# 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/test/java ] ; then find ./src/test/java -type f -name '*.java' | grep -v svn | sed 's?.*/\([^/]*\)\..*?-Dtest=\1?' ; fi`
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
compctl -K listMavenCompletions mvn
|
compctl -K listMavenCompletions mvn
|
||||||
|
|
@ -1,5 +1,13 @@
|
||||||
# Open the node api for your current version to the optional section.
|
# Open the node api for your current version to the optional section.
|
||||||
# TODO: Make the section part easier to use.
|
# TODO: Make the section part easier to use.
|
||||||
function node-docs {
|
function node-docs {
|
||||||
open "http://nodejs.org/docs/$(node --version)/api/all.html#$1"
|
# get the open command
|
||||||
|
local open_cmd
|
||||||
|
if [[ $(uname -s) == 'Darwin' ]]; then
|
||||||
|
open_cmd='open'
|
||||||
|
else
|
||||||
|
open_cmd='xdg-open'
|
||||||
|
fi
|
||||||
|
|
||||||
|
$open_cmd "http://nodejs.org/docs/$(node --version)/api/all.html#all_$1"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue