mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-02-20 03:02:29 +01:00
Merge branch 'master' of github.com:robbyrussell/oh-my-zsh
Conflicts: README.textile templates/zshrc.zsh-template tools/install.sh
This commit is contained in:
commit
981e6c1765
144 changed files with 4521 additions and 1330 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
|
@ -1,8 +1,8 @@
|
||||||
locals.zsh
|
locals.zsh
|
||||||
log/.zsh_history
|
log/.zsh_history
|
||||||
projects.zsh
|
projects.zsh
|
||||||
custom/*
|
custom
|
||||||
!custom/example
|
!custom/plugins/example
|
||||||
!custom/example.zsh
|
!custom/example.zsh
|
||||||
*.swp
|
*.swp
|
||||||
!custom/example.zshcache
|
!custom/example.zshcache
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
The MIT License
|
The MIT License
|
||||||
|
|
||||||
Copyright (c) 2009-2013 Robby Russell and contributors (see https://github.com/robbyrussell/oh-my-zsh/contributors)
|
Copyright (c) 2009-2014 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
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|
|
||||||
|
|
@ -7,27 +7,38 @@ bq. "OH MY ZSHELL!"
|
||||||
h2. Setup
|
h2. Setup
|
||||||
|
|
||||||
@oh-my-zsh@ should work with any recent release of "zsh":http://www.zsh.org/, the minimum recommended version is 4.3.9.
|
@oh-my-zsh@ should work with any recent release of "zsh":http://www.zsh.org/, the minimum recommended version is 4.3.9.
|
||||||
|
If not already, install zsh using the command line first.
|
||||||
|
|
||||||
h3. The automatic installer... (do you trust me?)
|
h3. The automatic installer... (do you trust me?)
|
||||||
|
|
||||||
You can install this via the command line with either `curl` or `wget`.
|
You can install this via the command line with either @curl@ or @wget@.
|
||||||
|
|
||||||
h4. via `curl`
|
h4. via @curl@
|
||||||
|
|
||||||
@curl -L https://raw.githubusercontent.com/Spencevail/oh-my-zsh/master/tools/install.sh | sh@
|
@curl -L https://raw.githubusercontent.com/Spencevail/oh-my-zsh/master/tools/install.sh | sh@
|
||||||
|
|
||||||
h4. via `wget`
|
h4. via @wget@
|
||||||
|
|
||||||
@wget --no-check-certificate https://raw.githubusercontent.com/Spencevail/oh-my-zsh/master/tools/install.sh -O - | sh@
|
@wget --no-check-certificate https://raw.githubusercontent.com/Spencevail/oh-my-zsh/master/tools/install.sh -O - | sh@
|
||||||
|
|
||||||
h3. The manual way
|
h4. Optional: change the install directory
|
||||||
|
|
||||||
|
The default location is @~/.oh-my-zsh@ (hidden in your home directory).
|
||||||
|
|
||||||
|
You can change the install directory with the ZSH environment variable, either
|
||||||
|
by running @export ZSH=/your/path@ before installing, or setting it before the
|
||||||
|
end of the install pipeline like this:
|
||||||
|
|
||||||
|
@curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | ZSH=~/.dotfiles/zsh sh@
|
||||||
|
|
||||||
|
|
||||||
|
h3. The manual way
|
||||||
|
|
||||||
1. Clone the repository
|
1. Clone the repository
|
||||||
|
|
||||||
@git clone git://github.com/Spencevail/oh-my-zsh.git ~/.oh-my-zsh@
|
@git clone git://github.com/Spencevail/oh-my-zsh.git ~/.oh-my-zsh@
|
||||||
|
|
||||||
2. *OPTIONAL* Backup your existing ~/.zshrc file
|
2. *OPTIONAL* Backup your existing @~/.zshrc@ file
|
||||||
|
|
||||||
@cp ~/.zshrc ~/.zshrc.orig@
|
@cp ~/.zshrc ~/.zshrc.orig@
|
||||||
|
|
||||||
|
|
@ -35,7 +46,6 @@ h3. The manual way
|
||||||
|
|
||||||
@cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc@
|
@cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc@
|
||||||
|
|
||||||
|
|
||||||
4. Set zsh as your default shell:
|
4. Set zsh as your default shell:
|
||||||
|
|
||||||
@chsh -s /bin/zsh@
|
@chsh -s /bin/zsh@
|
||||||
|
|
@ -44,11 +54,13 @@ h3. The manual way
|
||||||
|
|
||||||
h3. Problems?
|
h3. Problems?
|
||||||
|
|
||||||
You _might_ need to modify your PATH in ~/.zshrc if you're not able to find some commands after switching to _Oh My Zsh_.
|
You _might_ need to modify your @PATH@ in @~/.zshrc@ if you're not able to find some commands after switching to _Oh My Zsh_.
|
||||||
|
|
||||||
|
If you installed manually or changed the install location, check ZSH in @~/.zshrc@
|
||||||
|
|
||||||
h2. Usage
|
h2. Usage
|
||||||
|
|
||||||
* enable the plugins you want in your @~/.zshrc@ (take a look at @plugins/@ to see what's possible)
|
* enable the plugins you want in your @~/.zshrc@ (take a look at the @plugins/@ directory and the "wiki":https://github.com/robbyrussell/oh-my-zsh/wiki/Plugins to see what's possible)
|
||||||
** example: @plugins=(git osx ruby)@
|
** example: @plugins=(git osx ruby)@
|
||||||
* Theme support: Change the @ZSH_THEME@ environment variable in @~/.zshrc@.
|
* Theme support: Change the @ZSH_THEME@ environment variable in @~/.zshrc@.
|
||||||
** Take a look at the "current themes":https://wiki.github.com/robbyrussell/oh-my-zsh/themes that come bundled with _Oh My Zsh_.
|
** Take a look at the "current themes":https://wiki.github.com/robbyrussell/oh-my-zsh/themes that come bundled with _Oh My Zsh_.
|
||||||
|
|
@ -61,16 +73,16 @@ the "refcard":http://www.bash2zsh.com/zsh_refcard/refcard.pdf is pretty tasty fo
|
||||||
h3. Customization
|
h3. Customization
|
||||||
|
|
||||||
If you want to override any of the default behavior, just add a new file (ending in @.zsh@) into the @custom/@ directory.
|
If you want to override any of the default behavior, just add a new file (ending in @.zsh@) into the @custom/@ directory.
|
||||||
If you have many functions which go 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
|
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
|
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@
|
@DISABLE_UPDATE_PROMPT=true@
|
||||||
|
|
||||||
To disable updates entirely, put this in your ~/.zshrc
|
To disable updates entirely, put this in your @~/.zshrc@
|
||||||
|
|
||||||
@DISABLE_AUTO_UPDATE=true@
|
@DISABLE_AUTO_UPDATE=true@
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -27,9 +27,9 @@ else
|
||||||
fi
|
fi
|
||||||
# List direcory contents
|
# List direcory contents
|
||||||
alias lsa='ls -lah'
|
alias lsa='ls -lah'
|
||||||
alias l='ls -la'
|
alias l='ls -lah'
|
||||||
alias ll='ls -l'
|
alias ll='ls -lh'
|
||||||
alias la='ls -lA'
|
alias la='ls -lAh'
|
||||||
alias sl=ls # often screw this up
|
alias sl=ls # often screw this up
|
||||||
|
|
||||||
alias afind='ack-grep -il'
|
alias afind='ack-grep -il'
|
||||||
|
|
|
||||||
|
|
@ -31,35 +31,20 @@ zstyle ':completion:*:*:*:*:processes' command "ps -u `whoami` -o pid,user,comm
|
||||||
zstyle ':completion:*:cd:*' tag-order local-directories directory-stack path-directories
|
zstyle ':completion:*:cd:*' tag-order local-directories directory-stack path-directories
|
||||||
cdpath=(.)
|
cdpath=(.)
|
||||||
|
|
||||||
# use /etc/hosts and known_hosts for hostname completion
|
|
||||||
[ -r /etc/ssh/ssh_known_hosts ] && _global_ssh_hosts=(${${${${(f)"$(</etc/ssh/ssh_known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _global_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=()
|
|
||||||
hosts=(
|
|
||||||
"$_ssh_config[@]"
|
|
||||||
"$_global_ssh_hosts[@]"
|
|
||||||
"$_ssh_hosts[@]"
|
|
||||||
"$_etc_hosts[@]"
|
|
||||||
"$HOST"
|
|
||||||
localhost
|
|
||||||
)
|
|
||||||
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
|
||||||
zstyle ':completion::complete:*' cache-path $ZSH/cache/
|
zstyle ':completion::complete:*' cache-path $ZSH/cache/
|
||||||
|
|
||||||
# Don't complete uninteresting users
|
# Don't complete uninteresting users
|
||||||
zstyle ':completion:*:*:*:users' ignored-patterns \
|
zstyle ':completion:*:*:*:users' ignored-patterns \
|
||||||
adm amanda apache avahi beaglidx bin cacti canna clamav daemon \
|
adm amanda apache at avahi avahi-autoipd beaglidx bin cacti canna \
|
||||||
dbus distcache dovecot fax ftp games gdm gkrellmd gopher \
|
clamav daemon dbus distcache dnsmasq dovecot fax ftp games gdm \
|
||||||
hacluster haldaemon halt hsqldb ident junkbust ldap lp mail \
|
gkrellmd gopher hacluster haldaemon halt hsqldb ident junkbust kdm \
|
||||||
mailman mailnull mldonkey mysql nagios \
|
ldap lp mail mailman mailnull man messagebus mldonkey mysql nagios \
|
||||||
named netdump news nfsnobody nobody nscd ntp nut nx openvpn \
|
named netdump news nfsnobody nobody nscd ntp nut nx obsrun openvpn \
|
||||||
operator pcap postfix postgres privoxy pulse pvm quagga radvd \
|
operator pcap polkitd postfix postgres privoxy pulse pvm quagga radvd \
|
||||||
rpc rpcuser rpm shutdown squid sshd sync uucp vcsa xfs
|
rpc rpcuser rpm rtkit scard shutdown squid sshd statd svn sync tftp \
|
||||||
|
usbmux uucp vcsa wwwrun xfs '_*'
|
||||||
|
|
||||||
# ... unless we really want to.
|
# ... unless we really want to.
|
||||||
zstyle '*' single-ignored show
|
zstyle '*' single-ignored show
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
alias man='nocorrect man'
|
|
||||||
alias mv='nocorrect mv'
|
|
||||||
alias mysql='nocorrect mysql'
|
|
||||||
alias mkdir='nocorrect mkdir'
|
|
||||||
alias gist='nocorrect gist'
|
|
||||||
alias heroku='nocorrect heroku'
|
|
||||||
alias ebuild='nocorrect ebuild'
|
|
||||||
alias hpodder='nocorrect hpodder'
|
|
||||||
alias sudo='nocorrect sudo'
|
|
||||||
|
|
||||||
if [[ "$ENABLE_CORRECTION" == "true" ]]; then
|
if [[ "$ENABLE_CORRECTION" == "true" ]]; then
|
||||||
|
alias ebuild='nocorrect ebuild'
|
||||||
|
alias gist='nocorrect gist'
|
||||||
|
alias heroku='nocorrect heroku'
|
||||||
|
alias hpodder='nocorrect hpodder'
|
||||||
|
alias man='nocorrect man'
|
||||||
|
alias mkdir='nocorrect mkdir'
|
||||||
|
alias mv='nocorrect mv'
|
||||||
|
alias mysql='nocorrect mysql'
|
||||||
|
alias sudo='nocorrect sudo'
|
||||||
|
|
||||||
setopt correct_all
|
setopt correct_all
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
function zsh_stats() {
|
function zsh_stats() {
|
||||||
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
|
fc -l 1 | 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() {
|
||||||
|
|
|
||||||
14
lib/git.zsh
14
lib/git.zsh
|
|
@ -1,8 +1,8 @@
|
||||||
# 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() {
|
||||||
if [[ "$(git config --get oh-my-zsh.hide-status)" != "1" ]]; then
|
if [[ "$(command git config --get oh-my-zsh.hide-status 2>/dev/null)" != "1" ]]; then
|
||||||
ref=$(command git symbolic-ref HEAD 2> /dev/null) || \
|
ref=$(command git symbolic-ref HEAD 2> /dev/null) || \
|
||||||
ref=$(command git rev-parse --short HEAD 2> /dev/null) || return
|
ref=$(command git rev-parse --short HEAD 2> /dev/null) || return 0
|
||||||
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
|
fi
|
||||||
}
|
}
|
||||||
|
|
@ -54,11 +54,19 @@ git_remote_status() {
|
||||||
|
|
||||||
# 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 "$(command git log origin/$(current_branch)..HEAD 2> /dev/null)" | grep '^commit' &> /dev/null); then
|
if $(echo "$(command git log @{upstream}..HEAD 2> /dev/null)" | grep '^commit' &> /dev/null); then
|
||||||
echo "$ZSH_THEME_GIT_PROMPT_AHEAD"
|
echo "$ZSH_THEME_GIT_PROMPT_AHEAD"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Gets the number of commits ahead from remote
|
||||||
|
function git_commits_ahead() {
|
||||||
|
if $(echo "$(command git log @{upstream}..HEAD 2> /dev/null)" | grep '^commit' &> /dev/null); then
|
||||||
|
COMMITS=$(command git log @{upstream}..HEAD | grep '^commit' | wc -l | tr -d ' ')
|
||||||
|
echo "$ZSH_THEME_GIT_COMMITS_AHEAD_PREFIX$COMMITS$ZSH_THEME_GIT_COMMITS_AHEAD_SUFFIX"
|
||||||
|
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=$(command 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"
|
||||||
|
|
|
||||||
22
lib/grep.zsh
22
lib/grep.zsh
|
|
@ -2,5 +2,23 @@
|
||||||
# Color grep results
|
# Color grep results
|
||||||
# Examples: http://rubyurl.com/ZXv
|
# Examples: http://rubyurl.com/ZXv
|
||||||
#
|
#
|
||||||
export GREP_OPTIONS='--color=auto'
|
|
||||||
export GREP_COLOR='1;32'
|
GREP_OPTIONS="--color=auto"
|
||||||
|
|
||||||
|
# avoid VCS folders (if the necessary grep flags are available)
|
||||||
|
grep-flag-available() {
|
||||||
|
echo | grep $1 "" >/dev/null 2>&1
|
||||||
|
}
|
||||||
|
if grep-flag-available --exclude-dir=.cvs; then
|
||||||
|
for PATTERN in .cvs .git .hg .svn; do
|
||||||
|
GREP_OPTIONS+=" --exclude-dir=$PATTERN"
|
||||||
|
done
|
||||||
|
elif grep-flag-available --exclude=.cvs; then
|
||||||
|
for PATTERN in .cvs .git .hg .svn; do
|
||||||
|
GREP_OPTIONS+=" --exclude=$PATTERN"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
unfunction grep-flag-available
|
||||||
|
|
||||||
|
export GREP_OPTIONS="$GREP_OPTIONS"
|
||||||
|
export GREP_COLOR='1;32'
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@ fi
|
||||||
HISTSIZE=10000
|
HISTSIZE=10000
|
||||||
SAVEHIST=10000
|
SAVEHIST=10000
|
||||||
|
|
||||||
setopt append_history
|
|
||||||
setopt extended_history
|
setopt extended_history
|
||||||
setopt hist_expire_dups_first
|
setopt hist_expire_dups_first
|
||||||
setopt hist_ignore_dups # ignore duplication command history list
|
setopt hist_ignore_dups # ignore duplication command history list
|
||||||
|
|
|
||||||
|
|
@ -1,34 +1,63 @@
|
||||||
# TODO: Explain what some of this does..
|
# http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html
|
||||||
|
# http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Zle-Builtins
|
||||||
|
# http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html#Standard-Widgets
|
||||||
|
|
||||||
bindkey -e
|
# Make sure that the terminal is in application mode when zle is active, since
|
||||||
bindkey '\ew' kill-region
|
# only then values from $terminfo are valid
|
||||||
bindkey -s '\el' "ls\n"
|
if (( ${+terminfo[smkx]} )) && (( ${+terminfo[rmkx]} )); then
|
||||||
bindkey '^r' history-incremental-search-backward
|
function zle-line-init() {
|
||||||
bindkey "^[[5~" up-line-or-history
|
echoti smkx
|
||||||
bindkey "^[[6~" down-line-or-history
|
}
|
||||||
|
function zle-line-finish() {
|
||||||
|
echoti rmkx
|
||||||
|
}
|
||||||
|
zle -N zle-line-init
|
||||||
|
zle -N zle-line-finish
|
||||||
|
fi
|
||||||
|
|
||||||
# make search up and down work, so partially type and hit up/down to find relevant stuff
|
bindkey -e # Use emacs key bindings
|
||||||
bindkey '^[[A' up-line-or-search
|
|
||||||
bindkey '^[[B' down-line-or-search
|
|
||||||
|
|
||||||
bindkey "^[[H" beginning-of-line
|
bindkey '\ew' kill-region # [Esc-w] - Kill from the cursor to the mark
|
||||||
bindkey "^[[1~" beginning-of-line
|
bindkey -s '\el' 'ls\n' # [Esc-l] - run command: ls
|
||||||
bindkey "^[OH" beginning-of-line
|
bindkey '^r' history-incremental-search-backward # [Ctrl-r] - Search backward incrementally for a specified string. The string may begin with ^ to anchor the search to the beginning of the line.
|
||||||
bindkey "^[[F" end-of-line
|
if [[ "${terminfo[kpp]}" != "" ]]; then
|
||||||
bindkey "^[[4~" end-of-line
|
bindkey "${terminfo[kpp]}" up-line-or-history # [PageUp] - Up a line of history
|
||||||
bindkey "^[OF" end-of-line
|
fi
|
||||||
bindkey ' ' magic-space # also do history expansion on space
|
if [[ "${terminfo[knp]}" != "" ]]; then
|
||||||
|
bindkey "${terminfo[knp]}" down-line-or-history # [PageDown] - Down a line of history
|
||||||
|
fi
|
||||||
|
|
||||||
bindkey "^[[1;5C" forward-word
|
if [[ "${terminfo[kcuu1]}" != "" ]]; then
|
||||||
bindkey "^[[1;5D" backward-word
|
bindkey "${terminfo[kcuu1]}" up-line-or-search # start typing + [Up-Arrow] - fuzzy find history forward
|
||||||
|
fi
|
||||||
|
if [[ "${terminfo[kcud1]}" != "" ]]; then
|
||||||
|
bindkey "${terminfo[kcud1]}" down-line-or-search # start typing + [Down-Arrow] - fuzzy find history backward
|
||||||
|
fi
|
||||||
|
|
||||||
bindkey '^[[Z' reverse-menu-complete
|
if [[ "${terminfo[khome]}" != "" ]]; then
|
||||||
|
bindkey "${terminfo[khome]}" beginning-of-line # [Home] - Go to beginning of line
|
||||||
|
fi
|
||||||
|
if [[ "${terminfo[kend]}" != "" ]]; then
|
||||||
|
bindkey "${terminfo[kend]}" end-of-line # [End] - Go to end of line
|
||||||
|
fi
|
||||||
|
|
||||||
# Make the delete key (or Fn + Delete on the Mac) work instead of outputting a ~
|
bindkey ' ' magic-space # [Space] - do history expansion
|
||||||
bindkey '^?' backward-delete-char
|
|
||||||
bindkey "^[[3~" delete-char
|
bindkey '^[[1;5C' forward-word # [Ctrl-RightArrow] - move forward one word
|
||||||
bindkey "^[3;5~" delete-char
|
bindkey '^[[1;5D' backward-word # [Ctrl-LeftArrow] - move backward one word
|
||||||
bindkey "\e[3~" delete-char
|
|
||||||
|
if [[ "${terminfo[kcbt]}" != "" ]]; then
|
||||||
|
bindkey "${terminfo[kcbt]}" reverse-menu-complete # [Shift-Tab] - move through the completion menu backwards
|
||||||
|
fi
|
||||||
|
|
||||||
|
bindkey '^?' backward-delete-char # [Backspace] - delete backward
|
||||||
|
if [[ "${terminfo[kdch1]}" != "" ]]; then
|
||||||
|
bindkey "${terminfo[kdch1]}" delete-char # [Delete] - delete forward
|
||||||
|
else
|
||||||
|
bindkey "^[[3~" delete-char
|
||||||
|
bindkey "^[3;5~" delete-char
|
||||||
|
bindkey "\e[3~" delete-char
|
||||||
|
fi
|
||||||
|
|
||||||
# Edit the current command line in $EDITOR
|
# Edit the current command line in $EDITOR
|
||||||
autoload -U edit-command-line
|
autoload -U edit-command-line
|
||||||
|
|
|
||||||
33
lib/prompt_info_functions.zsh
Normal file
33
lib/prompt_info_functions.zsh
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
# *_prompt_info functions for usage in your prompt
|
||||||
|
#
|
||||||
|
# Plugin creators, please add your *_prompt_info function to the list
|
||||||
|
# of dummy implementations to help theme creators not receiving errors
|
||||||
|
# without the need of implementing conditional clauses.
|
||||||
|
#
|
||||||
|
# See also lib/bzr.zsh, lib/git.zsh and lib/nvm.zsh for
|
||||||
|
# git_prompt_info, bzr_prompt_info and nvm_prompt_info
|
||||||
|
|
||||||
|
# Dummy implementations that return false to prevent command_not_found
|
||||||
|
# errors with themes, that implement these functions
|
||||||
|
# Real implementations will be used when the respective plugins are loaded
|
||||||
|
function chruby_prompt_info hg_prompt_info pyenv_prompt_info \
|
||||||
|
rbenv_prompt_info svn_prompt_info vi_mode_prompt_info \
|
||||||
|
virtualenv_prompt_info {
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
|
||||||
|
# oh-my-zsh supports an rvm prompt by default
|
||||||
|
# get the name of the rvm ruby version
|
||||||
|
function rvm_prompt_info() {
|
||||||
|
[ -f $HOME/.rvm/bin/rvm-prompt ] || return 1
|
||||||
|
local rvm_prompt
|
||||||
|
rvm_prompt=$($HOME/.rvm/bin/rvm-prompt ${=ZSH_THEME_RVM_PROMPT_OPTIONS} 2>/dev/null)
|
||||||
|
[[ "${rvm_prompt}x" == "x" ]] && return 1
|
||||||
|
echo "${ZSH_THEME_RVM_PROMPT_PREFIX:=(}${rvm_prompt}${ZSH_THEME_RVM_PROMPT_SUFFIX:=)}"
|
||||||
|
}
|
||||||
|
|
||||||
|
# use this to enable users to see their ruby version, no matter which
|
||||||
|
# version management system they use
|
||||||
|
function ruby_prompt_info() {
|
||||||
|
echo $(rvm_prompt_info || rbenv_prompt_info || chruby_prompt_info)
|
||||||
|
}
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
# using the rbenv plugin will override this with a real implementation
|
|
||||||
function rbenv_prompt_info() {}
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
# get the name of the ruby version
|
|
||||||
function rvm_prompt_info() {
|
|
||||||
[ -f $HOME/.rvm/bin/rvm-prompt ] || return
|
|
||||||
local rvm_prompt
|
|
||||||
rvm_prompt=$($HOME/.rvm/bin/rvm-prompt ${ZSH_THEME_RVM_PROMPT_OPTIONS} 2>/dev/null)
|
|
||||||
[[ "${rvm_prompt}x" == "x" ]] && return
|
|
||||||
echo "${ZSH_THEME_RVM_PROMPT_PREFIX:=(}${rvm_prompt}${ZSH_THEME_RVM_PROMPT_SUFFIX:=)}"
|
|
||||||
}
|
|
||||||
|
|
@ -19,17 +19,19 @@ for color in {000..255}; do
|
||||||
BG[$color]="%{[48;5;${color}m%}"
|
BG[$color]="%{[48;5;${color}m%}"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
|
ZSH_SPECTRUM_TEXT=${ZSH_SPECTRUM_TEXT:-Arma virumque cano Troiae qui primus ab oris}
|
||||||
|
|
||||||
# Show all 256 colors with color number
|
# Show all 256 colors with color number
|
||||||
function spectrum_ls() {
|
function spectrum_ls() {
|
||||||
for code in {000..255}; do
|
for code in {000..255}; do
|
||||||
print -P -- "$code: %F{$code}Test%f"
|
print -P -- "$code: %F{$code}$ZSH_SPECTRUM_TEXT%f"
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
# Show all 256 colors where the background is set to specific color
|
# Show all 256 colors where the background is set to specific color
|
||||||
function spectrum_bls() {
|
function spectrum_bls() {
|
||||||
for code in {000..255}; do
|
for code in {000..255}; do
|
||||||
((cc = code + 1))
|
print -P -- "$BG[$code]$code: $ZSH_SPECTRUM_TEXT %{$reset_color%}"
|
||||||
print -P -- "$BG[$code]$code: Test %{$reset_color%}"
|
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,10 +26,12 @@ 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|rake|-*)]} #cmd name only, or if this is sudo or ssh, the next cmd
|
|
||||||
local LINE="${2:gs/$/\\$}"
|
# cmd name only, or if this is sudo or ssh, the next cmd
|
||||||
LINE="${LINE:gs/%/%%}"
|
local CMD=${1[(wr)^(*=*|sudo|ssh|rake|-*)]:gs/%/%%}
|
||||||
title "$CMD" "%100>...>$LINE%<<"
|
local LINE="${2:gs/%/%%}"
|
||||||
|
|
||||||
|
title '$CMD' '%100>...>$LINE%<<'
|
||||||
}
|
}
|
||||||
|
|
||||||
autoload -U add-zsh-hook
|
autoload -U add-zsh-hook
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,9 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Save the location of the current completion dump file.
|
# Save the location of the current completion dump file.
|
||||||
ZSH_COMPDUMP="${ZDOTDIR:-${HOME}}/.zcompdump-${SHORT_HOST}-${ZSH_VERSION}"
|
if [ -z "$ZSH_COMPDUMP" ]; then
|
||||||
|
ZSH_COMPDUMP="${ZDOTDIR:-${HOME}}/.zcompdump-${SHORT_HOST}-${ZSH_VERSION}"
|
||||||
|
fi
|
||||||
|
|
||||||
# Load and run compinit
|
# Load and run compinit
|
||||||
autoload -U compinit
|
autoload -U compinit
|
||||||
|
|
|
||||||
14
plugins/atom/atom.plugin.zsh
Normal file
14
plugins/atom/atom.plugin.zsh
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
local _atom_paths > /dev/null 2>&1
|
||||||
|
_atom_paths=(
|
||||||
|
"$HOME/Applications/Atom.app"
|
||||||
|
"/Applications/Atom.app"
|
||||||
|
)
|
||||||
|
|
||||||
|
for _atom_path in $_atom_paths; do
|
||||||
|
if [[ -a $_atom_path ]]; then
|
||||||
|
alias at="open -a '$_atom_path'"
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
alias att='at .'
|
||||||
|
|
@ -1,5 +1,7 @@
|
||||||
if [ $commands[autojump] ]; then # check if autojump is installed
|
if [ $commands[autojump] ]; then # check if autojump is installed
|
||||||
if [ -f /usr/share/autojump/autojump.zsh ]; then # debian and ubuntu package
|
if [ -f $HOME/.autojump/etc/profile.d/autojump.zsh ]; then # manual user-local installation
|
||||||
|
. $HOME/.autojump/etc/profile.d/autojump.zsh
|
||||||
|
elif [ -f /usr/share/autojump/autojump.zsh ]; then # debian and ubuntu package
|
||||||
. /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
|
||||||
|
|
@ -7,8 +9,6 @@ if [ $commands[autojump] ]; then # check if autojump is installed
|
||||||
. /etc/profile.d/autojump.sh
|
. /etc/profile.d/autojump.sh
|
||||||
elif [ -f /usr/local/share/autojump/autojump.zsh ]; then # freebsd installation
|
elif [ -f /usr/local/share/autojump/autojump.zsh ]; then # freebsd installation
|
||||||
. /usr/local/share/autojump/autojump.zsh
|
. /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.zsh ]; then # mac os x with brew
|
elif [ $commands[brew] -a -f `brew --prefix`/etc/autojump.zsh ]; then # mac os x with brew
|
||||||
|
|
|
||||||
17
plugins/aws/aws.plugin.zsh
Normal file
17
plugins/aws/aws.plugin.zsh
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
export AWS_HOME=~/.aws
|
||||||
|
|
||||||
|
function agp {
|
||||||
|
echo $AWS_DEFAULT_PROFILE
|
||||||
|
|
||||||
|
}
|
||||||
|
function asp {
|
||||||
|
export AWS_DEFAULT_PROFILE=$1
|
||||||
|
export RPROMPT="<aws:$AWS_DEFAULT_PROFILE>"
|
||||||
|
|
||||||
|
}
|
||||||
|
function aws_profiles {
|
||||||
|
reply=($(grep profile $AWS_HOME/config|sed -e 's/.*profile \([a-zA-Z0-9_-]*\).*/\1/'))
|
||||||
|
}
|
||||||
|
|
||||||
|
compctl -K aws_profiles asp
|
||||||
|
source `which aws_zsh_completer.sh`
|
||||||
|
|
@ -17,20 +17,28 @@ if [[ $(uname) == "Darwin" ]] ; then
|
||||||
integer i=$(((currentcapacity/maxcapacity) * 100))
|
integer i=$(((currentcapacity/maxcapacity) * 100))
|
||||||
echo $i
|
echo $i
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function plugged_in() {
|
||||||
|
[ $(ioreg -rc AppleSmartBattery | grep -c '^.*"ExternalConnected"\ =\ Yes') -eq 1 ]
|
||||||
|
}
|
||||||
|
|
||||||
function battery_pct_remaining() {
|
function battery_pct_remaining() {
|
||||||
if [[ $(ioreg -rc AppleSmartBattery | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]] ; then
|
if plugged_in ; then
|
||||||
battery_pct
|
|
||||||
else
|
|
||||||
echo "External Power"
|
echo "External Power"
|
||||||
|
else
|
||||||
|
battery_pct
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function battery_time_remaining() {
|
function battery_time_remaining() {
|
||||||
local smart_battery_status="$(ioreg -rc "AppleSmartBattery")"
|
local smart_battery_status="$(ioreg -rc "AppleSmartBattery")"
|
||||||
if [[ $(echo $smart_battery_status | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]] ; then
|
if [[ $(echo $smart_battery_status | grep -c '^.*"ExternalConnected"\ =\ No') -eq 1 ]] ; then
|
||||||
timeremaining=$(echo $smart_battery_status | grep '^.*"AvgTimeToEmpty"\ =\ ' | sed -e 's/^.*"AvgTimeToEmpty"\ =\ //')
|
timeremaining=$(echo $smart_battery_status | grep '^.*"AvgTimeToEmpty"\ =\ ' | sed -e 's/^.*"AvgTimeToEmpty"\ =\ //')
|
||||||
echo "~$((timeremaining / 60)):$((timeremaining % 60))"
|
if [ $timeremaining -gt 720 ] ; then
|
||||||
|
echo "::"
|
||||||
|
else
|
||||||
|
echo "~$((timeremaining / 60)):$((timeremaining % 60))"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
echo "∞"
|
echo "∞"
|
||||||
fi
|
fi
|
||||||
|
|
@ -51,16 +59,28 @@ if [[ $(uname) == "Darwin" ]] ; then
|
||||||
echo "∞"
|
echo "∞"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function battery_is_charging() {
|
function battery_is_charging() {
|
||||||
[[ $(ioreg -rc "AppleSmartBattery"| grep '^.*"IsCharging"\ =\ ' | sed -e 's/^.*"IsCharging"\ =\ //') == "Yes" ]]
|
[[ $(ioreg -rc "AppleSmartBattery"| grep '^.*"IsCharging"\ =\ ' | sed -e 's/^.*"IsCharging"\ =\ //') == "Yes" ]]
|
||||||
}
|
}
|
||||||
|
|
||||||
elif [[ $(uname) == "Linux" ]] ; then
|
elif [[ $(uname) == "Linux" ]] ; then
|
||||||
|
|
||||||
|
function battery_is_charging() {
|
||||||
|
! [[ $(acpi 2&>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]]
|
||||||
|
}
|
||||||
|
|
||||||
|
function battery_pct() {
|
||||||
|
if (( $+commands[acpi] )) ; then
|
||||||
|
echo "$(acpi | cut -f2 -d ',' | tr -cd '[:digit:]')"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
function battery_pct_remaining() {
|
function battery_pct_remaining() {
|
||||||
if [[ $(acpi 2&>/dev/null | grep -c '^Battery.*Discharging') -gt 0 ]] ; then
|
if [ ! $(battery_is_charging) ] ; then
|
||||||
echo "$(acpi | cut -f2 -d ',' | tr -cd '[:digit:]')"
|
battery_pct
|
||||||
|
else
|
||||||
|
echo "External Power"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -85,15 +105,6 @@ elif [[ $(uname) == "Linux" ]] ; then
|
||||||
echo "∞"
|
echo "∞"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function battery_pct() {
|
|
||||||
# todo for on linux
|
|
||||||
}
|
|
||||||
|
|
||||||
function battery_is_charging() {
|
|
||||||
# todo on linux
|
|
||||||
false
|
|
||||||
}
|
|
||||||
|
|
||||||
else
|
else
|
||||||
# Empty functions so we don't cause errors in prompts
|
# Empty functions so we don't cause errors in prompts
|
||||||
|
|
@ -127,7 +138,7 @@ function battery_level_gauge() {
|
||||||
if [[ $battery_remaining_percentage =~ [0-9]+ ]]; then
|
if [[ $battery_remaining_percentage =~ [0-9]+ ]]; then
|
||||||
local filled=$(((( $battery_remaining_percentage + $gauge_slots - 1) / $gauge_slots)));
|
local filled=$(((( $battery_remaining_percentage + $gauge_slots - 1) / $gauge_slots)));
|
||||||
local empty=$(($gauge_slots - $filled));
|
local empty=$(($gauge_slots - $filled));
|
||||||
|
|
||||||
if [[ $filled -gt $green_threshold ]]; then local gauge_color=$color_green;
|
if [[ $filled -gt $green_threshold ]]; then local gauge_color=$color_green;
|
||||||
elif [[ $filled -gt $yellow_threshold ]]; then local gauge_color=$color_yellow;
|
elif [[ $filled -gt $yellow_threshold ]]; then local gauge_color=$color_yellow;
|
||||||
else local gauge_color=$color_red;
|
else local gauge_color=$color_red;
|
||||||
|
|
@ -135,10 +146,9 @@ function battery_level_gauge() {
|
||||||
else
|
else
|
||||||
local filled=$gauge_slots;
|
local filled=$gauge_slots;
|
||||||
local empty=0;
|
local empty=0;
|
||||||
filled_symbol=${BATTERY_UNKNOWN_SYMBOL:-'.'};
|
filled_symbol=${BATTERY_UNKNOWN_SYMBOL:-'.'};
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
local charging=' ' && battery_is_charging && charging=$charging_symbol;
|
local charging=' ' && battery_is_charging && charging=$charging_symbol;
|
||||||
|
|
||||||
printf ${charging_color//\%/\%\%}$charging${color_reset//\%/\%\%}${battery_prefix//\%/\%\%}${gauge_color//\%/\%\%}
|
printf ${charging_color//\%/\%\%}$charging${color_reset//\%/\%\%}${battery_prefix//\%/\%\%}${gauge_color//\%/\%\%}
|
||||||
|
|
|
||||||
0
plugins/bower/_bower
Executable file → Normal file
0
plugins/bower/_bower
Executable file → Normal file
84
plugins/brew-cask/brew-cask.plugin.zsh
Normal file
84
plugins/brew-cask/brew-cask.plugin.zsh
Normal file
|
|
@ -0,0 +1,84 @@
|
||||||
|
# Autocompletion for homebrew-cask.
|
||||||
|
#
|
||||||
|
# This script intercepts calls to the brew plugin and adds autocompletion
|
||||||
|
# for the cask subcommand.
|
||||||
|
#
|
||||||
|
# Author: https://github.com/pstadler
|
||||||
|
|
||||||
|
compdef _brew-cask brew
|
||||||
|
|
||||||
|
_brew-cask()
|
||||||
|
{
|
||||||
|
local curcontext="$curcontext" state line
|
||||||
|
typeset -A opt_args
|
||||||
|
|
||||||
|
_arguments -C \
|
||||||
|
':command:->command' \
|
||||||
|
':subcmd:->subcmd' \
|
||||||
|
'*::options:->options'
|
||||||
|
|
||||||
|
case $state in
|
||||||
|
(command)
|
||||||
|
__call_original_brew
|
||||||
|
cask_commands=(
|
||||||
|
'cask:manage casks'
|
||||||
|
)
|
||||||
|
_describe -t commands 'brew cask command' cask_commands ;;
|
||||||
|
|
||||||
|
(subcmd)
|
||||||
|
case "$line[1]" in
|
||||||
|
cask)
|
||||||
|
if (( CURRENT == 3 )); then
|
||||||
|
local -a subcommands
|
||||||
|
subcommands=(
|
||||||
|
"alfred:used to modify Alfred's scope to include the Caskroom"
|
||||||
|
'audit:verifies installability of casks'
|
||||||
|
'checklinks:checks for bad cask links'
|
||||||
|
'cleanup:cleans up cached downloads'
|
||||||
|
'create:creates a cask of the given name and opens it in an editor'
|
||||||
|
'doctor:checks for configuration issues'
|
||||||
|
'edit:edits the cask of the given name'
|
||||||
|
'fetch:downloads Cask resources to local cache'
|
||||||
|
'home:opens the homepage of the cask of the given name'
|
||||||
|
'info:displays information about the cask of the given name'
|
||||||
|
'install:installs the cask of the given name'
|
||||||
|
'list:with no args, lists installed casks; given installed casks, lists installed files'
|
||||||
|
'search:searches all known casks'
|
||||||
|
'uninstall:uninstalls the cask of the given name'
|
||||||
|
"update:a synonym for 'brew update'"
|
||||||
|
)
|
||||||
|
_describe -t commands "brew cask subcommand" subcommands
|
||||||
|
fi ;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
__call_original_brew ;;
|
||||||
|
esac ;;
|
||||||
|
|
||||||
|
(options)
|
||||||
|
local -a casks installed_casks
|
||||||
|
local expl
|
||||||
|
case "$line[2]" in
|
||||||
|
list|uninstall)
|
||||||
|
__brew_installed_casks
|
||||||
|
_wanted installed_casks expl 'installed casks' compadd -a installed_casks ;;
|
||||||
|
audit|edit|home|info|install)
|
||||||
|
__brew_all_casks
|
||||||
|
_wanted casks expl 'all casks' compadd -a casks ;;
|
||||||
|
esac ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
__brew_all_casks() {
|
||||||
|
casks=(`brew cask search`)
|
||||||
|
}
|
||||||
|
|
||||||
|
__brew_installed_casks() {
|
||||||
|
installed_casks=(`brew cask list`)
|
||||||
|
}
|
||||||
|
|
||||||
|
__call_original_brew()
|
||||||
|
{
|
||||||
|
local ret=1
|
||||||
|
_call_function ret _brew
|
||||||
|
compdef _brew-cask brew
|
||||||
|
}
|
||||||
|
|
@ -11,10 +11,25 @@ _brew_installed_formulae() {
|
||||||
installed_formulae=(`brew list`)
|
installed_formulae=(`brew list`)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_brew_installed_taps() {
|
||||||
|
installed_taps=(`brew tap`)
|
||||||
|
}
|
||||||
|
|
||||||
|
_brew_outdated_formulae() {
|
||||||
|
outdated_formulae=(`brew outdated`)
|
||||||
|
}
|
||||||
|
|
||||||
|
_brew_running_services() {
|
||||||
|
running_services=(`brew services list | awk '{print $1}'`)
|
||||||
|
}
|
||||||
|
|
||||||
local -a _1st_arguments
|
local -a _1st_arguments
|
||||||
_1st_arguments=(
|
_1st_arguments=(
|
||||||
|
'audit:check formulae for Homebrew coding style'
|
||||||
|
'bundle:look for a Brewfile and run each line as a brew command'
|
||||||
'cat:display formula file for a formula'
|
'cat:display formula file for a formula'
|
||||||
'cleanup:uninstall unused and old versions of packages'
|
'cleanup:uninstall unused and old versions of packages'
|
||||||
|
'commands:show a list of commands'
|
||||||
'create:create a new formula'
|
'create:create a new formula'
|
||||||
'deps:list dependencies and dependants of a formula'
|
'deps:list dependencies and dependants of a formula'
|
||||||
'doctor:audits your installation for common issues'
|
'doctor:audits your installation for common issues'
|
||||||
|
|
@ -22,27 +37,38 @@ _1st_arguments=(
|
||||||
'home:visit the homepage of a formula or the brew project'
|
'home:visit the homepage of a formula or the brew project'
|
||||||
'info:information about a formula'
|
'info:information about a formula'
|
||||||
'install:install a formula'
|
'install:install a formula'
|
||||||
|
'reinstall:install a formula anew; re-using its current options'
|
||||||
'link:link a formula'
|
'link:link a formula'
|
||||||
'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 formulae for which a newer version is available'
|
||||||
'outdated:list formulas for which a newer version is available'
|
'pin:pin specified formulae'
|
||||||
'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'
|
'services:small wrapper around `launchctl` for supported formulae'
|
||||||
|
'tap:tap a new formula repository from GitHub, or list existing taps'
|
||||||
'unlink:unlink a formula'
|
'unlink:unlink a formula'
|
||||||
|
'unpin:unpin specified formulae'
|
||||||
|
'untap:remove a tapped repository'
|
||||||
'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 formulae which depend on a formula'
|
||||||
'versions:show all available formula versions'
|
)
|
||||||
|
|
||||||
|
local -a _service_arguments
|
||||||
|
_service_arguments=(
|
||||||
|
'cleanup:get rid of stale services and unused plists'
|
||||||
|
'list:list all services managed by `brew services`'
|
||||||
|
'restart:gracefully restart selected service'
|
||||||
|
'start:start selected service'
|
||||||
|
'stop:stop selected service'
|
||||||
)
|
)
|
||||||
|
|
||||||
local expl
|
local expl
|
||||||
local -a formulae installed_formulae
|
local -a formulae installed_formulae installed_taps outdated_formulae running_services
|
||||||
|
|
||||||
_arguments \
|
_arguments \
|
||||||
'(-v)-v[verbose]' \
|
'(-v)-v[verbose]' \
|
||||||
|
|
@ -61,24 +87,41 @@ if (( CURRENT == 1 )); then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
case "$words[1]" in
|
case "$words[1]" in
|
||||||
search|-S)
|
install|reinstall|audit|home|homepage|log|info|abv|uses|cat|deps|edit|options)
|
||||||
_arguments \
|
_brew_all_formulae
|
||||||
'(--macports)--macports[search the macports repository]' \
|
_wanted formulae expl 'all formulae' compadd -a formulae ;;
|
||||||
'(--fink)--fink[search the fink repository]' ;;
|
|
||||||
list|ls)
|
list|ls)
|
||||||
_arguments \
|
_arguments \
|
||||||
'(--unbrewed)--unbrewed[files in brew --prefix not controlled by brew]' \
|
'(--unbrewed)--unbrewed[files in brew --prefix not controlled by brew]' \
|
||||||
|
'(--pinned)--pinned[list all versions of pinned formulae]' \
|
||||||
'(--versions)--versions[list all installed versions of a formula]' \
|
'(--versions)--versions[list all installed versions of a formula]' \
|
||||||
'1: :->forms' && return 0
|
'1: :->forms' && return 0
|
||||||
|
|
||||||
if [[ "$state" == forms ]]; then
|
if [[ "$state" == forms ]]; then
|
||||||
_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|versions)
|
remove|rm|uninstall|unlink|cleanup|link|ln|pin|unpin)
|
||||||
_brew_all_formulae
|
|
||||||
_wanted formulae expl 'all formulae' compadd -a formulae ;;
|
|
||||||
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 ;;
|
||||||
|
search|-S)
|
||||||
|
_arguments \
|
||||||
|
'(--macports)--macports[search the macports repository]' \
|
||||||
|
'(--fink)--fink[search the fink repository]' ;;
|
||||||
|
services)
|
||||||
|
if [[ -n "$words[2]" ]]; then
|
||||||
|
case "$words[2]" in
|
||||||
|
restart|start|stop)
|
||||||
|
_brew_running_services
|
||||||
|
_wanted running_services expl 'running services' compadd -a running_services ;;
|
||||||
|
esac
|
||||||
|
else
|
||||||
|
_describe -t commands "brew services subcommand" _service_arguments
|
||||||
|
fi ;;
|
||||||
|
untap)
|
||||||
|
_brew_installed_taps
|
||||||
|
_wanted installed_taps expl 'installed taps' compadd -a installed_taps ;;
|
||||||
|
upgrade)
|
||||||
|
_brew_outdated_formulae
|
||||||
|
_wanted outdated_formulae expl 'outdated formulae' compadd -a outdated_formulae ;;
|
||||||
esac
|
esac
|
||||||
|
|
|
||||||
|
|
@ -1 +1,2 @@
|
||||||
alias brews='brew list -1'
|
alias brews='brew list -1'
|
||||||
|
alias bubu="brew update && brew upgrade && brew cleanup"
|
||||||
|
|
|
||||||
49
plugins/bundler/README.md
Normal file
49
plugins/bundler/README.md
Normal file
|
|
@ -0,0 +1,49 @@
|
||||||
|
# Bundler
|
||||||
|
|
||||||
|
- adds completion for basic bundler commands
|
||||||
|
- adds short aliases for common bundler commands
|
||||||
|
- `be` aliased to `bundle exec`
|
||||||
|
- `bl` aliased to `bundle list`
|
||||||
|
- `bp` aliased to `bundle package`
|
||||||
|
- `bo` aliased to `bundle open`
|
||||||
|
- `bu` aliased to `bundle update`
|
||||||
|
- `bi` aliased to `bundle install --jobs=<cpu core count>` (only for bundler `>= 1.4.0`)
|
||||||
|
- adds a wrapper for common gems:
|
||||||
|
- looks for a binstub under `./bin/` and executes it (if present)
|
||||||
|
- calls `bundle exec <gem executable>` otherwise
|
||||||
|
|
||||||
|
For a full list of *common gems* being wrapped by default please look at the `bundler.plugin.zsh` file.
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
Please use the exact name of the executable and not the gem name.
|
||||||
|
|
||||||
|
### Add additional gems to be wrapped
|
||||||
|
|
||||||
|
Add this before the plugin-list in your `.zshrc`:
|
||||||
|
```sh
|
||||||
|
BUNDLED_COMMANDS=(rubocop)
|
||||||
|
plugins=(... bundler ...)
|
||||||
|
```
|
||||||
|
This will add the wrapper for the `rubocop` gem (i.e. the executable).
|
||||||
|
|
||||||
|
|
||||||
|
### Exclude gems from being wrapped
|
||||||
|
|
||||||
|
Add this before the plugin-list in your `.zshrc`:
|
||||||
|
```sh
|
||||||
|
UNBUNDLED_COMMANDS=(foreman spin)
|
||||||
|
plugins=(... bundler ...)
|
||||||
|
```
|
||||||
|
This will exclude the `foreman` and `spin` gems (i.e. their executable) from being wrapped.
|
||||||
|
|
||||||
|
## Excluded gems
|
||||||
|
|
||||||
|
These gems should not be called with `bundle exec`. Please see the Issues on GitHub for clarification.
|
||||||
|
|
||||||
|
`berks`
|
||||||
|
`foreman`
|
||||||
|
`mailcatcher`
|
||||||
|
`rails`
|
||||||
|
`ruby`
|
||||||
|
`spin`
|
||||||
|
|
@ -18,11 +18,13 @@ case $state in
|
||||||
"check[Determine whether the requirements for your application are installed]" \
|
"check[Determine whether the requirements for your application are installed]" \
|
||||||
"list[Show all of the gems in the current bundle]" \
|
"list[Show all of the gems in the current bundle]" \
|
||||||
"show[Show the source location of a particular gem in the bundle]" \
|
"show[Show the source location of a particular gem in the bundle]" \
|
||||||
|
"outdated[Show all of the outdated gems in the current bundle]" \
|
||||||
"console[Start an IRB session in the context of the current bundle]" \
|
"console[Start an IRB session in the context of the current bundle]" \
|
||||||
"open[Open an installed gem in the editor]" \
|
"open[Open an installed gem in the editor]" \
|
||||||
"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]" \
|
||||||
|
"platform[Displays platform compatibility information]" \
|
||||||
"clean[Cleans up unused gems in your bundler directory]" \
|
"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
|
||||||
|
|
@ -39,11 +41,13 @@ case $state in
|
||||||
'check' \
|
'check' \
|
||||||
'list' \
|
'list' \
|
||||||
'show' \
|
'show' \
|
||||||
|
'outdated' \
|
||||||
'console' \
|
'console' \
|
||||||
'open' \
|
'open' \
|
||||||
'viz' \
|
'viz' \
|
||||||
'init' \
|
'init' \
|
||||||
'gem' \
|
'gem' \
|
||||||
|
'platform' \
|
||||||
'help' && ret=0
|
'help' && ret=0
|
||||||
;;
|
;;
|
||||||
install)
|
install)
|
||||||
|
|
@ -71,6 +75,15 @@ case $state in
|
||||||
'(--verbose)--verbose[Enable verbose output mode]'
|
'(--verbose)--verbose[Enable verbose output mode]'
|
||||||
ret=0
|
ret=0
|
||||||
;;
|
;;
|
||||||
|
outdated)
|
||||||
|
_arguments \
|
||||||
|
'(--pre)--pre[Check for newer pre-release gems]' \
|
||||||
|
'(--source)--source[Check against a specific source]' \
|
||||||
|
'(--local)--local[Do not attempt to fetch gems remotely and use the gem cache instead]' \
|
||||||
|
'(--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
|
||||||
|
|
|
||||||
|
|
@ -3,19 +3,54 @@ alias bl="bundle list"
|
||||||
alias bp="bundle package"
|
alias bp="bundle package"
|
||||||
alias bo="bundle open"
|
alias bo="bundle open"
|
||||||
alias bu="bundle update"
|
alias bu="bundle update"
|
||||||
|
alias bi="bundle_install"
|
||||||
|
|
||||||
# The following is based on https://github.com/gma/bundler-exec
|
bundled_commands=(
|
||||||
|
annotate
|
||||||
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)
|
cap
|
||||||
|
capify
|
||||||
|
cucumber
|
||||||
|
foodcritic
|
||||||
|
guard
|
||||||
|
irb
|
||||||
|
jekyll
|
||||||
|
kitchen
|
||||||
|
knife
|
||||||
|
middleman
|
||||||
|
nanoc
|
||||||
|
pry
|
||||||
|
puma
|
||||||
|
rackup
|
||||||
|
rainbows
|
||||||
|
rake
|
||||||
|
rspec
|
||||||
|
shotgun
|
||||||
|
sidekiq
|
||||||
|
spec
|
||||||
|
spork
|
||||||
|
spring
|
||||||
|
strainer
|
||||||
|
tailor
|
||||||
|
taps
|
||||||
|
thin
|
||||||
|
thor
|
||||||
|
unicorn
|
||||||
|
unicorn_rails
|
||||||
|
)
|
||||||
|
|
||||||
# Remove $UNBUNDLED_COMMANDS from the bundled_commands list
|
# Remove $UNBUNDLED_COMMANDS from the bundled_commands list
|
||||||
for cmd in $UNBUNDLED_COMMANDS; do
|
for cmd in $UNBUNDLED_COMMANDS; do
|
||||||
bundled_commands=(${bundled_commands#$cmd});
|
bundled_commands=(${bundled_commands#$cmd});
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Add $BUNDLED_COMMANDS to the bundled_commands list
|
||||||
|
for cmd in $BUNDLED_COMMANDS; do
|
||||||
|
bundled_commands+=($cmd);
|
||||||
|
done
|
||||||
|
|
||||||
## Functions
|
## Functions
|
||||||
|
|
||||||
bi() {
|
bundle_install() {
|
||||||
if _bundler-installed && _within-bundled-project; then
|
if _bundler-installed && _within-bundled-project; then
|
||||||
local bundler_version=`bundle version | cut -d' ' -f3`
|
local bundler_version=`bundle version | cut -d' ' -f3`
|
||||||
if [[ $bundler_version > '1.4.0' || $bundler_version = '1.4.0' ]]; then
|
if [[ $bundler_version > '1.4.0' || $bundler_version = '1.4.0' ]]; then
|
||||||
|
|
@ -39,17 +74,25 @@ _bundler-installed() {
|
||||||
}
|
}
|
||||||
|
|
||||||
_within-bundled-project() {
|
_within-bundled-project() {
|
||||||
local check_dir=$PWD
|
local check_dir="$PWD"
|
||||||
while [ $check_dir != "/" ]; do
|
while [ "$check_dir" != "/" ]; do
|
||||||
[ -f "$check_dir/Gemfile" ] && return
|
[ -f "$check_dir/Gemfile" ] && return
|
||||||
check_dir="$(dirname $check_dir)"
|
check_dir="$(dirname $check_dir)"
|
||||||
done
|
done
|
||||||
false
|
false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_binstubbed() {
|
||||||
|
[ -f "./bin/${1}" ]
|
||||||
|
}
|
||||||
|
|
||||||
_run-with-bundler() {
|
_run-with-bundler() {
|
||||||
if _bundler-installed && _within-bundled-project; then
|
if _bundler-installed && _within-bundled-project; then
|
||||||
bundle exec $@
|
if _binstubbed $1; then
|
||||||
|
./bin/$@
|
||||||
|
else
|
||||||
|
bundle exec $@
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
$@
|
$@
|
||||||
fi
|
fi
|
||||||
|
|
@ -62,7 +105,6 @@ for cmd in $bundled_commands; do
|
||||||
alias $cmd=bundled_$cmd
|
alias $cmd=bundled_$cmd
|
||||||
|
|
||||||
if which _$cmd > /dev/null 2>&1; then
|
if which _$cmd > /dev/null 2>&1; then
|
||||||
compdef _$cmd bundled_$cmd=$cmd
|
compdef _$cmd bundled_$cmd=$cmd
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
|
||||||
17
plugins/catimg/catimg.plugin.zsh
Normal file
17
plugins/catimg/catimg.plugin.zsh
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
################################################################################
|
||||||
|
# catimg script by Eduardo San Martin Morote aka Posva #
|
||||||
|
# http://posva.net #
|
||||||
|
# #
|
||||||
|
# Ouput the content of an image to the stdout using the 256 colors of the #
|
||||||
|
# terminal. #
|
||||||
|
# Github: https://github.com/posva/catimg #
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
|
function catimg() {
|
||||||
|
if [[ -x `which convert` ]]; then
|
||||||
|
zsh $ZSH/plugins/catimg/catimg.sh $@
|
||||||
|
else
|
||||||
|
echo "catimg need convert (ImageMagick) to work)"
|
||||||
|
fi
|
||||||
|
}
|
||||||
88
plugins/catimg/catimg.sh
Executable file
88
plugins/catimg/catimg.sh
Executable file
|
|
@ -0,0 +1,88 @@
|
||||||
|
################################################################################
|
||||||
|
# catimg script by Eduardo San Martin Morote aka Posva #
|
||||||
|
# http://posva.net #
|
||||||
|
# #
|
||||||
|
# Ouput the content of an image to the stdout using the 256 colors of the #
|
||||||
|
# terminal. #
|
||||||
|
# Github: https://github.com/posva/catimg #
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
function help() {
|
||||||
|
echo "Usage catimg [-h] [-w width] [-c char] img"
|
||||||
|
echo "By default char is \" \" and w is the terminal width"
|
||||||
|
}
|
||||||
|
|
||||||
|
# VARIABLES
|
||||||
|
COLOR_FILE=$(dirname $0)/colors.png
|
||||||
|
CHAR=" "
|
||||||
|
|
||||||
|
WIDTH=""
|
||||||
|
IMG=""
|
||||||
|
|
||||||
|
while getopts qw:c:h opt; do
|
||||||
|
case "$opt" in
|
||||||
|
w) WIDTH="$OPTARG" ;;
|
||||||
|
c) CHAR="$OPTARG" ;;
|
||||||
|
h) help; exit ;;
|
||||||
|
*) help ; exit 1;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
while [ "$1" ]; do
|
||||||
|
IMG="$1"
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "$IMG" = "" -o ! -f "$IMG" ]; then
|
||||||
|
help
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! "$WIDTH" ]; then
|
||||||
|
COLS=$(expr $(tput cols) "/" $(echo -n "$CHAR" | wc -c))
|
||||||
|
else
|
||||||
|
COLS=$(expr $WIDTH "/" $(echo -n "$CHAR" | wc -c))
|
||||||
|
fi
|
||||||
|
WIDTH=$(convert "$IMG" -print "%w\n" /dev/null)
|
||||||
|
if [ "$WIDTH" -gt "$COLS" ]; then
|
||||||
|
WIDTH=$COLS
|
||||||
|
fi
|
||||||
|
|
||||||
|
REMAP=""
|
||||||
|
if convert "$IMG" -resize $COLS\> +dither -remap $COLOR_FILE /dev/null ; then
|
||||||
|
REMAP="-remap $COLOR_FILE"
|
||||||
|
else
|
||||||
|
echo "The version of convert is too old, don't expect good results :(" >&2
|
||||||
|
#convert "$IMG" -colors 256 PNG8:tmp.png
|
||||||
|
#IMG="tmp.png"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Display the image
|
||||||
|
I=0
|
||||||
|
convert "$IMG" -resize $COLS\> +dither `echo $REMAP` txt:- 2>/dev/null |
|
||||||
|
sed -e 's/.*none.*/NO NO NO/g' -e '1d;s/^.*(\(.*\)[,)].*$/\1/g;y/,/ /' |
|
||||||
|
while read R G B f; do
|
||||||
|
if [ ! "$R" = "NO" ]; then
|
||||||
|
if [ "$R" -eq "$G" -a "$G" -eq "$B" ]; then
|
||||||
|
((
|
||||||
|
I++,
|
||||||
|
IDX = 232 + R * 23 / 255
|
||||||
|
))
|
||||||
|
else
|
||||||
|
((
|
||||||
|
I++,
|
||||||
|
IDX = 16
|
||||||
|
+ R * 5 / 255 * 36
|
||||||
|
+ G * 5 / 255 * 6
|
||||||
|
+ B * 5 / 255
|
||||||
|
))
|
||||||
|
fi
|
||||||
|
#echo "$R,$G,$B: $IDX"
|
||||||
|
echo -ne "\e[48;5;${IDX}m${CHAR}"
|
||||||
|
else
|
||||||
|
(( I++ ))
|
||||||
|
echo -ne "\e[0m${CHAR}"
|
||||||
|
fi
|
||||||
|
# New lines
|
||||||
|
(( $I % $WIDTH )) || echo -e "\e[0m"
|
||||||
|
done
|
||||||
BIN
plugins/catimg/colors.png
Normal file
BIN
plugins/catimg/colors.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 353 B |
|
|
@ -19,4 +19,4 @@ bindkey -a 'N' vi-join
|
||||||
bindkey -a 'j' vi-forward-word-end
|
bindkey -a 'j' vi-forward-word-end
|
||||||
bindkey -a 'J' vi-forward-blank-word-end
|
bindkey -a 'J' vi-forward-blank-word-end
|
||||||
|
|
||||||
lesskey $ZSH_CUSTOM/plugins/colemak/colemak-less
|
lesskey $ZSH/plugins/colemak/colemak-less
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# Plugin for highligthing file content
|
# Plugin for highlighting file content
|
||||||
# Plugin highlights file content based on the filename extension.
|
# Plugin highlights file content based on the filename extension.
|
||||||
# If no highlighting method supported for given extension then it tries
|
# If no highlighting method supported for given extension then it tries
|
||||||
# guess it by looking for file content.
|
# guess it by looking for file content.
|
||||||
|
|
@ -6,9 +6,9 @@
|
||||||
alias colorize='colorize_via_pygmentize'
|
alias colorize='colorize_via_pygmentize'
|
||||||
|
|
||||||
colorize_via_pygmentize() {
|
colorize_via_pygmentize() {
|
||||||
if [ ! -x $(which pygmentize) ]; then
|
if [ ! -x "$(which pygmentize)" ]; then
|
||||||
echo package \'pygmentize\' is not installed!
|
echo "package \'pygmentize\' is not installed!"
|
||||||
exit -1
|
return -1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ $# -eq 0 ]; then
|
if [ $# -eq 0 ]; then
|
||||||
|
|
@ -25,4 +25,4 @@ colorize_via_pygmentize() {
|
||||||
pygmentize -g "$FNAME"
|
pygmentize -g "$FNAME"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,6 @@
|
||||||
#
|
#
|
||||||
|
|
||||||
# ls, the common ones I use a lot shortened for rapid fire usage
|
# 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 l='ls -lFh' #size,show type,human readable
|
||||||
alias la='ls -lAFh' #long list,show almost all,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 lr='ls -tRFh' #sorted by date,recursive,show type,human readable
|
||||||
|
|
@ -39,7 +38,7 @@ alias -g NE="2> /dev/null"
|
||||||
alias -g NUL="> /dev/null 2>&1"
|
alias -g NUL="> /dev/null 2>&1"
|
||||||
alias -g P="2>&1| pygmentize -l pytb"
|
alias -g P="2>&1| pygmentize -l pytb"
|
||||||
|
|
||||||
alias dud='du --max-depth=1 -h'
|
alias dud='du -d 1 -h'
|
||||||
alias duf='du -sh *'
|
alias duf='du -sh *'
|
||||||
alias fd='find . -type d -name'
|
alias fd='find . -type d -name'
|
||||||
alias ff='find . -type f -name'
|
alias ff='find . -type f -name'
|
||||||
|
|
@ -71,7 +70,7 @@ if [ ${ZSH_VERSION//\./} -ge 420 ]; then
|
||||||
_image_fts=(jpg jpeg png gif mng tiff tif xpm)
|
_image_fts=(jpg jpeg png gif mng tiff tif xpm)
|
||||||
for ft in $_image_fts ; do alias -s $ft=$XIVIEWER; done
|
for ft in $_image_fts ; do alias -s $ft=$XIVIEWER; done
|
||||||
|
|
||||||
_media_fts=(avi mpg mpeg ogm mp3 wav ogg ape rm mov mkv)
|
_media_fts=(ape avi flv mkv mov mp3 mpeg mpg ogg ogm rm wav webm)
|
||||||
for ft in $_media_fts ; do alias -s $ft=mplayer ; done
|
for ft in $_media_fts ; do alias -s $ft=mplayer ; done
|
||||||
|
|
||||||
#read documents
|
#read documents
|
||||||
|
|
|
||||||
|
|
@ -46,3 +46,6 @@ 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'
|
||||||
|
|
||||||
|
# Add Composer's global binaries to PATH
|
||||||
|
export PATH=$PATH:~/.composer/vendor/bin
|
||||||
|
|
|
||||||
|
|
@ -21,8 +21,8 @@ fi
|
||||||
# Aliases ###################################################################
|
# Aliases ###################################################################
|
||||||
# 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 age='apt-get'
|
||||||
alias ap='aptitude'
|
alias api='aptitude'
|
||||||
|
|
||||||
# Some self-explanatory aliases
|
# Some self-explanatory aliases
|
||||||
alias acs="apt-cache search"
|
alias acs="apt-cache search"
|
||||||
|
|
@ -217,3 +217,11 @@ kerndeb () {
|
||||||
"$revision" kernel_image kernel_headers
|
"$revision" kernel_image kernel_headers
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# List packages by size
|
||||||
|
function apt-list-packages {
|
||||||
|
dpkg-query -W --showformat='${Installed-Size} ${Package} ${Status}\n' | \
|
||||||
|
grep -v deinstall | \
|
||||||
|
sort -n | \
|
||||||
|
awk '{print $1" "$2}'
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
||||||
132
plugins/dirhistory/dirhistory.plugin.zsh
Normal file
132
plugins/dirhistory/dirhistory.plugin.zsh
Normal file
|
|
@ -0,0 +1,132 @@
|
||||||
|
##
|
||||||
|
# Navigate directory history using ALT-LEFT and ALT-RIGHT. ALT-LEFT moves back to directories
|
||||||
|
# that the user has changed to in the past, and ALT-RIGHT undoes ALT-LEFT.
|
||||||
|
#
|
||||||
|
|
||||||
|
dirhistory_past=(`pwd`)
|
||||||
|
dirhistory_future=()
|
||||||
|
export dirhistory_past
|
||||||
|
export dirhistory_future
|
||||||
|
|
||||||
|
export DIRHISTORY_SIZE=30
|
||||||
|
|
||||||
|
# Pop the last element of dirhistory_past.
|
||||||
|
# Pass the name of the variable to return the result in.
|
||||||
|
# Returns the element if the array was not empty,
|
||||||
|
# otherwise returns empty string.
|
||||||
|
function pop_past() {
|
||||||
|
eval "$1='$dirhistory_past[$#dirhistory_past]'"
|
||||||
|
if [[ $#dirhistory_past -gt 0 ]]; then
|
||||||
|
dirhistory_past[$#dirhistory_past]=()
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function pop_future() {
|
||||||
|
eval "$1='$dirhistory_future[$#dirhistory_future]'"
|
||||||
|
if [[ $#dirhistory_future -gt 0 ]]; then
|
||||||
|
dirhistory_future[$#dirhistory_future]=()
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Push a new element onto the end of dirhistory_past. If the size of the array
|
||||||
|
# is >= DIRHISTORY_SIZE, the array is shifted
|
||||||
|
function push_past() {
|
||||||
|
if [[ $#dirhistory_past -ge $DIRHISTORY_SIZE ]]; then
|
||||||
|
shift dirhistory_past
|
||||||
|
fi
|
||||||
|
if [[ $#dirhistory_past -eq 0 || $dirhistory_past[$#dirhistory_past] != "$1" ]]; then
|
||||||
|
dirhistory_past+=($1)
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function push_future() {
|
||||||
|
if [[ $#dirhistory_future -ge $DIRHISTORY_SIZE ]]; then
|
||||||
|
shift dirhistory_future
|
||||||
|
fi
|
||||||
|
if [[ $#dirhistory_future -eq 0 || $dirhistory_futuret[$#dirhistory_future] != "$1" ]]; then
|
||||||
|
dirhistory_future+=($1)
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Called by zsh when directory changes
|
||||||
|
function chpwd() {
|
||||||
|
push_past `pwd`
|
||||||
|
# If DIRHISTORY_CD is not set...
|
||||||
|
if [[ -z "${DIRHISTORY_CD+x}" ]]; then
|
||||||
|
# ... clear future.
|
||||||
|
dirhistory_future=()
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function dirhistory_cd(){
|
||||||
|
DIRHISTORY_CD="1"
|
||||||
|
cd $1
|
||||||
|
unset DIRHISTORY_CD
|
||||||
|
}
|
||||||
|
|
||||||
|
# Move backward in directory history
|
||||||
|
function dirhistory_back() {
|
||||||
|
local cw=""
|
||||||
|
local d=""
|
||||||
|
# Last element in dirhistory_past is the cwd.
|
||||||
|
|
||||||
|
pop_past cw
|
||||||
|
if [[ "" == "$cw" ]]; then
|
||||||
|
# Someone overwrote our variable. Recover it.
|
||||||
|
dirhistory_past=(`pwd`)
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
pop_past d
|
||||||
|
if [[ "" != "$d" ]]; then
|
||||||
|
dirhistory_cd $d
|
||||||
|
push_future $cw
|
||||||
|
else
|
||||||
|
push_past $cw
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Move forward in directory history
|
||||||
|
function dirhistory_forward() {
|
||||||
|
local d=""
|
||||||
|
|
||||||
|
pop_future d
|
||||||
|
if [[ "" != "$d" ]]; then
|
||||||
|
dirhistory_cd $d
|
||||||
|
push_past $d
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Bind keys to history navigation
|
||||||
|
function dirhistory_zle_dirhistory_back() {
|
||||||
|
# Erase current line in buffer
|
||||||
|
zle kill-buffer
|
||||||
|
dirhistory_back
|
||||||
|
zle accept-line
|
||||||
|
}
|
||||||
|
|
||||||
|
function dirhistory_zle_dirhistory_future() {
|
||||||
|
# Erase current line in buffer
|
||||||
|
zle kill-buffer
|
||||||
|
dirhistory_forward
|
||||||
|
zle accept-line
|
||||||
|
}
|
||||||
|
|
||||||
|
zle -N dirhistory_zle_dirhistory_back
|
||||||
|
# xterm in normal mode
|
||||||
|
bindkey "\e[3D" dirhistory_zle_dirhistory_back
|
||||||
|
bindkey "\e[1;3D" dirhistory_zle_dirhistory_back
|
||||||
|
# Putty:
|
||||||
|
bindkey "\e\e[D" dirhistory_zle_dirhistory_back
|
||||||
|
# GNU screen:
|
||||||
|
bindkey "\eO3D" dirhistory_zle_dirhistory_back
|
||||||
|
|
||||||
|
zle -N dirhistory_zle_dirhistory_future
|
||||||
|
bindkey "\e[3C" dirhistory_zle_dirhistory_future
|
||||||
|
bindkey "\e[1;3C" dirhistory_zle_dirhistory_future
|
||||||
|
bindkey "\e\e[C" dirhistory_zle_dirhistory_future
|
||||||
|
bindkey "\eO3C" dirhistory_zle_dirhistory_future
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,39 +1,19 @@
|
||||||
#!/bin/zsh
|
# Save dirstack history to .zdirs
|
||||||
#
|
# adapted from:
|
||||||
# Make the dirstack more persistant
|
# github.com/grml/grml-etc-core/blob/master/etc/zsh/zshrc#L1547
|
||||||
#
|
|
||||||
# Add dirpersist to $plugins in ~/.zshrc to load
|
|
||||||
#
|
|
||||||
|
|
||||||
# $zdirstore is the file used to persist the stack
|
DIRSTACKSIZE=${DIRSTACKSIZE:-20}
|
||||||
zdirstore=~/.zdirstore
|
dirstack_file=${dirstack_file:-${HOME}/.zdirs}
|
||||||
|
|
||||||
dirpersistinstall () {
|
if [[ -f ${dirstack_file} ]] && [[ ${#dirstack[*]} -eq 0 ]] ; then
|
||||||
if grep 'dirpersiststore' ~/.zlogout > /dev/null; then
|
dirstack=( ${(f)"$(< $dirstack_file)"} )
|
||||||
else
|
# "cd -" won't work after login by just setting $OLDPWD, so
|
||||||
if read -q \?"Would you like to set up your .zlogout file for use with dirspersist? (y/n) "; then
|
[[ -d $dirstack[1] ]] && cd $dirstack[1] && cd $OLDPWD
|
||||||
echo "# Store dirs stack\n# See $ZSH/plugins/dirspersist.plugin.zsh\ndirpersiststore" >> ~/.zlogout
|
fi
|
||||||
else
|
|
||||||
echo "If you don't want this message to appear, remove dirspersist from \$plugins"
|
chpwd() {
|
||||||
fi
|
if (( $DIRSTACKSIZE <= 0 )) || [[ -z $dirstack_file ]]; then return; fi
|
||||||
fi
|
local -ax my_stack
|
||||||
|
my_stack=( ${PWD} ${dirstack} )
|
||||||
|
builtin print -l ${(u)my_stack} >! ${dirstack_file}
|
||||||
}
|
}
|
||||||
|
|
||||||
dirpersiststore () {
|
|
||||||
dirs -p | perl -e 'foreach (reverse <STDIN>) {chomp;s/([& ])/\\$1/g ;print "if [ -d $_ ]; then pushd -q $_; fi\n"}' > $zdirstore
|
|
||||||
}
|
|
||||||
|
|
||||||
dirpersistrestore () {
|
|
||||||
if [ -f $zdirstore ]; then
|
|
||||||
source $zdirstore
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
DIRSTACKSIZE=10
|
|
||||||
setopt autopushd pushdminus pushdsilent pushdtohome pushdignoredups
|
|
||||||
|
|
||||||
dirpersistinstall
|
|
||||||
dirpersistrestore
|
|
||||||
|
|
||||||
# Make popd changes permanent without having to wait for logout
|
|
||||||
alias popd="popd;dirpersiststore"
|
|
||||||
|
|
|
||||||
|
|
@ -141,6 +141,7 @@ _managepy-sqlinitialdata(){}
|
||||||
_managepy-sqlreset(){}
|
_managepy-sqlreset(){}
|
||||||
_managepy-sqlsequencereset(){}
|
_managepy-sqlsequencereset(){}
|
||||||
_managepy-startapp(){}
|
_managepy-startapp(){}
|
||||||
|
_managepy-startproject(){}
|
||||||
|
|
||||||
_managepy-syncdb() {
|
_managepy-syncdb() {
|
||||||
_arguments -s : \
|
_arguments -s : \
|
||||||
|
|
@ -198,6 +199,7 @@ _managepy-commands() {
|
||||||
'sqlreset:Prints the DROP TABLE SQL, then the CREATE TABLE SQL, for the given app name(s).'
|
'sqlreset:Prints the DROP TABLE SQL, then the CREATE TABLE SQL, for the given app name(s).'
|
||||||
'sqlsequencereset:Prints the SQL statements for resetting sequences for the given app name(s).'
|
'sqlsequencereset:Prints the SQL statements for resetting sequences for the given app name(s).'
|
||||||
"startapp:Creates a Django app directory structure for the given app name in this project's directory."
|
"startapp:Creates a Django app directory structure for the given app name in this project's directory."
|
||||||
|
"startproject:Creates a Django project directory structure for the given project name in this current directory."
|
||||||
"syncdb:Create the database tables for all apps in INSTALLED_APPS whose tables haven't already been created."
|
"syncdb:Create the database tables for all apps in INSTALLED_APPS whose tables haven't already been created."
|
||||||
'test:Runs the test suite for the specified applications, or the entire site if no apps are specified.'
|
'test:Runs the test suite for the specified applications, or the entire site if no apps are specified.'
|
||||||
'testserver:Runs a development server with data from the given fixture(s).'
|
'testserver:Runs a development server with data from the given fixture(s).'
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,8 @@
|
||||||
|
|
||||||
# Docker autocompletion for oh-my-zsh
|
# Docker autocompletion for oh-my-zsh
|
||||||
# Requires: Docker installed
|
# Requires: Docker installed
|
||||||
# Author : Azaan (@aeonazaan)
|
# Author: Azaan (@aeonazaan)
|
||||||
|
# Updates: Bob Maerten (@bobmaerten) for Docker v0.9+
|
||||||
|
|
||||||
|
|
||||||
# ----- Helper functions
|
# ----- Helper functions
|
||||||
|
|
@ -24,21 +25,30 @@ __docker_images() {
|
||||||
# Seperate function for each command, makes extension easier later
|
# Seperate function for each command, makes extension easier later
|
||||||
# ---------------------------
|
# ---------------------------
|
||||||
__attach() {
|
__attach() {
|
||||||
|
_arguments \
|
||||||
|
'--no-stdin[Do not attach stdin]' \
|
||||||
|
'--sig-proxy[Proxify all received signal to the process (even in non-tty mode)]'
|
||||||
__docker_containers
|
__docker_containers
|
||||||
}
|
}
|
||||||
|
|
||||||
__build() {
|
__build() {
|
||||||
_arguments \
|
_arguments \
|
||||||
'-q=false[Suppress verbose build output]' \
|
'--no-cache[Do not use cache when building the image]' \
|
||||||
'-t="[fuck to be applied to the resulting image in case of success]' \
|
'(-q,--quiet)'{-q,--quiet}'[Suppress the verbose output generated by the containers]' \
|
||||||
|
'--rm[Remove intermediate containers after a successful build]' \
|
||||||
|
'(-t,--tag=)'{-t,--tag=}'[Repository name (and optionally a tag) to be applied to the resulting image in case of success]' \
|
||||||
'*:files:_files'
|
'*:files:_files'
|
||||||
}
|
}
|
||||||
|
|
||||||
__commit() {
|
__commit() {
|
||||||
_arguments \
|
_arguments \
|
||||||
'-author="[Author]' \
|
'(-a,--author=)'{-a,--author=}'[Author (eg. "John Hannibal Smith <hannibal@a-team.com>"]' \
|
||||||
'-m="[Commit message]' \
|
'(-m,--message=)'{-m,--message=}'[Commit message]' \
|
||||||
'-run="[Config automatically applied when the image is run.\n]'
|
'--run=[Config automatically applied when the image is run.]'
|
||||||
|
__docker_containers
|
||||||
|
}
|
||||||
|
|
||||||
|
__cp() {
|
||||||
__docker_containers
|
__docker_containers
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -46,21 +56,29 @@ __diff() {
|
||||||
__docker_containers
|
__docker_containers
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__events() {
|
||||||
|
_arguments \
|
||||||
|
'--since=[Show previously created events and then stream.]'
|
||||||
|
}
|
||||||
|
|
||||||
__export() {
|
__export() {
|
||||||
__docker_containers
|
__docker_containers
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
__history() {
|
__history() {
|
||||||
|
_arguments \
|
||||||
|
'--no-trunc=[Don''t truncate output]' \
|
||||||
|
'(-q,--quiet)'{-q,--quiet}'[Only show numeric IDs]'
|
||||||
__docker_images
|
__docker_images
|
||||||
}
|
}
|
||||||
|
|
||||||
__images() {
|
__images() {
|
||||||
_arguments \
|
_arguments \
|
||||||
'-a[show all images]' \
|
'(-a,--all)'{-a,--all}'[Show all images (by default filter out the intermediate images used to build)]' \
|
||||||
'-notrunc[dont truncate output]' \
|
'--no-trunc[Don''t truncate output]' \
|
||||||
'-q[only show numeric IDs]' \
|
'(-q,--quiet=)'{-q,--quiet=}'[Only show numeric IDs]' \
|
||||||
'-viz[output graph in graphviz format]'
|
'(-t,--tree=)'{-t,--tree=}'[Output graph in tree format]' \
|
||||||
|
'(-v,--viz=)'{-v,--viz=}'[Output graph in graphviz format]'
|
||||||
__docker_images
|
__docker_images
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -86,14 +104,20 @@ __kill() {
|
||||||
__docker_containers
|
__docker_containers
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__load() {
|
||||||
|
_arguments '*:files:_files'
|
||||||
|
}
|
||||||
|
|
||||||
__login() {
|
__login() {
|
||||||
_arguments \
|
_arguments \
|
||||||
'-e="[email]' \
|
'(-e,--email=)'{-e,-email=}'[Email]' \
|
||||||
'-p="[password]' \
|
'(-p,--password=)'{-p,-password=}'[Password]' \
|
||||||
'-u="[username]' \
|
'(-u,--username=)'{-u,-username=}'[Username]'
|
||||||
}
|
}
|
||||||
|
|
||||||
__logs() {
|
__logs() {
|
||||||
|
_arguments \
|
||||||
|
'(-f,--follow)'{-f,-follow}'[Follow log output]'
|
||||||
__docker_containers
|
__docker_containers
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -107,77 +131,107 @@ __top() {
|
||||||
|
|
||||||
__ps() {
|
__ps() {
|
||||||
_arguments \
|
_arguments \
|
||||||
'-a[Show all containers. Only running containers are shown by default.]' \
|
'(-a,--all)'{-a,--all}'[Show all containers. Only running containers are shown by default.]' \
|
||||||
'-beforeId="[Show only container created before Id, include non-running ones.]' \
|
'--before-id=[Show only container created before Id, include non-running ones.]' \
|
||||||
'-l[Show only the latest created container, include non-running ones.]' \
|
'(-l,--latest)'{-l,--latest}'[Show only the latest created container, include non-running ones.]' \
|
||||||
'-n=[Show n last created containers, include non-running ones.]' \
|
'-n=[Show n last created containers, include non-running ones. default=-1.]' \
|
||||||
'-notrurrrrnc[Dont truncate output]' \
|
'--no-trunc[Don''t truncate output]' \
|
||||||
'-q[Only display numeric IDs]' \
|
'(-q,--quiet)'{-q,--quiet}'[Only display numeric IDs]' \
|
||||||
'-s[Display sizes]' \
|
'(-s,--size)'{-s,--size}'[Display sizes]' \
|
||||||
'-sinceId="[Show only containers created since Id, include non-running ones.]'
|
'--since-id=[Show only containers created since Id, include non-running ones.]'
|
||||||
}
|
}
|
||||||
|
|
||||||
__pull() {
|
__pull() {
|
||||||
_arguments '-t="[Download tagged image in repository]'
|
_arguments \
|
||||||
|
'(-t,--tag=)'{-t,--tag=}'[Download tagged image in repository]'
|
||||||
}
|
}
|
||||||
|
|
||||||
__push() {
|
__push() {
|
||||||
|
# no arguments
|
||||||
}
|
}
|
||||||
|
|
||||||
__restart() {
|
__restart() {
|
||||||
_arguments '-t=[number of seconds to try to stop before killing]'
|
_arguments \
|
||||||
|
'(-t,--time=)'{-t,--time=}'[Number of seconds to try to stop for before killing the container. Once killed it will then be restarted. Default=10]'
|
||||||
__docker_containers
|
__docker_containers
|
||||||
}
|
}
|
||||||
|
|
||||||
__rm() {
|
__rm() {
|
||||||
_arguments '-v[Remove the volumes associated to the container]'
|
_arguments \
|
||||||
|
'(-f,--force=)'{-f,--force=}'[Force removal of running container]' \
|
||||||
|
'(-l,--link=)'{-l,--link=}'[Remove the specified link and not the underlying container]' \
|
||||||
|
'(-v,--volumes=)'{-v,--volumes=}'[Remove the volumes associated to the container]'
|
||||||
__docker_containers
|
__docker_containers
|
||||||
}
|
}
|
||||||
|
|
||||||
__rmi() {
|
__rmi() {
|
||||||
|
_arguments \
|
||||||
|
'(-f,--force=)'{-f,--force=}'[Force]'
|
||||||
__docker_images
|
__docker_images
|
||||||
}
|
}
|
||||||
|
|
||||||
__run() {
|
__run() {
|
||||||
_arguments \
|
_arguments \
|
||||||
'-a=[Attach to stdin, stdout or stderr.]' \
|
'(-P,--publish-all=)'{-P,--publish-all=}'[Publish all exposed ports to the host interfaces]' \
|
||||||
'-c=[CPU shares (relative weight)]' \
|
'(-a,--attach=)'{-a,--attach=}'[Attach to stdin, stdout or stderr.]' \
|
||||||
'-d[Detached mode: leave the container running in the background]' \
|
'(-c,--cpu-shares=)'{-c,--cpu-shares=}': CPU shares (relative weight)]' \
|
||||||
'-dns=[Set custom dns servers]' \
|
'--cidfile=[Write the container ID to the file]' \
|
||||||
'-e=[Set environment variables]' \
|
'(-d,--detach=)'{-d,--detach=}'[Detached mode: Run container in the background, print new container id]' \
|
||||||
'-entrypoint="[Overwrite the default entrypoint of the image]' \
|
'--dns=[Set custom dns servers]' \
|
||||||
'-h="[Container host name]' \
|
'(-e,--env=)'{-e,--env=}'[Set environment variables]' \
|
||||||
'-i[Keep stdin open even if not attached]' \
|
'--entrypoint=[Overwrite the default entrypoint of the image]' \
|
||||||
'-m=[Memory limit (in bytes)]' \
|
'--expose=[Expose a port from the container without publishing it to your host]' \
|
||||||
'-p=[Expose a containers port to the host (use docker port to see the actual mapping)]' \
|
'(-h,--hostname=)'{-h,--hostname=}'[Container host name]' \
|
||||||
'-t[Allocate a pseudo-tty]' \
|
'(-i,--interactive=)'{-i,--interactive=}'[Keep stdin open even if not attached]' \
|
||||||
'-u="[Username or UID]' \
|
'--link=[Add link to another container (name:alias)]' \
|
||||||
'-v=[Bind mount a volume (e.g. from the host: -v /host:/container, from docker: -v /container)]' \
|
'--lxc-conf=[Add custom lxc options -lxc-conf="lxc.cgroup.cpuset.cpus = 0,1"]' \
|
||||||
'-volumes-from="[Mount volumes from the specified container]'
|
'(-m,--memory=)'{-m,--memory=}'[Memory limit (format: <number><optional unit>, where unit = b, k, m or g)]' \
|
||||||
|
'(-n,--networking=)'{-n,--networking=}'[Enable networking for this container]' \
|
||||||
|
'--name=[Assign a name to the container]' \
|
||||||
|
'(-p,--publish=)'{-p,--publish=}'[Publish a container''s port to the host (format: ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort) (use "docker port" to see the actual mapping)]' \
|
||||||
|
'--privileged=[Give extended privileges to this container]' \
|
||||||
|
'--rm=[Automatically remove the container when it exits (incompatible with -d)]' \
|
||||||
|
'--sig-proxy=[Proxify all received signal to the process (even in non-tty mode)]' \
|
||||||
|
'(-t,--tty=)'{-t,--tty=}'[Allocate a pseudo-tty]' \
|
||||||
|
'(-u,--user=)'{-u,--user=}'[Username or UID]' \
|
||||||
|
'(-v,--volume=)'{-v,--volume=}'[Bind mount a volume (e.g. from the host: -v /host:/container, from docker: -v /container)]' \
|
||||||
|
'--volumes-from=[Mount volumes from the specified container(s)]' \
|
||||||
|
'(-w,--workdir=)'{-w,--workdir=}'[Working directory inside the container]'
|
||||||
__docker_images
|
__docker_images
|
||||||
}
|
}
|
||||||
|
|
||||||
__search() {
|
__search() {
|
||||||
_arguments '-notrunc[Dont truncate output]'
|
_arguments \
|
||||||
|
'--no-trunc=[Don''t truncate output]' \
|
||||||
|
'-s,--stars=)'{-s,--stars=}'[Only displays with at least xxx stars]' \
|
||||||
|
'-t,--trusted=)'{-t,--trusted=}'[Only show trusted builds]'
|
||||||
|
}
|
||||||
|
|
||||||
|
__save() {
|
||||||
|
__docker_images
|
||||||
}
|
}
|
||||||
|
|
||||||
__start() {
|
__start() {
|
||||||
|
_arguments \
|
||||||
|
'(-a,--attach=)'{-a,--attach=}'[Attach container''s stdout/stderr and forward all signals to the process]' \
|
||||||
|
'(-i,--interactive=)'{-i,--interactive=}'[Attach container''s stdin]'
|
||||||
__docker_containers
|
__docker_containers
|
||||||
}
|
}
|
||||||
|
|
||||||
__stop() {
|
__stop() {
|
||||||
_arguments '-t=[number of seconds to try to stop before killing]'
|
_arguments \
|
||||||
|
'(-t,--time=)'{-t,--time=}'[Number of seconds to wait for the container to stop before killing it.]'
|
||||||
__docker_containers
|
__docker_containers
|
||||||
}
|
}
|
||||||
|
|
||||||
__tag() {
|
__tag() {
|
||||||
_arguments '-f[Force]'
|
_arguments \
|
||||||
|
'(-f,--force=)'{-f,--force=}'[Force]'
|
||||||
__docker_images
|
__docker_images
|
||||||
}
|
}
|
||||||
|
|
||||||
__version() {
|
__version() {
|
||||||
|
# no arguments
|
||||||
}
|
}
|
||||||
|
|
||||||
__wait() {
|
__wait() {
|
||||||
|
|
@ -192,7 +246,9 @@ _1st_arguments=(
|
||||||
"attach":"Attach to a running container"
|
"attach":"Attach to a running container"
|
||||||
"build":"Build a container from a Dockerfile"
|
"build":"Build a container from a Dockerfile"
|
||||||
"commit":"Create a new image from a container's changes"
|
"commit":"Create a new image from a container's changes"
|
||||||
|
"cp":"Copy files/folders from the containers filesystem to the host path"
|
||||||
"diff":"Inspect changes on a container's filesystem"
|
"diff":"Inspect changes on a container's filesystem"
|
||||||
|
"events":"Get real time events from the server"
|
||||||
"export":"Stream the contents of a container as a tar archive"
|
"export":"Stream the contents of a container as a tar archive"
|
||||||
"history":"Show the history of an image"
|
"history":"Show the history of an image"
|
||||||
"images":"List images"
|
"images":"List images"
|
||||||
|
|
@ -201,10 +257,10 @@ _1st_arguments=(
|
||||||
"insert":"Insert a file in an image"
|
"insert":"Insert a file in an image"
|
||||||
"inspect":"Return low-level information on a container"
|
"inspect":"Return low-level information on a container"
|
||||||
"kill":"Kill a running container"
|
"kill":"Kill a running container"
|
||||||
|
"load":"Load an image from a tar archive"
|
||||||
"login":"Register or Login to the docker registry server"
|
"login":"Register or Login to the docker registry server"
|
||||||
"logs":"Fetch the logs of a container"
|
"logs":"Fetch the logs of a container"
|
||||||
"port":"Lookup the public-facing port which is NAT-ed to PRIVATE_PORT"
|
"port":"Lookup the public-facing port which is NAT-ed to PRIVATE_PORT"
|
||||||
"top":"Lookup the running processes of a container"
|
|
||||||
"ps":"List containers"
|
"ps":"List containers"
|
||||||
"pull":"Pull an image or a repository from the docker registry server"
|
"pull":"Pull an image or a repository from the docker registry server"
|
||||||
"push":"Push an image or a repository to the docker registry server"
|
"push":"Push an image or a repository to the docker registry server"
|
||||||
|
|
@ -212,10 +268,12 @@ _1st_arguments=(
|
||||||
"rm":"Remove one or more containers"
|
"rm":"Remove one or more containers"
|
||||||
"rmi":"Remove one or more images"
|
"rmi":"Remove one or more images"
|
||||||
"run":"Run a command in a new container"
|
"run":"Run a command in a new container"
|
||||||
|
"save":"Save an image to a tar archive"
|
||||||
"search":"Search for an image in the docker index"
|
"search":"Search for an image in the docker index"
|
||||||
"start":"Start a stopped container"
|
"start":"Start a stopped container"
|
||||||
"stop":"Stop a running container"
|
"stop":"Stop a running container"
|
||||||
"tag":"Tag an image into a repository"
|
"tag":"Tag an image into a repository"
|
||||||
|
"top":"Lookup the running processes of a container"
|
||||||
"version":"Show the docker version information"
|
"version":"Show the docker version information"
|
||||||
"wait":"Block until a container stops, then print its exit code"
|
"wait":"Block until a container stops, then print its exit code"
|
||||||
)
|
)
|
||||||
|
|
@ -230,13 +288,17 @@ fi
|
||||||
local -a _command_args
|
local -a _command_args
|
||||||
case "$words[1]" in
|
case "$words[1]" in
|
||||||
attach)
|
attach)
|
||||||
__docker_containers ;;
|
__attach ;;
|
||||||
build)
|
build)
|
||||||
__build ;;
|
__build ;;
|
||||||
commit)
|
commit)
|
||||||
__commit ;;
|
__commit ;;
|
||||||
|
cp)
|
||||||
|
__cp ;;
|
||||||
diff)
|
diff)
|
||||||
__diff ;;
|
__diff ;;
|
||||||
|
events)
|
||||||
|
__events ;;
|
||||||
export)
|
export)
|
||||||
__export ;;
|
__export ;;
|
||||||
history)
|
history)
|
||||||
|
|
@ -253,14 +315,14 @@ case "$words[1]" in
|
||||||
__inspect ;;
|
__inspect ;;
|
||||||
kill)
|
kill)
|
||||||
__kill ;;
|
__kill ;;
|
||||||
|
load)
|
||||||
|
__load ;;
|
||||||
login)
|
login)
|
||||||
__login ;;
|
__login ;;
|
||||||
logs)
|
logs)
|
||||||
__logs ;;
|
__logs ;;
|
||||||
port)
|
port)
|
||||||
__port ;;
|
__port ;;
|
||||||
top)
|
|
||||||
__top ;;
|
|
||||||
ps)
|
ps)
|
||||||
__ps ;;
|
__ps ;;
|
||||||
pull)
|
pull)
|
||||||
|
|
@ -275,6 +337,8 @@ case "$words[1]" in
|
||||||
__rmi ;;
|
__rmi ;;
|
||||||
run)
|
run)
|
||||||
__run ;;
|
__run ;;
|
||||||
|
save)
|
||||||
|
__save ;;
|
||||||
search)
|
search)
|
||||||
__search ;;
|
__search ;;
|
||||||
start)
|
start)
|
||||||
|
|
@ -283,6 +347,8 @@ case "$words[1]" in
|
||||||
__stop ;;
|
__stop ;;
|
||||||
tag)
|
tag)
|
||||||
__tag ;;
|
__tag ;;
|
||||||
|
top)
|
||||||
|
__top ;;
|
||||||
version)
|
version)
|
||||||
__version ;;
|
__version ;;
|
||||||
wait)
|
wait)
|
||||||
|
|
|
||||||
56
plugins/emacs/emacs.plugin.zsh
Normal file
56
plugins/emacs/emacs.plugin.zsh
Normal file
|
|
@ -0,0 +1,56 @@
|
||||||
|
# Emacs 23 daemon capability is a killing feature.
|
||||||
|
# One emacs process handles all your frames whether
|
||||||
|
# you use a frame opened in a terminal via a ssh connection or X frames
|
||||||
|
# opened on the same host.
|
||||||
|
|
||||||
|
# Benefits are multiple
|
||||||
|
# - You don't have the cost of starting Emacs all the time anymore
|
||||||
|
# - Opening a file is as fast as Emacs does not have anything else to do.
|
||||||
|
# - You can share opened buffered across opened frames.
|
||||||
|
# - Configuration changes made at runtime are applied to all frames.
|
||||||
|
|
||||||
|
|
||||||
|
if "$ZSH/tools/require_tool.sh" emacs 23 2>/dev/null ; then
|
||||||
|
export EMACS_PLUGIN_LAUNCHER="$ZSH/plugins/emacs/emacsclient.sh"
|
||||||
|
|
||||||
|
# set EDITOR if not already defined.
|
||||||
|
export EDITOR="${EDITOR:-${EMACS_PLUGIN_LAUNCHER}}"
|
||||||
|
|
||||||
|
alias emacs="$EMACS_PLUGIN_LAUNCHER --no-wait"
|
||||||
|
alias e=emacs
|
||||||
|
|
||||||
|
# same than M-x eval but from outside Emacs.
|
||||||
|
alias eeval="$EMACS_PLUGIN_LAUNCHER --eval"
|
||||||
|
# create a new X frame
|
||||||
|
alias eframe='emacsclient --alternate-editor "" --create-frame'
|
||||||
|
|
||||||
|
# to code all night long
|
||||||
|
alias emasc=emacs
|
||||||
|
alias emcas=emacs
|
||||||
|
|
||||||
|
# Write to standard output the path to the file
|
||||||
|
# opened in the current buffer.
|
||||||
|
function efile {
|
||||||
|
local cmd="(buffer-file-name (window-buffer))"
|
||||||
|
"$EMACS_PLUGIN_LAUNCHER" --eval "$cmd" | tr -d \"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Write to standard output the directory of the file
|
||||||
|
# opened in the the current buffer
|
||||||
|
function ecd {
|
||||||
|
local cmd="(let ((buf-name (buffer-file-name (window-buffer))))
|
||||||
|
(if buf-name (file-name-directory buf-name)))"
|
||||||
|
|
||||||
|
local dir="$($EMACS_PLUGIN_LAUNCHER --eval $cmd | tr -d \")"
|
||||||
|
if [ -n "$dir" ] ;then
|
||||||
|
echo "$dir"
|
||||||
|
else
|
||||||
|
echo "can not deduce current buffer filename." >/dev/stderr
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
|
||||||
|
## Local Variables:
|
||||||
|
## mode: sh
|
||||||
|
## End:
|
||||||
12
plugins/emacs/emacsclient.sh
Executable file
12
plugins/emacs/emacsclient.sh
Executable file
|
|
@ -0,0 +1,12 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# get list of available X windows.
|
||||||
|
x=`emacsclient --alternate-editor '' --eval '(x-display-list)' 2>/dev/null`
|
||||||
|
|
||||||
|
if [ -z "$x" ] || [ "$x" = "nil" ] ;then
|
||||||
|
# Create one if there is no X window yet.
|
||||||
|
emacsclient --alternate-editor "" --create-frame "$@"
|
||||||
|
else
|
||||||
|
# prevent creating another X frame if there is at least one present.
|
||||||
|
emacsclient --alternate-editor "" "$@"
|
||||||
|
fi
|
||||||
|
|
@ -52,7 +52,7 @@ function extract() {
|
||||||
(*.xz) unxz "$1" ;;
|
(*.xz) unxz "$1" ;;
|
||||||
(*.lzma) unlzma "$1" ;;
|
(*.lzma) unlzma "$1" ;;
|
||||||
(*.Z) uncompress "$1" ;;
|
(*.Z) uncompress "$1" ;;
|
||||||
(*.zip|*.war|*.jar) unzip "$1" -d $extract_dir ;;
|
(*.zip|*.war|*.jar|*.sublime-package) unzip "$1" -d $extract_dir ;;
|
||||||
(*.rar) unrar x -ad "$1" ;;
|
(*.rar) unrar x -ad "$1" ;;
|
||||||
(*.7z) 7za x "$1" ;;
|
(*.7z) 7za x "$1" ;;
|
||||||
(*.deb)
|
(*.deb)
|
||||||
|
|
|
||||||
82
plugins/frontend-search/README.md
Normal file
82
plugins/frontend-search/README.md
Normal file
|
|
@ -0,0 +1,82 @@
|
||||||
|
## Rationale ##
|
||||||
|
|
||||||
|
The idea for this script is to help searches in important doc contents from frontend.
|
||||||
|
|
||||||
|
## Instalation ##
|
||||||
|
|
||||||
|
I will send a Pull Request with this plugin for .oh-my-zsh official repository. If accept them, it's only add in plugins list that exists in ```.zshrc``` file.
|
||||||
|
|
||||||
|
For now, you can clone this repository and add in ```custom/plugins``` folder
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ git clone git://github.com/willmendesneto/frontend-search.git ~/.oh-my-zsh/custom/plugins/frontend-search
|
||||||
|
```
|
||||||
|
|
||||||
|
After this, restart your terminal and frontend-search plugin is configurated in you CLI.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
...
|
||||||
|
plugins=( <your-plugins-list>... frontend-search)
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
## Commands ##
|
||||||
|
|
||||||
|
All command searches are accept only in format
|
||||||
|
|
||||||
|
* `frontend <search-content> <search-term>`
|
||||||
|
|
||||||
|
The search content are
|
||||||
|
|
||||||
|
* `jquery <api.jquery.com>`
|
||||||
|
* `mdn <developer.mozilla.org>`
|
||||||
|
* `compass <compass-style.org>`
|
||||||
|
* `html5please <html5please.com>`
|
||||||
|
* `caniuse <caniuse.com>`
|
||||||
|
* `aurajs <aurajs.com>`
|
||||||
|
* `dartlang <api.dartlang.org/apidocs/channels/stable/dartdoc-viewer>`
|
||||||
|
* `lodash <search>`
|
||||||
|
* `qunit <api.qunitjs.com>`
|
||||||
|
* `fontello <fontello.com>`
|
||||||
|
* `bootsnipp <bootsnipp.com>`
|
||||||
|
* `cssflow <cssflow.com>`
|
||||||
|
* `codepen <codepen.io>`
|
||||||
|
* `unheap <www.unheap.com>`
|
||||||
|
* `bem <google.com/search?as_q=<search-term>&as_sitesearch=bem.info>`
|
||||||
|
* `smacss <google.com/search?as_q=<search-term>&as_sitesearch=smacss.com>`
|
||||||
|
* `angularjs <google.com/search?as_q=<search-term>&as_sitesearch=angularjs.org>`
|
||||||
|
* `reactjs <google.com/search?as_q=<search-term>&as_sitesearch=facebook.github.io/react>`
|
||||||
|
* `emberjs <emberjs.com>`
|
||||||
|
|
||||||
|
|
||||||
|
## Aliases ##
|
||||||
|
|
||||||
|
There are a few aliases presented as well:
|
||||||
|
|
||||||
|
* `jquery` A shorthand for `frontend jquery`
|
||||||
|
* `mdn` A shorthand for `frontend mdn`
|
||||||
|
* `compass` A shorthand for `frontend compass`
|
||||||
|
* `html5please` A shorthand for `frontend html5please`
|
||||||
|
* `caniuse` A shorthand for `frontend caniuse`
|
||||||
|
* `aurajs` A shorthand for `frontend aurajs`
|
||||||
|
* `dartlang` A shorthand for `frontend dartlang`
|
||||||
|
* `lodash` A shorthand for `frontend lodash`
|
||||||
|
* `qunit` A shorthand for `frontend qunit`
|
||||||
|
* `fontello` A shorthand for `frontend fontello`
|
||||||
|
* `bootsnipp` A shorthand for `frontend bootsnipp`
|
||||||
|
* `cssflow` A shorthand for `frontend cssflow`
|
||||||
|
* `codepen` A shorthand for `frontend codepen`
|
||||||
|
* `unheap` A shorthand for `frontend unheap`
|
||||||
|
* `bem` A shorthand for `frontend bem`
|
||||||
|
* `smacss` A shorthand for `frontend smacss`
|
||||||
|
* `angularjs` A shorthand for `frontend angularjs`
|
||||||
|
* `reactjs` A shorthand for `frontend reactjs`
|
||||||
|
* `emberjs` A shorthand for `frontend emberjs`
|
||||||
|
|
||||||
|
## Author
|
||||||
|
|
||||||
|
**Wilson Mendes (willmendesneto)**
|
||||||
|
+ <https://twitter.com/willmendesneto>
|
||||||
|
+ <http://github.com/willmendesneto>
|
||||||
|
|
||||||
|
New features comming soon.
|
||||||
151
plugins/frontend-search/frontend-search.plugin.zsh
Normal file
151
plugins/frontend-search/frontend-search.plugin.zsh
Normal file
|
|
@ -0,0 +1,151 @@
|
||||||
|
# frontend from terminal
|
||||||
|
|
||||||
|
function frontend() {
|
||||||
|
|
||||||
|
# get the open command
|
||||||
|
local open_cmd
|
||||||
|
if [[ $(uname -s) == 'Darwin' ]]; then
|
||||||
|
open_cmd='open'
|
||||||
|
else
|
||||||
|
open_cmd='xdg-open'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# no keyword provided, simply show how call methods
|
||||||
|
if [[ $# -le 1 ]]; then
|
||||||
|
echo "Please provide a search-content and a search-term for app.\nEx:\nfrontend <search-content> <search-term>\n"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# check whether the search engine is supported
|
||||||
|
if [[ ! $1 =~ '(jquery|mdn|compass|html5please|caniuse|aurajs|dartlang|qunit|fontello|bootsnipp|cssflow|codepen|unheap|bem|smacss|angularjs|reactjs|emberjs)' ]];
|
||||||
|
then
|
||||||
|
echo "Search valid search content $1 not supported."
|
||||||
|
echo "Valid contents: (formats 'frontend <search-content>' or '<search-content>')"
|
||||||
|
echo "* jquery"
|
||||||
|
echo "* mdn"
|
||||||
|
echo "* compass"
|
||||||
|
echo "* html5please"
|
||||||
|
echo "* caniuse"
|
||||||
|
echo "* aurajs"
|
||||||
|
echo "* dartlang"
|
||||||
|
echo "* lodash"
|
||||||
|
echo "* qunit"
|
||||||
|
echo "* fontello"
|
||||||
|
echo "* bootsnipp"
|
||||||
|
echo "* cssflow"
|
||||||
|
echo "* codepen"
|
||||||
|
echo "* unheap"
|
||||||
|
echo "* bem"
|
||||||
|
echo "* smacss"
|
||||||
|
echo "* angularjs"
|
||||||
|
echo "* reactjs"
|
||||||
|
echo "* emberjs"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
local url="http://"
|
||||||
|
local query=""
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
"jquery")
|
||||||
|
url="${url}api.jquery.com"
|
||||||
|
url="${url}/?s=$2" ;;
|
||||||
|
"mdn")
|
||||||
|
url="${url}developer.mozilla.org"
|
||||||
|
url="${url}/search?q=$2" ;;
|
||||||
|
"compass")
|
||||||
|
url="${url}compass-style.org"
|
||||||
|
url="${url}/search?q=$2" ;;
|
||||||
|
"html5please")
|
||||||
|
url="${url}html5please.com"
|
||||||
|
url="${url}/#$2" ;;
|
||||||
|
"caniuse")
|
||||||
|
url="${url}caniuse.com"
|
||||||
|
url="${url}/#search=$2" ;;
|
||||||
|
"aurajs")
|
||||||
|
url="${url}aurajs.com"
|
||||||
|
url="${url}/api/#stq=$2" ;;
|
||||||
|
"dartlang")
|
||||||
|
url="${url}api.dartlang.org/apidocs/channels/stable/dartdoc-viewer"
|
||||||
|
url="${url}/dart-$2" ;;
|
||||||
|
"qunit")
|
||||||
|
url="${url}api.qunitjs.com"
|
||||||
|
url="${url}/?s=$2" ;;
|
||||||
|
"fontello")
|
||||||
|
url="${url}fontello.com"
|
||||||
|
url="${url}/#search=$2" ;;
|
||||||
|
"bootsnipp")
|
||||||
|
url="${url}bootsnipp.com"
|
||||||
|
url="${url}/search?q=$2" ;;
|
||||||
|
"cssflow")
|
||||||
|
url="${url}cssflow.com"
|
||||||
|
url="${url}/search?q=$2" ;;
|
||||||
|
"codepen")
|
||||||
|
url="${url}codepen.io"
|
||||||
|
url="${url}/search?q=$2" ;;
|
||||||
|
"unheap")
|
||||||
|
url="${url}www.unheap.com"
|
||||||
|
url="${url}/?s=$2" ;;
|
||||||
|
"bem")
|
||||||
|
url="${url}google.com"
|
||||||
|
url="${url}/search?as_q=$2&as_sitesearch=bem.info" ;;
|
||||||
|
"smacss")
|
||||||
|
url="${url}google.com"
|
||||||
|
url="${url}/search?as_q=$2&as_sitesearch=smacss.com" ;;
|
||||||
|
"angularjs")
|
||||||
|
url="${url}google.com"
|
||||||
|
url="${url}/search?as_q=$2&as_sitesearch=angularjs.org" ;;
|
||||||
|
"reactjs")
|
||||||
|
url="${url}google.com"
|
||||||
|
url="${url}/search?as_q=$2&as_sitesearch=facebook.github.io/react" ;;
|
||||||
|
"emberjs")
|
||||||
|
url="${url}emberjs.com"
|
||||||
|
url="${url}/api/#stq=$2&stp=1" ;;
|
||||||
|
*) echo "INVALID PARAM!"
|
||||||
|
return ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
echo "$url"
|
||||||
|
|
||||||
|
$open_cmd "$url"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
# javascript
|
||||||
|
alias jquery='frontend jquery'
|
||||||
|
alias mdn='frontend mdn'
|
||||||
|
|
||||||
|
# pre processors frameworks
|
||||||
|
alias compass='frontend compass'
|
||||||
|
|
||||||
|
# important links
|
||||||
|
alias html5please='frontend html5please'
|
||||||
|
alias caniuse='frontend caniuse'
|
||||||
|
|
||||||
|
# components and libraries
|
||||||
|
alias aurajs='frontend aurajs'
|
||||||
|
alias dartlang='frontend dartlang'
|
||||||
|
alias lodash='frontend lodash'
|
||||||
|
|
||||||
|
#tests
|
||||||
|
alias qunit='frontend qunit'
|
||||||
|
|
||||||
|
#fonts
|
||||||
|
alias fontello='frontend fontello'
|
||||||
|
|
||||||
|
# snippets
|
||||||
|
alias bootsnipp='frontend bootsnipp'
|
||||||
|
alias cssflow='frontend cssflow'
|
||||||
|
alias codepen='frontend codepen'
|
||||||
|
alias unheap='frontend unheap'
|
||||||
|
|
||||||
|
# css architecture
|
||||||
|
alias bem='frontend bem'
|
||||||
|
alias smacss='frontend smacss'
|
||||||
|
|
||||||
|
# frameworks
|
||||||
|
alias angularjs='frontend angularjs'
|
||||||
|
alias reactjs='frontend reactjs'
|
||||||
|
alias emberjs='frontend emberjs'
|
||||||
|
|
@ -13,6 +13,7 @@ case $state in
|
||||||
cmds=(
|
cmds=(
|
||||||
"version:Prints Gas's version"
|
"version:Prints Gas's version"
|
||||||
"use:Uses author"
|
"use:Uses author"
|
||||||
|
"ssh:Creates a new ssh key for an existing gas author"
|
||||||
"show:Shows your current user"
|
"show:Shows your current user"
|
||||||
"list:Lists your authors"
|
"list:Lists your authors"
|
||||||
"import:Imports current user to gasconfig"
|
"import:Imports current user to gasconfig"
|
||||||
|
|
@ -25,8 +26,12 @@ case $state in
|
||||||
args)
|
args)
|
||||||
case $line[1] in
|
case $line[1] in
|
||||||
(use|delete)
|
(use|delete)
|
||||||
_values -S , 'authors' $(cat ~/.gas | sed -n -e 's/^\[\(.*\)\]/\1/p') && ret=0
|
VERSION=$(gas -v)
|
||||||
;;
|
if [[ $VERSION == <1->.*.* ]] || [[ $VERSION == 0.<2->.* ]] || [[ $VERSION == 0.1.<6-> ]] then
|
||||||
|
_values -S , 'authors' $(cat ~/.gas/gas.authors | sed -n -e 's/^.*\[\(.*\)\]/\1/p') && ret=0
|
||||||
|
else
|
||||||
|
_values -S , 'authors' $(cat ~/.gas | sed -n -e 's/^\[\(.*\)\]/\1/p') && ret=0
|
||||||
|
fi
|
||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
|
||||||
|
|
@ -56,6 +56,9 @@ if (( CURRENT == 1 )); then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
case "$words[1]" in
|
case "$words[1]" in
|
||||||
|
build)
|
||||||
|
_files -g "*.gemspec"
|
||||||
|
;;
|
||||||
list)
|
list)
|
||||||
if [[ "$state" == forms ]]; then
|
if [[ "$state" == forms ]]; then
|
||||||
_gem_installed
|
_gem_installed
|
||||||
|
|
|
||||||
7
plugins/gem/gem.plugin.zsh
Normal file
7
plugins/gem/gem.plugin.zsh
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
alias gemb="gem build *.gemspec"
|
||||||
|
alias gemp="gem push *.gem"
|
||||||
|
|
||||||
|
# gemy GEM 0.0.0 = gem yank GEM -v 0.0.0
|
||||||
|
function gemy {
|
||||||
|
gem yank $1 -v $2
|
||||||
|
}
|
||||||
|
|
@ -1,20 +1,30 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python2
|
||||||
# -*- coding: UTF-8 -*-
|
# -*- coding: UTF-8 -*-
|
||||||
|
from subprocess import Popen, PIPE
|
||||||
|
import re
|
||||||
|
|
||||||
# change those symbols to whatever you prefer
|
# change those symbols to whatever you prefer
|
||||||
symbols = {'ahead of': '↑', 'behind': '↓', 'staged':'♦', 'changed':'‣', 'untracked':'…', 'clean':'⚡', 'unmerged':'≠', 'sha1':':'}
|
symbols = {
|
||||||
|
'ahead of': '↑',
|
||||||
|
'behind': '↓',
|
||||||
|
'staged': '♦',
|
||||||
|
'changed': '‣',
|
||||||
|
'untracked': '…',
|
||||||
|
'clean': '⚡',
|
||||||
|
'unmerged': '≠',
|
||||||
|
'sha1': ':'
|
||||||
|
}
|
||||||
|
|
||||||
from subprocess import Popen, PIPE
|
output, error = Popen(
|
||||||
|
['git', 'status'], stdout=PIPE, stderr=PIPE, universal_newlines=True).communicate()
|
||||||
output,error = Popen(['git','status'], stdout=PIPE, stderr=PIPE).communicate()
|
|
||||||
|
|
||||||
if error:
|
if error:
|
||||||
import sys
|
import sys
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
lines = output.splitlines()
|
lines = output.splitlines()
|
||||||
|
|
||||||
import re
|
behead_re = re.compile(
|
||||||
behead_re = re.compile(r"^# Your branch is (ahead of|behind) '(.*)' by (\d+) commit")
|
r"^# Your branch is (ahead of|behind) '(.*)' by (\d+) commit")
|
||||||
diverge_re = re.compile(r"^# and have (\d+) and (\d+) different")
|
diverge_re = re.compile(r"^# and have (\d+) and (\d+) different")
|
||||||
|
|
||||||
status = ''
|
status = ''
|
||||||
|
|
@ -23,46 +33,50 @@ changed = re.compile(r'^# Changed but not updated:$', re.MULTILINE)
|
||||||
untracked = re.compile(r'^# Untracked files:$', re.MULTILINE)
|
untracked = re.compile(r'^# Untracked files:$', re.MULTILINE)
|
||||||
unmerged = re.compile(r'^# Unmerged paths:$', re.MULTILINE)
|
unmerged = re.compile(r'^# Unmerged paths:$', re.MULTILINE)
|
||||||
|
|
||||||
|
|
||||||
def execute(*command):
|
def execute(*command):
|
||||||
out, err = Popen(stdout=PIPE, stderr=PIPE, *command).communicate()
|
out, err = Popen(stdout=PIPE, stderr=PIPE, *command).communicate()
|
||||||
if not err:
|
if not err:
|
||||||
nb = len(out.splitlines())
|
nb = len(out.splitlines())
|
||||||
else:
|
else:
|
||||||
nb = '?'
|
nb = '?'
|
||||||
return nb
|
return nb
|
||||||
|
|
||||||
if staged.search(output):
|
if staged.search(output):
|
||||||
nb = execute(['git','diff','--staged','--name-only','--diff-filter=ACDMRT'])
|
nb = execute(
|
||||||
status += '%s%s' % (symbols['staged'], nb)
|
['git', 'diff', '--staged', '--name-only', '--diff-filter=ACDMRT'])
|
||||||
|
status += '%s%s' % (symbols['staged'], nb)
|
||||||
if unmerged.search(output):
|
if unmerged.search(output):
|
||||||
nb = execute(['git','diff', '--staged','--name-only', '--diff-filter=U'])
|
nb = execute(['git', 'diff', '--staged', '--name-only', '--diff-filter=U'])
|
||||||
status += '%s%s' % (symbols['unmerged'], nb)
|
status += '%s%s' % (symbols['unmerged'], nb)
|
||||||
if changed.search(output):
|
if changed.search(output):
|
||||||
nb = execute(['git','diff','--name-only', '--diff-filter=ACDMRT'])
|
nb = execute(['git', 'diff', '--name-only', '--diff-filter=ACDMRT'])
|
||||||
status += '%s%s' % (symbols['changed'], nb)
|
status += '%s%s' % (symbols['changed'], nb)
|
||||||
if untracked.search(output):
|
if untracked.search(output):
|
||||||
## nb = len(Popen(['git','ls-files','--others','--exclude-standard'],stdout=PIPE).communicate()[0].splitlines())
|
status += symbols['untracked']
|
||||||
## status += "%s" % (symbols['untracked']*(nb//3 + 1), )
|
|
||||||
status += symbols['untracked']
|
|
||||||
if status == '':
|
if status == '':
|
||||||
status = symbols['clean']
|
status = symbols['clean']
|
||||||
|
|
||||||
remote = ''
|
remote = ''
|
||||||
|
|
||||||
bline = lines[0]
|
bline = lines[0]
|
||||||
if bline.find('Not currently on any branch') != -1:
|
if bline.find('Not currently on any branch') != -1:
|
||||||
branch = symbols['sha1']+ Popen(['git','rev-parse','--short','HEAD'], stdout=PIPE).communicate()[0][:-1]
|
branch = symbols['sha1'] + Popen([
|
||||||
|
'git',
|
||||||
|
'rev-parse',
|
||||||
|
'--short',
|
||||||
|
'HEAD'], stdout=PIPE).communicate()[0][:-1]
|
||||||
else:
|
else:
|
||||||
branch = bline.split(' ')[3]
|
branch = bline.split(' ')[-1]
|
||||||
bstatusline = lines[1]
|
bstatusline = lines[1]
|
||||||
match = behead_re.match(bstatusline)
|
match = behead_re.match(bstatusline)
|
||||||
if match:
|
if match:
|
||||||
remote = symbols[match.groups()[0]]
|
remote = symbols[match.groups()[0]]
|
||||||
remote += match.groups()[2]
|
remote += match.groups()[2]
|
||||||
elif lines[2:]:
|
elif lines[2:]:
|
||||||
div_match = diverge_re.match(lines[2])
|
div_match = diverge_re.match(lines[2])
|
||||||
if div_match:
|
if div_match:
|
||||||
remote = "{behind}{1}{ahead of}{0}".format(*div_match.groups(), **symbols)
|
remote = "{behind}{1}{ahead of}{0}".format(
|
||||||
|
*div_match.groups(), **symbols)
|
||||||
print '\n'.join([branch,remote,status])
|
|
||||||
|
|
||||||
|
print('\n'.join([branch, remote, status]))
|
||||||
|
|
|
||||||
|
|
@ -62,8 +62,10 @@ 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'
|
alias glgga='git log --graph --decorate --all'
|
||||||
compdef _git glgga=git-log
|
compdef _git glgga=git-log
|
||||||
alias glo='git log --oneline'
|
alias glo='git log --oneline --decorate --color'
|
||||||
compdef _git glo=git-log
|
compdef _git glo=git-log
|
||||||
|
alias glog='git log --oneline --decorate --color --graph'
|
||||||
|
compdef _git glog=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'
|
||||||
|
|
@ -147,7 +149,7 @@ function work_in_progress() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
# these alias commit and uncomit wip branches
|
# 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 gwip='git add -A; git ls-files --deleted -z | xargs -r0 git rm; git commit -m "--wip--"'
|
||||||
alias gunwip='git log -n 1 | grep -q -c "\-\-wip\-\-" && git reset HEAD~1'
|
alias gunwip='git log -n 1 | grep -q -c "\-\-wip\-\-" && git reset HEAD~1'
|
||||||
|
|
||||||
# these alias ignore changes to file
|
# these alias ignore changes to file
|
||||||
|
|
|
||||||
|
|
@ -2,18 +2,19 @@
|
||||||
|
|
||||||
# zsh completion wrapper for git
|
# zsh completion wrapper for git
|
||||||
#
|
#
|
||||||
# You need git's bash completion script installed somewhere, by default on the
|
# Copyright (c) 2012-2013 Felipe Contreras <felipe.contreras@gmail.com>
|
||||||
# same directory as this script.
|
|
||||||
#
|
#
|
||||||
# If your script is on ~/.git-completion.sh instead, you can configure it on
|
# You need git's bash completion script installed somewhere, by default it
|
||||||
# your ~/.zshrc:
|
# would be the location bash-completion uses.
|
||||||
|
#
|
||||||
|
# If your script is somewhere else, you can configure it on your ~/.zshrc:
|
||||||
#
|
#
|
||||||
# zstyle ':completion:*:*:git:*' script ~/.git-completion.sh
|
# zstyle ':completion:*:*:git:*' script ~/.git-completion.sh
|
||||||
#
|
#
|
||||||
# The recommended way to install this script is to copy to
|
# The recommended way to install this script is to copy to '~/.zsh/_git', and
|
||||||
# '~/.zsh/completion/_git', and then add the following to your ~/.zshrc file:
|
# then add the following to your ~/.zshrc file:
|
||||||
#
|
#
|
||||||
# fpath=(~/.zsh/completion $fpath)
|
# fpath=(~/.zsh $fpath)
|
||||||
|
|
||||||
complete ()
|
complete ()
|
||||||
{
|
{
|
||||||
|
|
@ -21,8 +22,23 @@ complete ()
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
zstyle -T ':completion:*:*:git:*' tag-order && \
|
||||||
|
zstyle ':completion:*:*:git:*' tag-order 'common-commands'
|
||||||
|
|
||||||
zstyle -s ":completion:*:*:git:*" script script
|
zstyle -s ":completion:*:*:git:*" script script
|
||||||
test -z "$script" && script="$(dirname ${funcsourcetrace[1]%:*})"/git-completion.bash
|
if [ -z "$script" ]; then
|
||||||
|
local -a locations
|
||||||
|
local e
|
||||||
|
locations=(
|
||||||
|
'/etc/bash_completion.d/git' # fedora, old debian
|
||||||
|
'/usr/share/bash-completion/completions/git' # arch, ubuntu, new debian
|
||||||
|
'/usr/share/bash-completion/git' # gentoo
|
||||||
|
$(dirname ${funcsourcetrace[1]%:*})/git-completion.bash
|
||||||
|
)
|
||||||
|
for e in $locations; do
|
||||||
|
test -f $e && script="$e" && break
|
||||||
|
done
|
||||||
|
fi
|
||||||
ZSH_VERSION='' . "$script"
|
ZSH_VERSION='' . "$script"
|
||||||
|
|
||||||
__gitcomp ()
|
__gitcomp ()
|
||||||
|
|
@ -69,18 +85,131 @@ __gitcomp_file ()
|
||||||
compadd -Q -p "${2-}" -f -- ${=1} && _ret=0
|
compadd -Q -p "${2-}" -f -- ${=1} && _ret=0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__git_zsh_bash_func ()
|
||||||
|
{
|
||||||
|
emulate -L ksh
|
||||||
|
|
||||||
|
local command=$1
|
||||||
|
|
||||||
|
local completion_func="_git_${command//-/_}"
|
||||||
|
declare -f $completion_func >/dev/null && $completion_func && return
|
||||||
|
|
||||||
|
local expansion=$(__git_aliased_command "$command")
|
||||||
|
if [ -n "$expansion" ]; then
|
||||||
|
completion_func="_git_${expansion//-/_}"
|
||||||
|
declare -f $completion_func >/dev/null && $completion_func
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
__git_zsh_cmd_common ()
|
||||||
|
{
|
||||||
|
local -a list
|
||||||
|
list=(
|
||||||
|
add:'add file contents to the index'
|
||||||
|
bisect:'find by binary search the change that introduced a bug'
|
||||||
|
branch:'list, create, or delete branches'
|
||||||
|
checkout:'checkout a branch or paths to the working tree'
|
||||||
|
clone:'clone a repository into a new directory'
|
||||||
|
commit:'record changes to the repository'
|
||||||
|
diff:'show changes between commits, commit and working tree, etc'
|
||||||
|
fetch:'download objects and refs from another repository'
|
||||||
|
grep:'print lines matching a pattern'
|
||||||
|
init:'create an empty Git repository or reinitialize an existing one'
|
||||||
|
log:'show commit logs'
|
||||||
|
merge:'join two or more development histories together'
|
||||||
|
mv:'move or rename a file, a directory, or a symlink'
|
||||||
|
pull:'fetch from and merge with another repository or a local branch'
|
||||||
|
push:'update remote refs along with associated objects'
|
||||||
|
rebase:'forward-port local commits to the updated upstream head'
|
||||||
|
reset:'reset current HEAD to the specified state'
|
||||||
|
rm:'remove files from the working tree and from the index'
|
||||||
|
show:'show various types of objects'
|
||||||
|
status:'show the working tree status'
|
||||||
|
tag:'create, list, delete or verify a tag object signed with GPG')
|
||||||
|
_describe -t common-commands 'common commands' list && _ret=0
|
||||||
|
}
|
||||||
|
|
||||||
|
__git_zsh_cmd_alias ()
|
||||||
|
{
|
||||||
|
local -a list
|
||||||
|
list=(${${${(0)"$(git config -z --get-regexp '^alias\.')"}#alias.}%$'\n'*})
|
||||||
|
_describe -t alias-commands 'aliases' list $* && _ret=0
|
||||||
|
}
|
||||||
|
|
||||||
|
__git_zsh_cmd_all ()
|
||||||
|
{
|
||||||
|
local -a list
|
||||||
|
emulate ksh -c __git_compute_all_commands
|
||||||
|
list=( ${=__git_all_commands} )
|
||||||
|
_describe -t all-commands 'all commands' list && _ret=0
|
||||||
|
}
|
||||||
|
|
||||||
|
__git_zsh_main ()
|
||||||
|
{
|
||||||
|
local curcontext="$curcontext" state state_descr line
|
||||||
|
typeset -A opt_args
|
||||||
|
local -a orig_words
|
||||||
|
|
||||||
|
orig_words=( ${words[@]} )
|
||||||
|
|
||||||
|
_arguments -C \
|
||||||
|
'(-p --paginate --no-pager)'{-p,--paginate}'[pipe all output into ''less'']' \
|
||||||
|
'(-p --paginate)--no-pager[do not pipe git output into a pager]' \
|
||||||
|
'--git-dir=-[set the path to the repository]: :_directories' \
|
||||||
|
'--bare[treat the repository as a bare repository]' \
|
||||||
|
'(- :)--version[prints the git suite version]' \
|
||||||
|
'--exec-path=-[path to where your core git programs are installed]:: :_directories' \
|
||||||
|
'--html-path[print the path where git''s HTML documentation is installed]' \
|
||||||
|
'--info-path[print the path where the Info files are installed]' \
|
||||||
|
'--man-path[print the manpath (see `man(1)`) for the man pages]' \
|
||||||
|
'--work-tree=-[set the path to the working tree]: :_directories' \
|
||||||
|
'--namespace=-[set the git namespace]' \
|
||||||
|
'--no-replace-objects[do not use replacement refs to replace git objects]' \
|
||||||
|
'(- :)--help[prints the synopsis and a list of the most commonly used commands]: :->arg' \
|
||||||
|
'(-): :->command' \
|
||||||
|
'(-)*:: :->arg' && return
|
||||||
|
|
||||||
|
case $state in
|
||||||
|
(command)
|
||||||
|
_alternative \
|
||||||
|
'alias-commands:alias:__git_zsh_cmd_alias' \
|
||||||
|
'common-commands:common:__git_zsh_cmd_common' \
|
||||||
|
'all-commands:all:__git_zsh_cmd_all' && _ret=0
|
||||||
|
;;
|
||||||
|
(arg)
|
||||||
|
local command="${words[1]}" __git_dir
|
||||||
|
|
||||||
|
if (( $+opt_args[--bare] )); then
|
||||||
|
__git_dir='.'
|
||||||
|
else
|
||||||
|
__git_dir=${opt_args[--git-dir]}
|
||||||
|
fi
|
||||||
|
|
||||||
|
(( $+opt_args[--help] )) && command='help'
|
||||||
|
|
||||||
|
words=( ${orig_words[@]} )
|
||||||
|
|
||||||
|
__git_zsh_bash_func $command
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
_git ()
|
_git ()
|
||||||
{
|
{
|
||||||
local _ret=1
|
local _ret=1
|
||||||
() {
|
local cur cword prev
|
||||||
emulate -L ksh
|
|
||||||
local cur cword prev
|
cur=${words[CURRENT]}
|
||||||
cur=${words[CURRENT-1]}
|
prev=${words[CURRENT-1]}
|
||||||
prev=${words[CURRENT-2]}
|
let cword=CURRENT-1
|
||||||
let cword=CURRENT-1
|
|
||||||
__${service}_main
|
if (( $+functions[__${service}_zsh_main] )); then
|
||||||
}
|
__${service}_zsh_main
|
||||||
let _ret && _default -S '' && _ret=0
|
else
|
||||||
|
emulate ksh -c __${service}_main
|
||||||
|
fi
|
||||||
|
|
||||||
|
let _ret && _default && _ret=0
|
||||||
return _ret
|
return _ret
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -33,8 +33,6 @@ esac
|
||||||
# returns location of .git repo
|
# returns location of .git repo
|
||||||
__gitdir ()
|
__gitdir ()
|
||||||
{
|
{
|
||||||
# Note: this function is duplicated in git-prompt.sh
|
|
||||||
# When updating it, make sure you update the other one to match.
|
|
||||||
if [ -z "${1-}" ]; then
|
if [ -z "${1-}" ]; then
|
||||||
if [ -n "${__git_dir-}" ]; then
|
if [ -n "${__git_dir-}" ]; then
|
||||||
echo "$__git_dir"
|
echo "$__git_dir"
|
||||||
|
|
@ -53,19 +51,6 @@ __gitdir ()
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
__gitcomp_1 ()
|
|
||||||
{
|
|
||||||
local c IFS=$' \t\n'
|
|
||||||
for c in $1; do
|
|
||||||
c="$c$2"
|
|
||||||
case $c in
|
|
||||||
--*=*|*.) ;;
|
|
||||||
*) c="$c " ;;
|
|
||||||
esac
|
|
||||||
printf '%s\n' "$c"
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
# The following function is based on code from:
|
# The following function is based on code from:
|
||||||
#
|
#
|
||||||
# bash_completion - programmable completion functions for bash 3.2+
|
# bash_completion - programmable completion functions for bash 3.2+
|
||||||
|
|
@ -195,8 +180,18 @@ _get_comp_words_by_ref ()
|
||||||
}
|
}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Generates completion reply with compgen, appending a space to possible
|
__gitcompadd ()
|
||||||
# completion words, if necessary.
|
{
|
||||||
|
local i=0
|
||||||
|
for x in $1; do
|
||||||
|
if [[ "$x" == "$3"* ]]; then
|
||||||
|
COMPREPLY[i++]="$2$x$4"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
# Generates completion reply, appending a space to possible completion words,
|
||||||
|
# if necessary.
|
||||||
# It accepts 1 to 4 arguments:
|
# It accepts 1 to 4 arguments:
|
||||||
# 1: List of possible completion words.
|
# 1: List of possible completion words.
|
||||||
# 2: A prefix to be added to each possible completion word (optional).
|
# 2: A prefix to be added to each possible completion word (optional).
|
||||||
|
|
@ -208,19 +203,25 @@ __gitcomp ()
|
||||||
|
|
||||||
case "$cur_" in
|
case "$cur_" in
|
||||||
--*=)
|
--*=)
|
||||||
COMPREPLY=()
|
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
local IFS=$'\n'
|
local c i=0 IFS=$' \t\n'
|
||||||
COMPREPLY=($(compgen -P "${2-}" \
|
for c in $1; do
|
||||||
-W "$(__gitcomp_1 "${1-}" "${4-}")" \
|
c="$c${4-}"
|
||||||
-- "$cur_"))
|
if [[ $c == "$cur_"* ]]; then
|
||||||
|
case $c in
|
||||||
|
--*=*|*.) ;;
|
||||||
|
*) c="$c " ;;
|
||||||
|
esac
|
||||||
|
COMPREPLY[i++]="${2-}$c"
|
||||||
|
fi
|
||||||
|
done
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
# Generates completion reply with compgen from newline-separated possible
|
# Generates completion reply from newline-separated possible completion words
|
||||||
# completion words by appending a space to all of them.
|
# by appending a space to all of them.
|
||||||
# It accepts 1 to 4 arguments:
|
# It accepts 1 to 4 arguments:
|
||||||
# 1: List of possible completion words, separated by a single newline.
|
# 1: List of possible completion words, separated by a single newline.
|
||||||
# 2: A prefix to be added to each possible completion word (optional).
|
# 2: A prefix to be added to each possible completion word (optional).
|
||||||
|
|
@ -231,7 +232,7 @@ __gitcomp ()
|
||||||
__gitcomp_nl ()
|
__gitcomp_nl ()
|
||||||
{
|
{
|
||||||
local IFS=$'\n'
|
local IFS=$'\n'
|
||||||
COMPREPLY=($(compgen -P "${2-}" -S "${4- }" -W "$1" -- "${3-$cur}"))
|
__gitcompadd "$1" "${2-}" "${3-$cur}" "${4- }"
|
||||||
}
|
}
|
||||||
|
|
||||||
# Generates completion reply with compgen from newline-separated possible
|
# Generates completion reply with compgen from newline-separated possible
|
||||||
|
|
@ -249,106 +250,50 @@ __gitcomp_file ()
|
||||||
# since tilde expansion is not applied.
|
# since tilde expansion is not applied.
|
||||||
# This means that COMPREPLY will be empty and Bash default
|
# This means that COMPREPLY will be empty and Bash default
|
||||||
# completion will be used.
|
# completion will be used.
|
||||||
COMPREPLY=($(compgen -P "${2-}" -W "$1" -- "${3-$cur}"))
|
__gitcompadd "$1" "${2-}" "${3-$cur}" ""
|
||||||
|
|
||||||
# Tell Bash that compspec generates filenames.
|
# use a hack to enable file mode in bash < 4
|
||||||
compopt -o filenames 2>/dev/null
|
compopt -o filenames +o nospace 2>/dev/null ||
|
||||||
|
compgen -f /non-existing-dir/ > /dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
__git_index_file_list_filter_compat ()
|
# Execute 'git ls-files', unless the --committable option is specified, in
|
||||||
{
|
# which case it runs 'git diff-index' to find out the files that can be
|
||||||
local path
|
# committed. It return paths relative to the directory specified in the first
|
||||||
|
# argument, and using the options specified in the second argument.
|
||||||
while read -r path; do
|
|
||||||
case "$path" in
|
|
||||||
?*/*) echo "${path%%/*}/" ;;
|
|
||||||
*) echo "$path" ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
__git_index_file_list_filter_bash ()
|
|
||||||
{
|
|
||||||
local path
|
|
||||||
|
|
||||||
while read -r path; do
|
|
||||||
case "$path" in
|
|
||||||
?*/*)
|
|
||||||
# XXX if we append a slash to directory names when using
|
|
||||||
# `compopt -o filenames`, Bash will append another slash.
|
|
||||||
# This is pretty stupid, and this the reason why we have to
|
|
||||||
# define a compatible version for this function.
|
|
||||||
echo "${path%%/*}" ;;
|
|
||||||
*)
|
|
||||||
echo "$path" ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
# Process path list returned by "ls-files" and "diff-index --name-only"
|
|
||||||
# commands, in order to list only file names relative to a specified
|
|
||||||
# directory, and append a slash to directory names.
|
|
||||||
__git_index_file_list_filter ()
|
|
||||||
{
|
|
||||||
# Default to Bash >= 4.x
|
|
||||||
__git_index_file_list_filter_bash
|
|
||||||
}
|
|
||||||
|
|
||||||
# Execute git ls-files, returning paths relative to the directory
|
|
||||||
# specified in the first argument, and using the options specified in
|
|
||||||
# the second argument.
|
|
||||||
__git_ls_files_helper ()
|
__git_ls_files_helper ()
|
||||||
{
|
{
|
||||||
(
|
(
|
||||||
test -n "${CDPATH+set}" && unset CDPATH
|
test -n "${CDPATH+set}" && unset CDPATH
|
||||||
# NOTE: $2 is not quoted in order to support multiple options
|
cd "$1"
|
||||||
cd "$1" && git ls-files --exclude-standard $2
|
if [ "$2" == "--committable" ]; then
|
||||||
|
git diff-index --name-only --relative HEAD
|
||||||
|
else
|
||||||
|
# NOTE: $2 is not quoted in order to support multiple options
|
||||||
|
git ls-files --exclude-standard $2
|
||||||
|
fi
|
||||||
) 2>/dev/null
|
) 2>/dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# Execute git diff-index, returning paths relative to the directory
|
|
||||||
# specified in the first argument, and using the tree object id
|
|
||||||
# specified in the second argument.
|
|
||||||
__git_diff_index_helper ()
|
|
||||||
{
|
|
||||||
(
|
|
||||||
test -n "${CDPATH+set}" && unset CDPATH
|
|
||||||
cd "$1" && git diff-index --name-only --relative "$2"
|
|
||||||
) 2>/dev/null
|
|
||||||
}
|
|
||||||
|
|
||||||
# __git_index_files accepts 1 or 2 arguments:
|
# __git_index_files accepts 1 or 2 arguments:
|
||||||
# 1: Options to pass to ls-files (required).
|
# 1: Options to pass to ls-files (required).
|
||||||
# Supported options are --cached, --modified, --deleted, --others,
|
|
||||||
# and --directory.
|
|
||||||
# 2: A directory path (optional).
|
# 2: A directory path (optional).
|
||||||
# If provided, only files within the specified directory are listed.
|
# If provided, only files within the specified directory are listed.
|
||||||
# Sub directories are never recursed. Path must have a trailing
|
# Sub directories are never recursed. Path must have a trailing
|
||||||
# slash.
|
# slash.
|
||||||
__git_index_files ()
|
__git_index_files ()
|
||||||
{
|
{
|
||||||
local dir="$(__gitdir)" root="${2-.}"
|
local dir="$(__gitdir)" root="${2-.}" file
|
||||||
|
|
||||||
if [ -d "$dir" ]; then
|
if [ -d "$dir" ]; then
|
||||||
__git_ls_files_helper "$root" "$1" | __git_index_file_list_filter |
|
__git_ls_files_helper "$root" "$1" |
|
||||||
sort | uniq
|
while read -r file; do
|
||||||
fi
|
case "$file" in
|
||||||
}
|
?*/*) echo "${file%%/*}" ;;
|
||||||
|
*) echo "$file" ;;
|
||||||
# __git_diff_index_files accepts 1 or 2 arguments:
|
esac
|
||||||
# 1) The id of a tree object.
|
done | sort | uniq
|
||||||
# 2) A directory path (optional).
|
|
||||||
# If provided, only files within the specified directory are listed.
|
|
||||||
# Sub directories are never recursed. Path must have a trailing
|
|
||||||
# slash.
|
|
||||||
__git_diff_index_files ()
|
|
||||||
{
|
|
||||||
local dir="$(__gitdir)" root="${2-.}"
|
|
||||||
|
|
||||||
if [ -d "$dir" ]; then
|
|
||||||
__git_diff_index_helper "$root" "$1" | __git_index_file_list_filter |
|
|
||||||
sort | uniq
|
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -424,14 +369,8 @@ __git_refs ()
|
||||||
done
|
done
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
git ls-remote "$dir" HEAD ORIG_HEAD 'refs/tags/*' 'refs/heads/*' 'refs/remotes/*' 2>/dev/null | \
|
echo "HEAD"
|
||||||
while read -r hash i; do
|
git for-each-ref --format="%(refname:short)" -- "refs/remotes/$dir/" | sed -e "s#^$dir/##"
|
||||||
case "$i" in
|
|
||||||
*^{}) ;;
|
|
||||||
refs/*) echo "${i#refs/*/}" ;;
|
|
||||||
*) echo "$i" ;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
@ -549,44 +488,23 @@ __git_complete_revlist_file ()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# __git_complete_index_file requires 1 argument: the options to pass to
|
# __git_complete_index_file requires 1 argument:
|
||||||
# ls-file
|
# 1: the options to pass to ls-file
|
||||||
|
#
|
||||||
|
# The exception is --committable, which finds the files appropriate commit.
|
||||||
__git_complete_index_file ()
|
__git_complete_index_file ()
|
||||||
{
|
{
|
||||||
local pfx cur_="$cur"
|
local pfx="" cur_="$cur"
|
||||||
|
|
||||||
case "$cur_" in
|
case "$cur_" in
|
||||||
?*/*)
|
?*/*)
|
||||||
pfx="${cur_%/*}"
|
pfx="${cur_%/*}"
|
||||||
cur_="${cur_##*/}"
|
cur_="${cur_##*/}"
|
||||||
pfx="${pfx}/"
|
pfx="${pfx}/"
|
||||||
|
|
||||||
__gitcomp_file "$(__git_index_files "$1" "$pfx")" "$pfx" "$cur_"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
__gitcomp_file "$(__git_index_files "$1")" "" "$cur_"
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
|
||||||
|
|
||||||
# __git_complete_diff_index_file requires 1 argument: the id of a tree
|
__gitcomp_file "$(__git_index_files "$1" "$pfx")" "$pfx" "$cur_"
|
||||||
# object
|
|
||||||
__git_complete_diff_index_file ()
|
|
||||||
{
|
|
||||||
local pfx cur_="$cur"
|
|
||||||
|
|
||||||
case "$cur_" in
|
|
||||||
?*/*)
|
|
||||||
pfx="${cur_%/*}"
|
|
||||||
cur_="${cur_##*/}"
|
|
||||||
pfx="${pfx}/"
|
|
||||||
|
|
||||||
__gitcomp_file "$(__git_diff_index_files "$1" "$pfx")" "$pfx" "$cur_"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
__gitcomp_file "$(__git_diff_index_files "$1")" "" "$cur_"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
}
|
}
|
||||||
|
|
||||||
__git_complete_file ()
|
__git_complete_file ()
|
||||||
|
|
@ -614,7 +532,6 @@ __git_complete_remote_or_refspec ()
|
||||||
case "$cmd" in
|
case "$cmd" in
|
||||||
push) no_complete_refspec=1 ;;
|
push) no_complete_refspec=1 ;;
|
||||||
fetch)
|
fetch)
|
||||||
COMPREPLY=()
|
|
||||||
return
|
return
|
||||||
;;
|
;;
|
||||||
*) ;;
|
*) ;;
|
||||||
|
|
@ -630,7 +547,6 @@ __git_complete_remote_or_refspec ()
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
if [ $no_complete_refspec = 1 ]; then
|
if [ $no_complete_refspec = 1 ]; then
|
||||||
COMPREPLY=()
|
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
[ "$remote" = "." ] && remote=
|
[ "$remote" = "." ] && remote=
|
||||||
|
|
@ -732,6 +648,7 @@ __git_list_porcelain_commands ()
|
||||||
cat-file) : plumbing;;
|
cat-file) : plumbing;;
|
||||||
check-attr) : plumbing;;
|
check-attr) : plumbing;;
|
||||||
check-ignore) : plumbing;;
|
check-ignore) : plumbing;;
|
||||||
|
check-mailmap) : plumbing;;
|
||||||
check-ref-format) : plumbing;;
|
check-ref-format) : plumbing;;
|
||||||
checkout-index) : plumbing;;
|
checkout-index) : plumbing;;
|
||||||
commit-tree) : plumbing;;
|
commit-tree) : plumbing;;
|
||||||
|
|
@ -951,7 +868,6 @@ _git_am ()
|
||||||
"
|
"
|
||||||
return
|
return
|
||||||
esac
|
esac
|
||||||
COMPREPLY=()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_git_apply ()
|
_git_apply ()
|
||||||
|
|
@ -971,7 +887,6 @@ _git_apply ()
|
||||||
"
|
"
|
||||||
return
|
return
|
||||||
esac
|
esac
|
||||||
COMPREPLY=()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_git_add ()
|
_git_add ()
|
||||||
|
|
@ -1031,7 +946,6 @@ _git_bisect ()
|
||||||
__gitcomp_nl "$(__git_refs)"
|
__gitcomp_nl "$(__git_refs)"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
COMPREPLY=()
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
@ -1124,9 +1038,14 @@ _git_cherry ()
|
||||||
|
|
||||||
_git_cherry_pick ()
|
_git_cherry_pick ()
|
||||||
{
|
{
|
||||||
|
local dir="$(__gitdir)"
|
||||||
|
if [ -f "$dir"/CHERRY_PICK_HEAD ]; then
|
||||||
|
__gitcomp "--continue --quit --abort"
|
||||||
|
return
|
||||||
|
fi
|
||||||
case "$cur" in
|
case "$cur" in
|
||||||
--*)
|
--*)
|
||||||
__gitcomp "--edit --no-commit"
|
__gitcomp "--edit --no-commit --signoff --strategy= --mainline"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
__gitcomp_nl "$(__git_refs)"
|
__gitcomp_nl "$(__git_refs)"
|
||||||
|
|
@ -1170,7 +1089,6 @@ _git_clone ()
|
||||||
return
|
return
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
COMPREPLY=()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_git_commit ()
|
_git_commit ()
|
||||||
|
|
@ -1182,13 +1100,6 @@ _git_commit ()
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
case "$prev" in
|
|
||||||
-c|-C)
|
|
||||||
__gitcomp_nl "$(__git_refs)" "" "${cur}"
|
|
||||||
return
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
case "$cur" in
|
case "$cur" in
|
||||||
--cleanup=*)
|
--cleanup=*)
|
||||||
__gitcomp "default strip verbatim whitespace
|
__gitcomp "default strip verbatim whitespace
|
||||||
|
|
@ -1218,7 +1129,7 @@ _git_commit ()
|
||||||
esac
|
esac
|
||||||
|
|
||||||
if git rev-parse --verify --quiet HEAD >/dev/null; then
|
if git rev-parse --verify --quiet HEAD >/dev/null; then
|
||||||
__git_complete_diff_index_file "HEAD"
|
__git_complete_index_file "--committable"
|
||||||
else
|
else
|
||||||
# This is the first commit
|
# This is the first commit
|
||||||
__git_complete_index_file "--cached"
|
__git_complete_index_file "--cached"
|
||||||
|
|
@ -1251,7 +1162,7 @@ __git_diff_common_options="--stat --numstat --shortstat --summary
|
||||||
--no-prefix --src-prefix= --dst-prefix=
|
--no-prefix --src-prefix= --dst-prefix=
|
||||||
--inter-hunk-context=
|
--inter-hunk-context=
|
||||||
--patience --histogram --minimal
|
--patience --histogram --minimal
|
||||||
--raw
|
--raw --word-diff
|
||||||
--dirstat --dirstat= --dirstat-by-file
|
--dirstat --dirstat= --dirstat-by-file
|
||||||
--dirstat-by-file= --cumulative
|
--dirstat-by-file= --cumulative
|
||||||
--diff-algorithm=
|
--diff-algorithm=
|
||||||
|
|
@ -1299,7 +1210,7 @@ _git_difftool ()
|
||||||
return
|
return
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
__git_complete_file
|
__git_complete_revlist_file
|
||||||
}
|
}
|
||||||
|
|
||||||
__git_fetch_options="
|
__git_fetch_options="
|
||||||
|
|
@ -1319,11 +1230,12 @@ _git_fetch ()
|
||||||
}
|
}
|
||||||
|
|
||||||
__git_format_patch_options="
|
__git_format_patch_options="
|
||||||
--stdout --attach --no-attach --thread --thread= --output-directory
|
--stdout --attach --no-attach --thread --thread= --no-thread
|
||||||
--numbered --start-number --numbered-files --keep-subject --signoff
|
--numbered --start-number --numbered-files --keep-subject --signoff
|
||||||
--signature --no-signature --in-reply-to= --cc= --full-index --binary
|
--signature --no-signature --in-reply-to= --cc= --full-index --binary
|
||||||
--not --all --cover-letter --no-prefix --src-prefix= --dst-prefix=
|
--not --all --cover-letter --no-prefix --src-prefix= --dst-prefix=
|
||||||
--inline --suffix= --ignore-if-in-upstream --subject-prefix=
|
--inline --suffix= --ignore-if-in-upstream --subject-prefix=
|
||||||
|
--output-directory --reroll-count --to= --quiet --notes
|
||||||
"
|
"
|
||||||
|
|
||||||
_git_format_patch ()
|
_git_format_patch ()
|
||||||
|
|
@ -1354,7 +1266,6 @@ _git_fsck ()
|
||||||
return
|
return
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
COMPREPLY=()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_git_gc ()
|
_git_gc ()
|
||||||
|
|
@ -1365,7 +1276,6 @@ _git_gc ()
|
||||||
return
|
return
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
COMPREPLY=()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_git_gitk ()
|
_git_gitk ()
|
||||||
|
|
@ -1442,7 +1352,6 @@ _git_init ()
|
||||||
return
|
return
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
COMPREPLY=()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_git_ls_files ()
|
_git_ls_files ()
|
||||||
|
|
@ -1578,7 +1487,6 @@ _git_mergetool ()
|
||||||
return
|
return
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
COMPREPLY=()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_git_merge_base ()
|
_git_merge_base ()
|
||||||
|
|
@ -1819,7 +1727,7 @@ __git_config_get_set_variables ()
|
||||||
_git_config ()
|
_git_config ()
|
||||||
{
|
{
|
||||||
case "$prev" in
|
case "$prev" in
|
||||||
branch.*.remote)
|
branch.*.remote|branch.*.pushremote)
|
||||||
__gitcomp_nl "$(__git_remotes)"
|
__gitcomp_nl "$(__git_remotes)"
|
||||||
return
|
return
|
||||||
;;
|
;;
|
||||||
|
|
@ -1827,11 +1735,19 @@ _git_config ()
|
||||||
__gitcomp_nl "$(__git_refs)"
|
__gitcomp_nl "$(__git_refs)"
|
||||||
return
|
return
|
||||||
;;
|
;;
|
||||||
|
branch.*.rebase)
|
||||||
|
__gitcomp "false true"
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
remote.pushdefault)
|
||||||
|
__gitcomp_nl "$(__git_remotes)"
|
||||||
|
return
|
||||||
|
;;
|
||||||
remote.*.fetch)
|
remote.*.fetch)
|
||||||
local remote="${prev#remote.}"
|
local remote="${prev#remote.}"
|
||||||
remote="${remote%.fetch}"
|
remote="${remote%.fetch}"
|
||||||
if [ -z "$cur" ]; then
|
if [ -z "$cur" ]; then
|
||||||
COMPREPLY=("refs/heads/")
|
__gitcomp_nl "refs/heads/" "" "" ""
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
__gitcomp_nl "$(__git_refs_remotes "$remote")"
|
__gitcomp_nl "$(__git_refs_remotes "$remote")"
|
||||||
|
|
@ -1866,6 +1782,10 @@ _git_config ()
|
||||||
"
|
"
|
||||||
return
|
return
|
||||||
;;
|
;;
|
||||||
|
diff.submodule)
|
||||||
|
__gitcomp "log short"
|
||||||
|
return
|
||||||
|
;;
|
||||||
help.format)
|
help.format)
|
||||||
__gitcomp "man info web html"
|
__gitcomp "man info web html"
|
||||||
return
|
return
|
||||||
|
|
@ -1891,7 +1811,6 @@ _git_config ()
|
||||||
return
|
return
|
||||||
;;
|
;;
|
||||||
*.*)
|
*.*)
|
||||||
COMPREPLY=()
|
|
||||||
return
|
return
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
@ -1908,7 +1827,7 @@ _git_config ()
|
||||||
;;
|
;;
|
||||||
branch.*.*)
|
branch.*.*)
|
||||||
local pfx="${cur%.*}." cur_="${cur##*.}"
|
local pfx="${cur%.*}." cur_="${cur##*.}"
|
||||||
__gitcomp "remote merge mergeoptions rebase" "$pfx" "$cur_"
|
__gitcomp "remote pushremote merge mergeoptions rebase" "$pfx" "$cur_"
|
||||||
return
|
return
|
||||||
;;
|
;;
|
||||||
branch.*)
|
branch.*)
|
||||||
|
|
@ -2039,7 +1958,6 @@ _git_config ()
|
||||||
core.fileMode
|
core.fileMode
|
||||||
core.fsyncobjectfiles
|
core.fsyncobjectfiles
|
||||||
core.gitProxy
|
core.gitProxy
|
||||||
core.ignoreCygwinFSTricks
|
|
||||||
core.ignoreStat
|
core.ignoreStat
|
||||||
core.ignorecase
|
core.ignorecase
|
||||||
core.logAllRefUpdates
|
core.logAllRefUpdates
|
||||||
|
|
@ -2061,13 +1979,14 @@ _git_config ()
|
||||||
core.whitespace
|
core.whitespace
|
||||||
core.worktree
|
core.worktree
|
||||||
diff.autorefreshindex
|
diff.autorefreshindex
|
||||||
diff.statGraphWidth
|
|
||||||
diff.external
|
diff.external
|
||||||
diff.ignoreSubmodules
|
diff.ignoreSubmodules
|
||||||
diff.mnemonicprefix
|
diff.mnemonicprefix
|
||||||
diff.noprefix
|
diff.noprefix
|
||||||
diff.renameLimit
|
diff.renameLimit
|
||||||
diff.renames
|
diff.renames
|
||||||
|
diff.statGraphWidth
|
||||||
|
diff.submodule
|
||||||
diff.suppressBlankEmpty
|
diff.suppressBlankEmpty
|
||||||
diff.tool
|
diff.tool
|
||||||
diff.wordRegex
|
diff.wordRegex
|
||||||
|
|
@ -2202,6 +2121,7 @@ _git_config ()
|
||||||
receive.fsckObjects
|
receive.fsckObjects
|
||||||
receive.unpackLimit
|
receive.unpackLimit
|
||||||
receive.updateserverinfo
|
receive.updateserverinfo
|
||||||
|
remote.pushdefault
|
||||||
remotes.
|
remotes.
|
||||||
repack.usedeltabaseoffset
|
repack.usedeltabaseoffset
|
||||||
rerere.autoupdate
|
rerere.autoupdate
|
||||||
|
|
@ -2272,7 +2192,6 @@ _git_remote ()
|
||||||
__gitcomp "$c"
|
__gitcomp "$c"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
COMPREPLY=()
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
@ -2356,7 +2275,7 @@ _git_show ()
|
||||||
return
|
return
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
__git_complete_file
|
__git_complete_revlist_file
|
||||||
}
|
}
|
||||||
|
|
||||||
_git_show_branch ()
|
_git_show_branch ()
|
||||||
|
|
@ -2388,8 +2307,6 @@ _git_stash ()
|
||||||
*)
|
*)
|
||||||
if [ -z "$(__git_find_on_cmdline "$save_opts")" ]; then
|
if [ -z "$(__git_find_on_cmdline "$save_opts")" ]; then
|
||||||
__gitcomp "$subcommands"
|
__gitcomp "$subcommands"
|
||||||
else
|
|
||||||
COMPREPLY=()
|
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
@ -2402,14 +2319,12 @@ _git_stash ()
|
||||||
__gitcomp "--index --quiet"
|
__gitcomp "--index --quiet"
|
||||||
;;
|
;;
|
||||||
show,--*|drop,--*|branch,--*)
|
show,--*|drop,--*|branch,--*)
|
||||||
COMPREPLY=()
|
|
||||||
;;
|
;;
|
||||||
show,*|apply,*|drop,*|pop,*|branch,*)
|
show,*|apply,*|drop,*|pop,*|branch,*)
|
||||||
__gitcomp_nl "$(git --git-dir="$(__gitdir)" stash list \
|
__gitcomp_nl "$(git --git-dir="$(__gitdir)" stash list \
|
||||||
| sed -n -e 's/:.*//p')"
|
| sed -n -e 's/:.*//p')"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
COMPREPLY=()
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
@ -2419,7 +2334,7 @@ _git_submodule ()
|
||||||
{
|
{
|
||||||
__git_has_doubledash && return
|
__git_has_doubledash && return
|
||||||
|
|
||||||
local subcommands="add status init update summary foreach sync"
|
local subcommands="add status init deinit update summary foreach sync"
|
||||||
if [ -z "$(__git_find_on_cmdline "$subcommands")" ]; then
|
if [ -z "$(__git_find_on_cmdline "$subcommands")" ]; then
|
||||||
case "$cur" in
|
case "$cur" in
|
||||||
--*)
|
--*)
|
||||||
|
|
@ -2451,7 +2366,7 @@ _git_svn ()
|
||||||
--no-metadata --use-svm-props --use-svnsync-props
|
--no-metadata --use-svm-props --use-svnsync-props
|
||||||
--log-window-size= --no-checkout --quiet
|
--log-window-size= --no-checkout --quiet
|
||||||
--repack-flags --use-log-author --localtime
|
--repack-flags --use-log-author --localtime
|
||||||
--ignore-paths= $remote_opts
|
--ignore-paths= --include-paths= $remote_opts
|
||||||
"
|
"
|
||||||
local init_opts="
|
local init_opts="
|
||||||
--template= --shared= --trunk= --tags=
|
--template= --shared= --trunk= --tags=
|
||||||
|
|
@ -2526,7 +2441,6 @@ _git_svn ()
|
||||||
__gitcomp "--revision= --parent"
|
__gitcomp "--revision= --parent"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
COMPREPLY=()
|
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
@ -2551,13 +2465,10 @@ _git_tag ()
|
||||||
|
|
||||||
case "$prev" in
|
case "$prev" in
|
||||||
-m|-F)
|
-m|-F)
|
||||||
COMPREPLY=()
|
|
||||||
;;
|
;;
|
||||||
-*|tag)
|
-*|tag)
|
||||||
if [ $f = 1 ]; then
|
if [ $f = 1 ]; then
|
||||||
__gitcomp_nl "$(__git_tags)"
|
__gitcomp_nl "$(__git_tags)"
|
||||||
else
|
|
||||||
COMPREPLY=()
|
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
|
|
@ -2579,9 +2490,10 @@ __git_main ()
|
||||||
i="${words[c]}"
|
i="${words[c]}"
|
||||||
case "$i" in
|
case "$i" in
|
||||||
--git-dir=*) __git_dir="${i#--git-dir=}" ;;
|
--git-dir=*) __git_dir="${i#--git-dir=}" ;;
|
||||||
|
--git-dir) ((c++)) ; __git_dir="${words[c]}" ;;
|
||||||
--bare) __git_dir="." ;;
|
--bare) __git_dir="." ;;
|
||||||
--help) command="help"; break ;;
|
--help) command="help"; break ;;
|
||||||
-c) c=$((++c)) ;;
|
-c|--work-tree|--namespace) ((c++)) ;;
|
||||||
-*) ;;
|
-*) ;;
|
||||||
*) command="$i"; break ;;
|
*) command="$i"; break ;;
|
||||||
esac
|
esac
|
||||||
|
|
@ -2599,6 +2511,7 @@ __git_main ()
|
||||||
--exec-path
|
--exec-path
|
||||||
--exec-path=
|
--exec-path=
|
||||||
--html-path
|
--html-path
|
||||||
|
--man-path
|
||||||
--info-path
|
--info-path
|
||||||
--work-tree=
|
--work-tree=
|
||||||
--namespace=
|
--namespace=
|
||||||
|
|
@ -2693,35 +2606,19 @@ if [[ -n ${ZSH_VERSION-} ]]; then
|
||||||
compadd -Q -p "${2-}" -f -- ${=1} && _ret=0
|
compadd -Q -p "${2-}" -f -- ${=1} && _ret=0
|
||||||
}
|
}
|
||||||
|
|
||||||
__git_zsh_helper ()
|
|
||||||
{
|
|
||||||
emulate -L ksh
|
|
||||||
local cur cword prev
|
|
||||||
cur=${words[CURRENT-1]}
|
|
||||||
prev=${words[CURRENT-2]}
|
|
||||||
let cword=CURRENT-1
|
|
||||||
__${service}_main
|
|
||||||
}
|
|
||||||
|
|
||||||
_git ()
|
_git ()
|
||||||
{
|
{
|
||||||
emulate -L zsh
|
local _ret=1 cur cword prev
|
||||||
local _ret=1
|
cur=${words[CURRENT]}
|
||||||
__git_zsh_helper
|
prev=${words[CURRENT-1]}
|
||||||
let _ret && _default -S '' && _ret=0
|
let cword=CURRENT-1
|
||||||
|
emulate ksh -c __${service}_main
|
||||||
|
let _ret && _default && _ret=0
|
||||||
return _ret
|
return _ret
|
||||||
}
|
}
|
||||||
|
|
||||||
compdef _git git gitk
|
compdef _git git gitk
|
||||||
return
|
return
|
||||||
elif [[ -n ${BASH_VERSION-} ]]; then
|
|
||||||
if ((${BASH_VERSINFO[0]} < 4)); then
|
|
||||||
# compopt is not supported
|
|
||||||
__git_index_file_list_filter ()
|
|
||||||
{
|
|
||||||
__git_index_file_list_filter_compat
|
|
||||||
}
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
__git_func_wrap ()
|
__git_func_wrap ()
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
# Copyright (C) 2006,2007 Shawn O. Pearce <spearce@spearce.org>
|
# Copyright (C) 2006,2007 Shawn O. Pearce <spearce@spearce.org>
|
||||||
# Distributed under the GNU General Public License, version 2.0.
|
# Distributed under the GNU General Public License, version 2.0.
|
||||||
#
|
#
|
||||||
# This script allows you to see the current branch in your prompt.
|
# This script allows you to see repository status in your prompt.
|
||||||
#
|
#
|
||||||
# To enable:
|
# To enable:
|
||||||
#
|
#
|
||||||
|
|
@ -13,23 +13,27 @@
|
||||||
# 3a) Change your PS1 to call __git_ps1 as
|
# 3a) Change your PS1 to call __git_ps1 as
|
||||||
# command-substitution:
|
# command-substitution:
|
||||||
# Bash: PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '
|
# Bash: PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '
|
||||||
# ZSH: PS1='[%n@%m %c$(__git_ps1 " (%s)")]\$ '
|
# ZSH: setopt PROMPT_SUBST ; PS1='[%n@%m %c$(__git_ps1 " (%s)")]\$ '
|
||||||
# the optional argument will be used as format string.
|
# the optional argument will be used as format string.
|
||||||
# 3b) Alternatively, if you are using bash, __git_ps1 can be
|
# 3b) Alternatively, for a slightly faster prompt, __git_ps1 can
|
||||||
# used for PROMPT_COMMAND with two parameters, <pre> and
|
# be used for PROMPT_COMMAND in Bash or for precmd() in Zsh
|
||||||
# <post>, which are strings you would put in $PS1 before
|
# with two parameters, <pre> and <post>, which are strings
|
||||||
# and after the status string generated by the git-prompt
|
# you would put in $PS1 before and after the status string
|
||||||
# machinery. e.g.
|
# generated by the git-prompt machinery. e.g.
|
||||||
# PROMPT_COMMAND='__git_ps1 "\u@\h:\w" "\\\$ "'
|
# Bash: PROMPT_COMMAND='__git_ps1 "\u@\h:\w" "\\\$ "'
|
||||||
# will show username, at-sign, host, colon, cwd, then
|
# will show username, at-sign, host, colon, cwd, then
|
||||||
# various status string, followed by dollar and SP, as
|
# various status string, followed by dollar and SP, as
|
||||||
# your prompt.
|
# your prompt.
|
||||||
|
# ZSH: precmd () { __git_ps1 "%n" ":%~$ " "|%s" }
|
||||||
|
# will show username, pipe, then various status string,
|
||||||
|
# followed by colon, cwd, dollar and SP, as your prompt.
|
||||||
# Optionally, you can supply a third argument with a printf
|
# Optionally, you can supply a third argument with a printf
|
||||||
# format string to finetune the output of the branch status
|
# format string to finetune the output of the branch status
|
||||||
#
|
#
|
||||||
# The argument to __git_ps1 will be displayed only if you are currently
|
# The repository status will be displayed only if you are currently in a
|
||||||
# in a git repository. The %s token will be the name of the current
|
# git repository. The %s token is the placeholder for the shown status.
|
||||||
# branch.
|
#
|
||||||
|
# The prompt status always includes the current branch name.
|
||||||
#
|
#
|
||||||
# In addition, if you set GIT_PS1_SHOWDIRTYSTATE to a nonempty value,
|
# In addition, if you set GIT_PS1_SHOWDIRTYSTATE to a nonempty value,
|
||||||
# unstaged (*) and staged (+) changes will be shown next to the branch
|
# unstaged (*) and staged (+) changes will be shown next to the branch
|
||||||
|
|
@ -77,31 +81,8 @@
|
||||||
#
|
#
|
||||||
# If you would like a colored hint about the current dirty state, set
|
# 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
|
# GIT_PS1_SHOWCOLORHINTS to a nonempty value. The colors are based on
|
||||||
# the colored output of "git status -sb".
|
# the colored output of "git status -sb" and are available only when
|
||||||
|
# using __git_ps1 for PROMPT_COMMAND or precmd.
|
||||||
# __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
|
# stores the divergence from upstream in $p
|
||||||
# used by GIT_PS1_SHOWUPSTREAM
|
# used by GIT_PS1_SHOWUPSTREAM
|
||||||
|
|
@ -124,7 +105,7 @@ __git_ps1_show_upstream ()
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
svn-remote.*.url)
|
svn-remote.*.url)
|
||||||
svn_remote[ $((${#svn_remote[@]} + 1)) ]="$value"
|
svn_remote[$((${#svn_remote[@]} + 1))]="$value"
|
||||||
svn_url_pattern+="\\|$value"
|
svn_url_pattern+="\\|$value"
|
||||||
upstream=svn+git # default upstream is SVN if available, else git
|
upstream=svn+git # default upstream is SVN if available, else git
|
||||||
;;
|
;;
|
||||||
|
|
@ -146,10 +127,11 @@ __git_ps1_show_upstream ()
|
||||||
svn*)
|
svn*)
|
||||||
# get the upstream from the "git-svn-id: ..." in a commit message
|
# get the upstream from the "git-svn-id: ..." in a commit message
|
||||||
# (git-svn uses essentially the same procedure internally)
|
# (git-svn uses essentially the same procedure internally)
|
||||||
local svn_upstream=($(git log --first-parent -1 \
|
local -a svn_upstream
|
||||||
|
svn_upstream=($(git log --first-parent -1 \
|
||||||
--grep="^git-svn-id: \(${svn_url_pattern#??}\)" 2>/dev/null))
|
--grep="^git-svn-id: \(${svn_url_pattern#??}\)" 2>/dev/null))
|
||||||
if [[ 0 -ne ${#svn_upstream[@]} ]]; then
|
if [[ 0 -ne ${#svn_upstream[@]} ]]; then
|
||||||
svn_upstream=${svn_upstream[ ${#svn_upstream[@]} - 2 ]}
|
svn_upstream=${svn_upstream[${#svn_upstream[@]} - 2]}
|
||||||
svn_upstream=${svn_upstream%@*}
|
svn_upstream=${svn_upstream%@*}
|
||||||
local n_stop="${#svn_remote[@]}"
|
local n_stop="${#svn_remote[@]}"
|
||||||
for ((n=1; n <= n_stop; n++)); do
|
for ((n=1; n <= n_stop; n++)); do
|
||||||
|
|
@ -222,6 +204,51 @@ __git_ps1_show_upstream ()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Helper function that is meant to be called from __git_ps1. It
|
||||||
|
# injects color codes into the appropriate gitstring variables used
|
||||||
|
# to build a gitstring.
|
||||||
|
__git_ps1_colorize_gitstring ()
|
||||||
|
{
|
||||||
|
if [[ -n ${ZSH_VERSION-} ]]; then
|
||||||
|
local c_red='%F{red}'
|
||||||
|
local c_green='%F{green}'
|
||||||
|
local c_lblue='%F{blue}'
|
||||||
|
local c_clear='%f'
|
||||||
|
else
|
||||||
|
# Using \[ and \] around colors is necessary to prevent
|
||||||
|
# issues with command line editing/browsing/completion!
|
||||||
|
local c_red='\[\e[31m\]'
|
||||||
|
local c_green='\[\e[32m\]'
|
||||||
|
local c_lblue='\[\e[1;34m\]'
|
||||||
|
local c_clear='\[\e[0m\]'
|
||||||
|
fi
|
||||||
|
local bad_color=$c_red
|
||||||
|
local ok_color=$c_green
|
||||||
|
local flags_color="$c_lblue"
|
||||||
|
|
||||||
|
local branch_color=""
|
||||||
|
if [ $detached = no ]; then
|
||||||
|
branch_color="$ok_color"
|
||||||
|
else
|
||||||
|
branch_color="$bad_color"
|
||||||
|
fi
|
||||||
|
c="$branch_color$c"
|
||||||
|
|
||||||
|
z="$c_clear$z"
|
||||||
|
if [ "$w" = "*" ]; then
|
||||||
|
w="$bad_color$w"
|
||||||
|
fi
|
||||||
|
if [ -n "$i" ]; then
|
||||||
|
i="$ok_color$i"
|
||||||
|
fi
|
||||||
|
if [ -n "$s" ]; then
|
||||||
|
s="$flags_color$s"
|
||||||
|
fi
|
||||||
|
if [ -n "$u" ]; then
|
||||||
|
u="$bad_color$u"
|
||||||
|
fi
|
||||||
|
r="$c_clear$r"
|
||||||
|
}
|
||||||
|
|
||||||
# __git_ps1 accepts 0 or 1 arguments (i.e., format string)
|
# __git_ps1 accepts 0 or 1 arguments (i.e., format string)
|
||||||
# when called from PS1 using command substitution
|
# when called from PS1 using command substitution
|
||||||
|
|
@ -254,39 +281,83 @@ __git_ps1 ()
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
local g="$(__gitdir)"
|
local repo_info rev_parse_exit_code
|
||||||
if [ -z "$g" ]; then
|
repo_info="$(git rev-parse --git-dir --is-inside-git-dir \
|
||||||
|
--is-bare-repository --is-inside-work-tree \
|
||||||
|
--short HEAD 2>/dev/null)"
|
||||||
|
rev_parse_exit_code="$?"
|
||||||
|
|
||||||
|
if [ -z "$repo_info" ]; then
|
||||||
if [ $pcmode = yes ]; then
|
if [ $pcmode = yes ]; then
|
||||||
#In PC mode PS1 always needs to be set
|
#In PC mode PS1 always needs to be set
|
||||||
PS1="$ps1pc_start$ps1pc_end"
|
PS1="$ps1pc_start$ps1pc_end"
|
||||||
fi
|
fi
|
||||||
else
|
return
|
||||||
local r=""
|
fi
|
||||||
local b=""
|
|
||||||
|
local short_sha
|
||||||
|
if [ "$rev_parse_exit_code" = "0" ]; then
|
||||||
|
short_sha="${repo_info##*$'\n'}"
|
||||||
|
repo_info="${repo_info%$'\n'*}"
|
||||||
|
fi
|
||||||
|
local inside_worktree="${repo_info##*$'\n'}"
|
||||||
|
repo_info="${repo_info%$'\n'*}"
|
||||||
|
local bare_repo="${repo_info##*$'\n'}"
|
||||||
|
repo_info="${repo_info%$'\n'*}"
|
||||||
|
local inside_gitdir="${repo_info##*$'\n'}"
|
||||||
|
local g="${repo_info%$'\n'*}"
|
||||||
|
|
||||||
|
local r=""
|
||||||
|
local b=""
|
||||||
|
local step=""
|
||||||
|
local total=""
|
||||||
|
if [ -d "$g/rebase-merge" ]; then
|
||||||
|
read b 2>/dev/null <"$g/rebase-merge/head-name"
|
||||||
|
read step 2>/dev/null <"$g/rebase-merge/msgnum"
|
||||||
|
read total 2>/dev/null <"$g/rebase-merge/end"
|
||||||
if [ -f "$g/rebase-merge/interactive" ]; then
|
if [ -f "$g/rebase-merge/interactive" ]; then
|
||||||
r="|REBASE-i"
|
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
|
else
|
||||||
if [ -d "$g/rebase-apply" ]; then
|
r="|REBASE-m"
|
||||||
if [ -f "$g/rebase-apply/rebasing" ]; then
|
fi
|
||||||
r="|REBASE"
|
else
|
||||||
elif [ -f "$g/rebase-apply/applying" ]; then
|
if [ -d "$g/rebase-apply" ]; then
|
||||||
r="|AM"
|
read step 2>/dev/null <"$g/rebase-apply/next"
|
||||||
else
|
read total 2>/dev/null <"$g/rebase-apply/last"
|
||||||
r="|AM/REBASE"
|
if [ -f "$g/rebase-apply/rebasing" ]; then
|
||||||
fi
|
read b 2>/dev/null <"$g/rebase-apply/head-name"
|
||||||
elif [ -f "$g/MERGE_HEAD" ]; then
|
r="|REBASE"
|
||||||
r="|MERGING"
|
elif [ -f "$g/rebase-apply/applying" ]; then
|
||||||
elif [ -f "$g/CHERRY_PICK_HEAD" ]; then
|
r="|AM"
|
||||||
r="|CHERRY-PICKING"
|
else
|
||||||
elif [ -f "$g/BISECT_LOG" ]; then
|
r="|AM/REBASE"
|
||||||
r="|BISECTING"
|
|
||||||
fi
|
fi
|
||||||
|
elif [ -f "$g/MERGE_HEAD" ]; then
|
||||||
|
r="|MERGING"
|
||||||
|
elif [ -f "$g/CHERRY_PICK_HEAD" ]; then
|
||||||
|
r="|CHERRY-PICKING"
|
||||||
|
elif [ -f "$g/REVERT_HEAD" ]; then
|
||||||
|
r="|REVERTING"
|
||||||
|
elif [ -f "$g/BISECT_LOG" ]; then
|
||||||
|
r="|BISECTING"
|
||||||
|
fi
|
||||||
|
|
||||||
b="$(git symbolic-ref HEAD 2>/dev/null)" || {
|
if [ -n "$b" ]; then
|
||||||
|
:
|
||||||
|
elif [ -h "$g/HEAD" ]; then
|
||||||
|
# symlink symbolic ref
|
||||||
|
b="$(git symbolic-ref HEAD 2>/dev/null)"
|
||||||
|
else
|
||||||
|
local head=""
|
||||||
|
if ! read head 2>/dev/null <"$g/HEAD"; then
|
||||||
|
if [ $pcmode = yes ]; then
|
||||||
|
PS1="$ps1pc_start$ps1pc_end"
|
||||||
|
fi
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
# is it a symbolic ref?
|
||||||
|
b="${head#ref: }"
|
||||||
|
if [ "$head" = "$b" ]; then
|
||||||
detached=yes
|
detached=yes
|
||||||
b="$(
|
b="$(
|
||||||
case "${GIT_PS1_DESCRIBE_STYLE-}" in
|
case "${GIT_PS1_DESCRIBE_STYLE-}" in
|
||||||
|
|
@ -300,100 +371,75 @@ __git_ps1 ()
|
||||||
git describe --tags --exact-match HEAD ;;
|
git describe --tags --exact-match HEAD ;;
|
||||||
esac 2>/dev/null)" ||
|
esac 2>/dev/null)" ||
|
||||||
|
|
||||||
b="$(cut -c1-7 "$g/HEAD" 2>/dev/null)..." ||
|
b="$short_sha..."
|
||||||
b="unknown"
|
|
||||||
b="($b)"
|
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
|
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
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -n "$step" ] && [ -n "$total" ]; then
|
||||||
|
r="$r $step/$total"
|
||||||
|
fi
|
||||||
|
|
||||||
|
local w=""
|
||||||
|
local i=""
|
||||||
|
local s=""
|
||||||
|
local u=""
|
||||||
|
local c=""
|
||||||
|
local p=""
|
||||||
|
|
||||||
|
if [ "true" = "$inside_gitdir" ]; then
|
||||||
|
if [ "true" = "$bare_repo" ]; then
|
||||||
|
c="BARE:"
|
||||||
|
else
|
||||||
|
b="GIT_DIR!"
|
||||||
|
fi
|
||||||
|
elif [ "true" = "$inside_worktree" ]; then
|
||||||
|
if [ -n "${GIT_PS1_SHOWDIRTYSTATE-}" ] &&
|
||||||
|
[ "$(git config --bool bash.showDirtyState)" != "false" ]
|
||||||
|
then
|
||||||
|
git diff --no-ext-diff --quiet --exit-code || w="*"
|
||||||
|
if [ -n "$short_sha" ]; then
|
||||||
|
git diff-index --cached --quiet HEAD -- || i="+"
|
||||||
|
else
|
||||||
|
i="#"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
if [ -n "${GIT_PS1_SHOWSTASHSTATE-}" ] &&
|
||||||
|
[ -r "$g/refs/stash" ]; then
|
||||||
|
s="$"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "${GIT_PS1_SHOWUNTRACKEDFILES-}" ] &&
|
||||||
|
[ "$(git config --bool bash.showUntrackedFiles)" != "false" ] &&
|
||||||
|
git ls-files --others --exclude-standard --error-unmatch -- '*' >/dev/null 2>/dev/null
|
||||||
|
then
|
||||||
|
u="%${ZSH_VERSION+%}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "${GIT_PS1_SHOWUPSTREAM-}" ]; then
|
||||||
|
__git_ps1_show_upstream
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
local z="${GIT_PS1_STATESEPARATOR-" "}"
|
||||||
|
|
||||||
|
# NO color option unless in PROMPT_COMMAND mode
|
||||||
|
if [ $pcmode = yes ] && [ -n "${GIT_PS1_SHOWCOLORHINTS-}" ]; then
|
||||||
|
__git_ps1_colorize_gitstring
|
||||||
|
fi
|
||||||
|
|
||||||
|
local f="$w$i$s$u"
|
||||||
|
local gitstring="$c${b##refs/heads/}${f:+$z$f}$r$p"
|
||||||
|
|
||||||
|
if [ $pcmode = yes ]; then
|
||||||
|
if [[ -n ${ZSH_VERSION-} ]]; then
|
||||||
|
gitstring=$(printf -- "$printf_format" "$gitstring")
|
||||||
|
else
|
||||||
|
printf -v gitstring -- "$printf_format" "$gitstring"
|
||||||
|
fi
|
||||||
|
PS1="$ps1pc_start$gitstring$ps1pc_end"
|
||||||
|
else
|
||||||
|
printf -- "$printf_format" "$gitstring"
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@ fi
|
||||||
#
|
#
|
||||||
# Use this when creating a new repo from scratch.
|
# Use this when creating a new repo from scratch.
|
||||||
empty_gh() { # [NAME_OF_REPO]
|
empty_gh() { # [NAME_OF_REPO]
|
||||||
repo = $1
|
repo=$1
|
||||||
ghuser=$( git config github.user )
|
ghuser=$( git config github.user )
|
||||||
|
|
||||||
mkdir "$repo"
|
mkdir "$repo"
|
||||||
|
|
@ -84,5 +84,14 @@ exist_gh() { # [DIRECTORY]
|
||||||
git push -u origin master
|
git push -u origin master
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# git.io "GitHub URL"
|
||||||
|
#
|
||||||
|
# Shorten GitHub url, example:
|
||||||
|
# https://github.com/nvogel/dotzsh > http://git.io/8nU25w
|
||||||
|
# source: https://github.com/nvogel/dotzsh
|
||||||
|
# documentation: https://github.com/blog/985-git-io-github-url-shortener
|
||||||
|
#
|
||||||
|
git.io() {curl -i -s http://git.io -F "url=$1" | grep "Location" | cut -f 2 -d " "}
|
||||||
|
|
||||||
# End Functions #############################################################
|
# End Functions #############################################################
|
||||||
|
|
||||||
|
|
|
||||||
1150
plugins/glassfish/_asadmin
Normal file
1150
plugins/glassfish/_asadmin
Normal file
File diff suppressed because it is too large
Load diff
3
plugins/glassfish/glassfish.plugin.zsh
Normal file
3
plugins/glassfish/glassfish.plugin.zsh
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
# if there is a user named 'glassfish' on the system, we'll assume
|
||||||
|
# that is the user asadmin should be run as
|
||||||
|
# grep -e '^glassfish' /etc/passwd > /dev/null && alias asadmin='sudo -u glassfish asadmin'
|
||||||
|
|
@ -1,151 +0,0 @@
|
||||||
# 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
|
|
||||||
1
plugins/go/go.plugin.zsh
Symbolic link
1
plugins/go/go.plugin.zsh
Symbolic link
|
|
@ -0,0 +1 @@
|
||||||
|
../golang/golang.plugin.zsh
|
||||||
|
|
@ -1,9 +1,10 @@
|
||||||
# From : http://golang.org/misc/zsh/go?m=text
|
# install in /etc/zsh/zshrc or your personal .zshrc
|
||||||
|
|
||||||
# gc
|
# gc
|
||||||
prefixes=(5 6 8)
|
prefixes=(5 6 8)
|
||||||
for p in $prefixes; do
|
for p in $prefixes; do
|
||||||
compctl -g "*.${p}" ${p}l
|
compctl -g "*.${p}" ${p}l
|
||||||
compctl -g "*.go" ${p}g
|
compctl -g "*.go" ${p}g
|
||||||
done
|
done
|
||||||
|
|
||||||
# standard go tools
|
# standard go tools
|
||||||
|
|
@ -19,6 +20,7 @@ __go_tool_complete() {
|
||||||
'build[compile packages and dependencies]'
|
'build[compile packages and dependencies]'
|
||||||
'clean[remove object files]'
|
'clean[remove object files]'
|
||||||
'doc[run godoc on package sources]'
|
'doc[run godoc on package sources]'
|
||||||
|
'env[print Go environment information]'
|
||||||
'fix[run go tool fix on packages]'
|
'fix[run go tool fix on packages]'
|
||||||
'fmt[run gofmt on package sources]'
|
'fmt[run gofmt on package sources]'
|
||||||
'get[download and install packages and dependencies]'
|
'get[download and install packages and dependencies]'
|
||||||
|
|
@ -39,12 +41,17 @@ __go_tool_complete() {
|
||||||
build_flags=(
|
build_flags=(
|
||||||
'-a[force reinstallation of packages that are already up-to-date]'
|
'-a[force reinstallation of packages that are already up-to-date]'
|
||||||
'-n[print the commands but do not run them]'
|
'-n[print the commands but do not run them]'
|
||||||
"-p[number of parallel builds]:number"
|
'-p[number of parallel builds]:number'
|
||||||
|
'-race[enable data race detection]'
|
||||||
'-x[print the commands]'
|
'-x[print the commands]'
|
||||||
"-work[print temporary directory name and keep it]"
|
'-work[print temporary directory name and keep it]'
|
||||||
"-gcflags[flags for 5g/6g/8g]:flags"
|
'-ccflags[flags for 5c/6c/8c]:flags'
|
||||||
"-ldflags[flags for 5l/6l/8l]:flags"
|
'-gcflags[flags for 5g/6g/8g]:flags'
|
||||||
"-gccgoflags[flags for gccgo]:flags"
|
'-ldflags[flags for 5l/6l/8l]:flags'
|
||||||
|
'-gccgoflags[flags for gccgo]:flags'
|
||||||
|
'-compiler[name of compiler to use]:name'
|
||||||
|
'-installsuffix[suffix to add to package directory]:suffix'
|
||||||
|
'-tags[list of build tags to consider satisfied]:tags'
|
||||||
)
|
)
|
||||||
__go_list() {
|
__go_list() {
|
||||||
local expl importpaths
|
local expl importpaths
|
||||||
|
|
@ -62,7 +69,7 @@ __go_tool_complete() {
|
||||||
install)
|
install)
|
||||||
_arguments -s -w : ${build_flags[@]} \
|
_arguments -s -w : ${build_flags[@]} \
|
||||||
"-v[show package names]" \
|
"-v[show package names]" \
|
||||||
'*:importpaths:__go_list'
|
'*:importpaths:__go_list'
|
||||||
;;
|
;;
|
||||||
get)
|
get)
|
||||||
_arguments -s -w : \
|
_arguments -s -w : \
|
||||||
|
|
@ -87,7 +94,10 @@ __go_tool_complete() {
|
||||||
"-cpu[values of GOMAXPROCS to use]:number list" \
|
"-cpu[values of GOMAXPROCS to use]:number list" \
|
||||||
"-run[run tests and examples matching regexp]:regexp" \
|
"-run[run tests and examples matching regexp]:regexp" \
|
||||||
"-bench[run benchmarks matching regexp]:regexp" \
|
"-bench[run benchmarks matching regexp]:regexp" \
|
||||||
"-benchtime[run each benchmark during n seconds]:duration" \
|
"-benchmem[print memory allocation stats]" \
|
||||||
|
"-benchtime[run each benchmark until taking this long]:duration" \
|
||||||
|
"-blockprofile[write goroutine blocking profile to file]:file" \
|
||||||
|
"-blockprofilerate[set sampling rate of goroutine blocking profile]:number" \
|
||||||
"-timeout[kill test after that duration]:duration" \
|
"-timeout[kill test after that duration]:duration" \
|
||||||
"-cpuprofile[write CPU profile to file]:file:_files" \
|
"-cpuprofile[write CPU profile to file]:file:_files" \
|
||||||
"-memprofile[write heap profile to file]:file:_files" \
|
"-memprofile[write heap profile to file]:file:_files" \
|
||||||
|
|
@ -97,7 +107,7 @@ __go_tool_complete() {
|
||||||
help)
|
help)
|
||||||
_values "${commands[@]}" \
|
_values "${commands[@]}" \
|
||||||
'gopath[GOPATH environment variable]' \
|
'gopath[GOPATH environment variable]' \
|
||||||
'importpath[description of import paths]' \
|
'packages[description of package lists]' \
|
||||||
'remote[remote import path syntax]' \
|
'remote[remote import path syntax]' \
|
||||||
'testflag[description of testing flags]' \
|
'testflag[description of testing flags]' \
|
||||||
'testfunc[description of testing functions]'
|
'testfunc[description of testing functions]'
|
||||||
|
|
@ -147,4 +157,7 @@ __go_tool_complete() {
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
compdef __go_tool_complete go
|
compdef __go_tool_complete go
|
||||||
|
|
||||||
|
# aliases
|
||||||
|
alias gfa='go fmt . ./...'
|
||||||
|
|
|
||||||
|
|
@ -60,7 +60,7 @@ function in_gradle() {
|
||||||
############################################################################
|
############################################################################
|
||||||
_gradle_does_task_list_need_generating () {
|
_gradle_does_task_list_need_generating () {
|
||||||
[ ! -f .gradletasknamecache ] && return 0;
|
[ ! -f .gradletasknamecache ] && return 0;
|
||||||
[ .gradletasknamecache -nt build.gradle ] && return 0;
|
[ build.gradle -nt .gradletasknamecache ] && return 0;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
0
plugins/grails/grails.plugin.zsh
Executable file → Normal file
0
plugins/grails/grails.plugin.zsh
Executable file → Normal file
|
|
@ -163,8 +163,13 @@ function history-substring-search-down() {
|
||||||
zle -N history-substring-search-up
|
zle -N history-substring-search-up
|
||||||
zle -N history-substring-search-down
|
zle -N history-substring-search-down
|
||||||
|
|
||||||
bindkey '\e[A' history-substring-search-up
|
zmodload zsh/terminfo
|
||||||
bindkey '\e[B' history-substring-search-down
|
if [[ -n "$terminfo[kcuu1]" ]]; then
|
||||||
|
bindkey "$terminfo[kcuu1]" history-substring-search-up
|
||||||
|
fi
|
||||||
|
if [[ -n "$terminfo[kcud1]" ]]; then
|
||||||
|
bindkey "$terminfo[kcud1]" history-substring-search-down
|
||||||
|
fi
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
# implementation details
|
# implementation details
|
||||||
|
|
|
||||||
|
|
@ -29,15 +29,23 @@ open_jira_issue () {
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -f .jira-prefix ]; then
|
||||||
|
jira_prefix=$(cat .jira-prefix)
|
||||||
|
elif [ -f ~/.jira-prefix ]; then
|
||||||
|
jira_prefix=$(cat ~/.jira-prefix)
|
||||||
|
else
|
||||||
|
jira_prefix=""
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -z "$1" ]; then
|
if [ -z "$1" ]; then
|
||||||
echo "Opening new issue"
|
echo "Opening new issue"
|
||||||
$open_cmd "$jira_url/secure/CreateIssue!default.jspa"
|
$open_cmd "$jira_url/secure/CreateIssue!default.jspa"
|
||||||
else
|
else
|
||||||
echo "Opening issue #$1"
|
echo "Opening issue #$1"
|
||||||
if [[ "x$JIRA_RAPID_BOARD" = "xtrue" ]]; then
|
if [[ "x$JIRA_RAPID_BOARD" = "xtrue" ]]; then
|
||||||
$open_cmd "$jira_url/issues/$1"
|
$open_cmd "$jira_url/issues/$jira_prefix$1"
|
||||||
else
|
else
|
||||||
$open_cmd "$jira_url/browse/$1"
|
$open_cmd "$jira_url/browse/$jira_prefix$1"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
|
||||||
0
plugins/jruby/jruby.plugin.zsh
Executable file → Normal file
0
plugins/jruby/jruby.plugin.zsh
Executable file → Normal file
42
plugins/jsontools/README.md
Normal file
42
plugins/jsontools/README.md
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
# jsontools
|
||||||
|
|
||||||
|
Handy command line tools for dealing with json data.
|
||||||
|
|
||||||
|
## Tools
|
||||||
|
|
||||||
|
- **pp_json** - pretty prints json
|
||||||
|
- **is_json** - returns true if valid json; false otherwise
|
||||||
|
- **urlencode_json** - returns a url encoded string for the given json
|
||||||
|
- **urldecode_json** - returns decoded json for the given url encoded string
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
Usage is simple...just take your json data and pipe it into the appropriate jsontool.
|
||||||
|
```sh
|
||||||
|
<json data> | <jsontools tool>
|
||||||
|
```
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
##### pp_json
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# curl json data and pretty print the results
|
||||||
|
curl https://coderwall.com/bobwilliams.json | pp_json
|
||||||
|
```
|
||||||
|
|
||||||
|
##### is_json
|
||||||
|
```sh
|
||||||
|
# pretty print the contents of an existing json file
|
||||||
|
less data.json | is_json
|
||||||
|
```
|
||||||
|
|
||||||
|
##### urlencode_json
|
||||||
|
```sh
|
||||||
|
# json data directly from the command line
|
||||||
|
echo '{"b":2, "a":1}' | urlencode_json
|
||||||
|
```
|
||||||
|
|
||||||
|
##### urldecode_json
|
||||||
|
```sh
|
||||||
|
# url encoded string to decode
|
||||||
|
echo '%7B%22b%22:2,%20%22a%22:1%7D%0A' | urldecode_json
|
||||||
|
```
|
||||||
39
plugins/jsontools/jsontools.plugin.zsh
Normal file
39
plugins/jsontools/jsontools.plugin.zsh
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
# JSON Tools
|
||||||
|
# Adds command line aliases useful for dealing with JSON
|
||||||
|
|
||||||
|
if [[ $(whence $JSONTOOLS_METHOD) = "" ]]; then
|
||||||
|
JSONTOOLS_METHOD=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ $(whence node) != "" && ( "x$JSONTOOLS_METHOD" = "x" || "x$JSONTOOLS_METHOD" = "xnode" ) ]]; then
|
||||||
|
alias pp_json='xargs -0 node -e "console.log(JSON.stringify(JSON.parse(process.argv[1]), null, 4));"'
|
||||||
|
alias is_json='xargs -0 node -e "try {json = JSON.parse(process.argv[1]);} catch (e) { console.log(false); json = null; } if(json) { console.log(true); }"'
|
||||||
|
alias urlencode_json='xargs -0 node -e "console.log(encodeURIComponent(process.argv[1]))"'
|
||||||
|
alias urldecode_json='xargs -0 node -e "console.log(decodeURIComponent(process.argv[1]))"'
|
||||||
|
elif [[ $(whence python) != "" && ( "x$JSONTOOLS_METHOD" = "x" || "x$JSONTOOLS_METHOD" = "xpython" ) ]]; then
|
||||||
|
alias pp_json='python -mjson.tool'
|
||||||
|
alias is_json='python -c "
|
||||||
|
import json, sys;
|
||||||
|
try:
|
||||||
|
json.loads(sys.stdin.read())
|
||||||
|
except ValueError, e:
|
||||||
|
print False
|
||||||
|
else:
|
||||||
|
print True
|
||||||
|
sys.exit(0)"'
|
||||||
|
alias urlencode_json='python -c "
|
||||||
|
import urllib, json, sys;
|
||||||
|
print urllib.quote_plus(sys.stdin.read())
|
||||||
|
sys.exit(0)"'
|
||||||
|
alias urldecode_json='python -c "
|
||||||
|
import urllib, json, sys;
|
||||||
|
print urllib.unquote_plus(sys.stdin.read())
|
||||||
|
sys.exit(0)"'
|
||||||
|
elif [[ $(whence ruby) != "" && ( "x$JSONTOOLS_METHOD" = "x" || "x$JSONTOOLS_METHOD" = "xruby" ) ]]; then
|
||||||
|
alias pp_json='ruby -e "require \"json\"; require \"yaml\"; puts JSON.parse(STDIN.read).to_yaml"'
|
||||||
|
alias is_json='ruby -e "require \"json\"; begin; JSON.parse(STDIN.read); puts true; rescue Exception => e; puts false; end"'
|
||||||
|
alias urlencode_json='ruby -e "require \"uri\"; puts URI.escape(STDIN.read)"'
|
||||||
|
alias urldecode_json='ruby -e "require \"uri\"; puts URI.unescape(STDIN.read)"'
|
||||||
|
fi
|
||||||
|
|
||||||
|
unset JSONTOOLS_METHOD
|
||||||
|
|
@ -39,7 +39,7 @@ marks() {
|
||||||
|
|
||||||
_completemarks() {
|
_completemarks() {
|
||||||
if [[ $(ls "${MARKPATH}" | wc -l) -gt 1 ]]; then
|
if [[ $(ls "${MARKPATH}" | wc -l) -gt 1 ]]; then
|
||||||
reply=($(ls $MARKPATH/**/*(-) | grep : | sed -E 's/(.*)\/([_\da-zA-Z\-]*):$/\2/g'))
|
reply=($(ls $MARKPATH/**/*(-) | grep : | sed -E 's/(.*)\/([_a-zA-Z0-9\.\-]*):$/\2/g'))
|
||||||
else
|
else
|
||||||
if readlink -e "${MARKPATH}"/* &>/dev/null; then
|
if readlink -e "${MARKPATH}"/* &>/dev/null; then
|
||||||
reply=($(ls "${MARKPATH}"))
|
reply=($(ls "${MARKPATH}"))
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ _knife() {
|
||||||
|
|
||||||
case $state in
|
case $state in
|
||||||
knifecmd)
|
knifecmd)
|
||||||
compadd -Q "$@" bootstrap client configure cookbook "cookbook site" "data bag" diff exec environment index node recipe role search ssh status upload windows $cloudproviders
|
compadd -Q "$@" bootstrap client configure cookbook "cookbook site" "data bag" diff exec environment index node recipe role search ssh status upload vault windows $cloudproviders
|
||||||
;;
|
;;
|
||||||
knifesubcmd)
|
knifesubcmd)
|
||||||
case $words[2] in
|
case $words[2] in
|
||||||
|
|
@ -65,6 +65,9 @@ _knife() {
|
||||||
upload)
|
upload)
|
||||||
_arguments '*:file or directory:_files -g "*"'
|
_arguments '*:file or directory:_files -g "*"'
|
||||||
;;
|
;;
|
||||||
|
vault)
|
||||||
|
compadd -Q "$@" create decrypt delete edit remove "rotate all keys" "rotate keys" show update
|
||||||
|
;;
|
||||||
windows)
|
windows)
|
||||||
compadd "$@" bootstrap
|
compadd "$@" bootstrap
|
||||||
;;
|
;;
|
||||||
|
|
|
||||||
20
plugins/laravel4/laravel4.plugin.zsh
Normal file
20
plugins/laravel4/laravel4.plugin.zsh
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
# Laravel4 basic command completion
|
||||||
|
_laravel4_get_command_list () {
|
||||||
|
php artisan --no-ansi | sed "1,/Available commands/d" | awk '/^ [a-z]+/ { print $1 }'
|
||||||
|
}
|
||||||
|
|
||||||
|
_laravel4 () {
|
||||||
|
if [ -f artisan ]; then
|
||||||
|
compadd `_laravel4_get_command_list`
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
compdef _laravel4 artisan
|
||||||
|
compdef _laravel4 la4
|
||||||
|
|
||||||
|
#Alias
|
||||||
|
alias la4='php artisan'
|
||||||
|
|
||||||
|
alias la4dump='php artisan dump-autoload'
|
||||||
|
alias la4cache='php artisan cache:clear'
|
||||||
|
alias la4routes='php artisan routes'
|
||||||
|
|
@ -36,3 +36,15 @@ alias nomnom='killall'
|
||||||
alias byes='exit'
|
alias byes='exit'
|
||||||
alias cya='reboot'
|
alias cya='reboot'
|
||||||
alias kthxbai='halt'
|
alias kthxbai='halt'
|
||||||
|
|
||||||
|
alias pwned='ssh'
|
||||||
|
|
||||||
|
alias hackzor='git init'
|
||||||
|
alias rulz='git push'
|
||||||
|
alias bringz='git pull'
|
||||||
|
alias chicken='git add'
|
||||||
|
alias oanward='git commit -m'
|
||||||
|
alias ooanward='git commit -am'
|
||||||
|
alias letcat='git checkout'
|
||||||
|
alias violenz='git rebase'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,9 +13,11 @@ alias hglr='hg pull --rebase'
|
||||||
alias hgo='hg outgoing'
|
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" '
|
alias hgsl='hg 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'
|
||||||
|
# list unresolved files (since hg does not list unmerged files in the status command)
|
||||||
|
alias hgun='hg resolve --list'
|
||||||
|
|
||||||
function in_hg() {
|
function in_hg() {
|
||||||
if [[ -d .hg ]] || $(hg summary > /dev/null 2>&1); then
|
if [[ -d .hg ]] || $(hg summary > /dev/null 2>&1); then
|
||||||
|
|
|
||||||
48
plugins/meteor/_meteor
Normal file
48
plugins/meteor/_meteor
Normal file
|
|
@ -0,0 +1,48 @@
|
||||||
|
#compdef meteor
|
||||||
|
#autoload
|
||||||
|
|
||||||
|
# Meteor Autocomplete plugin for Oh-My-Zsh, based on homebrew completion
|
||||||
|
# Original author: Dimitri JORGE (https://github.com/jorge-d)
|
||||||
|
|
||||||
|
_meteor_all_packages() {
|
||||||
|
packages=(`meteor list | cut -d" " -f1`)
|
||||||
|
}
|
||||||
|
_meteor_installed_packages() {
|
||||||
|
installed_packages=(`meteor list --using`)
|
||||||
|
}
|
||||||
|
|
||||||
|
local -a _1st_arguments
|
||||||
|
_1st_arguments=(
|
||||||
|
'run:[Default] Run this project in local development mode'
|
||||||
|
'create:Create a new project'
|
||||||
|
'update:Upgrade this project to the latest version of Meteor'
|
||||||
|
'add:Add a package to this project'
|
||||||
|
'remove:Remove a package from this project'
|
||||||
|
'list:List available packages'
|
||||||
|
'help:Display Meteor help'
|
||||||
|
'bundle:Pack this project up into a tarball'
|
||||||
|
'mongo:Connect to the Mongo database for the specified site'
|
||||||
|
'deploy:Deploy this project to Meteor'
|
||||||
|
'logs:Show logs for specified site'
|
||||||
|
'reset:Reset the project state. Erases the local database.'
|
||||||
|
'test-packages:Test one or more packages'
|
||||||
|
)
|
||||||
|
|
||||||
|
local expl
|
||||||
|
local -a packages installed_packages
|
||||||
|
|
||||||
|
if (( CURRENT == 2 )); then
|
||||||
|
_describe -t commands "meteor subcommand" _1st_arguments
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$words[2]" in
|
||||||
|
help)
|
||||||
|
_describe -t commands "meteor subcommand" _1st_arguments ;;
|
||||||
|
remove)
|
||||||
|
_meteor_installed_packages
|
||||||
|
_wanted installed_packages expl 'installed packages' compadd -a installed_packages ;;
|
||||||
|
add)
|
||||||
|
_meteor_all_packages
|
||||||
|
_wanted packages expl 'all packages' compadd -a packages ;;
|
||||||
|
esac
|
||||||
|
|
@ -44,14 +44,22 @@ mvn-color()
|
||||||
# aliases
|
# aliases
|
||||||
alias mvncie='mvn clean install eclipse:eclipse'
|
alias mvncie='mvn clean install eclipse:eclipse'
|
||||||
alias mvnci='mvn clean install'
|
alias mvnci='mvn clean install'
|
||||||
|
alias mvncist='mvn clean install -DskipTests'
|
||||||
alias mvne='mvn eclipse:eclipse'
|
alias mvne='mvn eclipse:eclipse'
|
||||||
alias mvnce='mvn clean eclipse:clean eclipse:eclipse'
|
alias mvnce='mvn clean eclipse:clean eclipse:eclipse'
|
||||||
alias mvnd='mvn deploy'
|
alias mvnd='mvn deploy'
|
||||||
alias mvnp='mvn package'
|
alias mvnp='mvn package'
|
||||||
alias mvnc='mvn clean'
|
alias mvnc='mvn clean'
|
||||||
alias mvncom='mvn compile'
|
alias mvncom='mvn compile'
|
||||||
|
alias mvnct='mvn clean test'
|
||||||
alias mvnt='mvn test'
|
alias mvnt='mvn test'
|
||||||
alias mvnag='mvn archetype:generate'
|
alias mvnag='mvn archetype:generate'
|
||||||
|
alias mvn-updates='mvn versions:display-dependency-updates'
|
||||||
|
alias mvntc7='mvn tomcat7:run'
|
||||||
|
alias mvntc='mvn tomcat:run'
|
||||||
|
alias mvnjetty='mvn jetty:run'
|
||||||
|
alias mvndt='mvn dependency:tree'
|
||||||
|
alias mvns='mvn site'
|
||||||
|
|
||||||
function listMavenCompletions {
|
function listMavenCompletions {
|
||||||
reply=(
|
reply=(
|
||||||
|
|
@ -121,6 +129,8 @@ function listMavenCompletions {
|
||||||
tomcat6:run tomcat6:run-war tomcat6:run-war-only tomcat6:stop tomcat6:deploy tomcat6:undeploy
|
tomcat6:run tomcat6:run-war tomcat6:run-war-only tomcat6:stop tomcat6:deploy tomcat6:undeploy
|
||||||
# tomcat7
|
# tomcat7
|
||||||
tomcat7:run tomcat7:run-war tomcat7:run-war-only tomcat7:deploy
|
tomcat7:run tomcat7:run-war tomcat7:run-war-only tomcat7:deploy
|
||||||
|
# spring-boot
|
||||||
|
spring-boot:run spring-boot:repackage
|
||||||
# exec
|
# exec
|
||||||
exec:exec exec:java
|
exec:exec exec:java
|
||||||
# versions
|
# versions
|
||||||
|
|
|
||||||
|
|
@ -174,20 +174,23 @@ function itunes() {
|
||||||
next|previous)
|
next|previous)
|
||||||
opt="$opt track"
|
opt="$opt track"
|
||||||
;;
|
;;
|
||||||
|
vol)
|
||||||
|
opt="set sound volume to $1" #$1 Due to the shift
|
||||||
|
;;
|
||||||
""|-h|--help)
|
""|-h|--help)
|
||||||
echo "Usage: itunes <option>"
|
echo "Usage: itunes <option>"
|
||||||
echo "option:"
|
echo "option:"
|
||||||
echo "\tlaunch|play|pause|stop|rewind|resume|quit"
|
echo "\tlaunch|play|pause|stop|rewind|resume|quit"
|
||||||
echo "\tmute|unmute\tcontrol volume set"
|
echo "\tmute|unmute\tcontrol volume set"
|
||||||
echo "\tnext|previous\tplay next or previous track"
|
echo "\tnext|previous\tplay next or previous track"
|
||||||
|
echo "\tvol\tSet the volume, takes an argument from 0 to 100"
|
||||||
echo "\thelp\tshow this message and exit"
|
echo "\thelp\tshow this message and exit"
|
||||||
return 0
|
return 0
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
print "Unkonwn option: $opt"
|
print "Unknown option: $opt"
|
||||||
return 1
|
return 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
osascript -e "tell application \"iTunes\" to $opt"
|
osascript -e "tell application \"iTunes\" to $opt"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
56
plugins/per-directory-history/README.md
Normal file
56
plugins/per-directory-history/README.md
Normal file
|
|
@ -0,0 +1,56 @@
|
||||||
|
[Per-Directory-History][6]
|
||||||
|
=========================
|
||||||
|
|
||||||
|
Per directory history for zsh, as well as global history, and the
|
||||||
|
ability to toggle between them with ^G.
|
||||||
|
|
||||||
|
This is a implementation of per directory history for zsh, some
|
||||||
|
implementations of which exist in bash[1][],[2][]. It also implements
|
||||||
|
a per-directory-history-toggle-history function to change from using the
|
||||||
|
directory history to using the global history. In both cases the history is
|
||||||
|
always saved to both the global history and the directory history, so the
|
||||||
|
toggle state will not effect the saved histories. Being able to switch
|
||||||
|
between global and directory histories on the fly is a novel feature as far
|
||||||
|
as I am aware.
|
||||||
|
|
||||||
|
This is a standalone repository for the script, however it is also included in
|
||||||
|
[oh-my-zsh][4] as a plugin.
|
||||||
|
|
||||||
|
----------------------------------------------------------------------------
|
||||||
|
Usage
|
||||||
|
----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
1. Load this script into your interactive ZSH session:
|
||||||
|
|
||||||
|
% source zsh-per-directory-history.zsh
|
||||||
|
|
||||||
|
2. The default mode if per directory history, interact with your history as normal.
|
||||||
|
|
||||||
|
3. Press ^G (the Control and G keys simultaneously) to toggle between local
|
||||||
|
and global histories.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
Configuration
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
* HISTORY_BASE a global variable that defines the base directory in which the
|
||||||
|
directory histories are stored
|
||||||
|
* per-directory-history-toggle-history is the function to toggle the history
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
History
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
The idea/inspiration for a per directory history is from [Stewart MacArthur][1]
|
||||||
|
and [Dieter][2], the implementation idea is from [Bart Schaefer][3]. The
|
||||||
|
implementation is by [Jim Hester][5] in September 2012.
|
||||||
|
|
||||||
|
[1]: http://www.compbiome.com/2010/07/bash-per-directory-bash-history.html
|
||||||
|
[2]: http://dieter.plaetinck.be/per_directory_bash
|
||||||
|
[3]: http://www.zsh.org/mla/users/1997/msg00226.html
|
||||||
|
[4]: https://github.com/robbyrussell/oh-my-zsh
|
||||||
|
[5]: http://jimhester.com
|
||||||
|
[6]: http://github.com/jimhester/per-directory-history
|
||||||
|
|
||||||
|
|
@ -1,149 +0,0 @@
|
||||||
#!/usr/bin/env zsh
|
|
||||||
#
|
|
||||||
# This is a implementation of per directory history for zsh, some
|
|
||||||
# implementations of which exist in bash[1,2]. It also implements
|
|
||||||
# a per-directory-history-toggle-history function to change from using the
|
|
||||||
# directory history to using the global history. In both cases the history is
|
|
||||||
# always saved to both the global history and the directory history, so the
|
|
||||||
# toggle state will not effect the saved histories. Being able to switch
|
|
||||||
# between global and directory histories on the fly is a novel feature as far
|
|
||||||
# as I am aware.
|
|
||||||
#
|
|
||||||
#-------------------------------------------------------------------------------
|
|
||||||
# Configuration
|
|
||||||
#-------------------------------------------------------------------------------
|
|
||||||
#
|
|
||||||
# HISTORY_BASE a global variable that defines the base directory in which the
|
|
||||||
# directory histories are stored
|
|
||||||
#
|
|
||||||
#-------------------------------------------------------------------------------
|
|
||||||
# History
|
|
||||||
#-------------------------------------------------------------------------------
|
|
||||||
#
|
|
||||||
# The idea/inspiration for a per directory history is from Stewart MacArthur[1]
|
|
||||||
# and Dieter[2], the implementation idea is from Bart Schaefer on the the zsh
|
|
||||||
# mailing list[3]. The implementation is by Jim Hester in September 2012.
|
|
||||||
#
|
|
||||||
# [1]: http://www.compbiome.com/2010/07/bash-per-directory-bash-history.html
|
|
||||||
# [2]: http://dieter.plaetinck.be/per_directory_bash
|
|
||||||
# [3]: http://www.zsh.org/mla/users/1997/msg00226.html
|
|
||||||
#
|
|
||||||
################################################################################
|
|
||||||
#
|
|
||||||
# Copyright (c) 2012 Jim Hester
|
|
||||||
#
|
|
||||||
# This software is provided 'as-is', without any express or implied warranty.
|
|
||||||
# In no event will the authors be held liable for any damages arising from the
|
|
||||||
# use of this software.
|
|
||||||
#
|
|
||||||
# Permission is granted to anyone to use this software for any purpose,
|
|
||||||
# including commercial applications, and to alter it and redistribute it
|
|
||||||
# freely, subject to the following restrictions:
|
|
||||||
#
|
|
||||||
# 1. The origin of this software must not be misrepresented; you must not claim
|
|
||||||
# that you wrote the original software. If you use this software in a product,
|
|
||||||
# an acknowledgment in the product documentation would be appreciated but is
|
|
||||||
# not required.
|
|
||||||
#
|
|
||||||
# 2. Altered source versions must be plainly marked as such, and must not be
|
|
||||||
# misrepresented as being the original software.
|
|
||||||
#
|
|
||||||
# 3. This notice may not be removed or altered from any source distribution..
|
|
||||||
#
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
#-------------------------------------------------------------------------------
|
|
||||||
# configuration, the base under which the directory histories are stored
|
|
||||||
#-------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
[[ -z $HISTORY_BASE ]] && HISTORY_BASE="$HOME/.directory_history"
|
|
||||||
|
|
||||||
#-------------------------------------------------------------------------------
|
|
||||||
# toggle global/directory history used for searching - ctrl-G by default
|
|
||||||
#-------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
function per-directory-history-toggle-history() {
|
|
||||||
if [[ $_per_directory_history_is_global == true ]]; then
|
|
||||||
_per-directory-history-set-directory-history
|
|
||||||
print "\nusing local history\n"
|
|
||||||
else
|
|
||||||
_per-directory-history-set-global-history
|
|
||||||
print "\nusing global history\n"
|
|
||||||
fi
|
|
||||||
zle .push-line
|
|
||||||
zle .accept-line
|
|
||||||
}
|
|
||||||
|
|
||||||
autoload per-directory-history-toggle-history
|
|
||||||
zle -N per-directory-history-toggle-history
|
|
||||||
bindkey '^G' per-directory-history-toggle-history
|
|
||||||
|
|
||||||
#-------------------------------------------------------------------------------
|
|
||||||
# implementation details
|
|
||||||
#-------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
_per_directory_history_directory="$HISTORY_BASE${PWD:A}/history"
|
|
||||||
|
|
||||||
function _per-directory-history-change-directory() {
|
|
||||||
_per_directory_history_directory="$HISTORY_BASE${PWD:A}/history"
|
|
||||||
mkdir -p ${_per_directory_history_directory:h}
|
|
||||||
if [[ $_per_directory_history_is_global == false ]]; then
|
|
||||||
#save to the global history
|
|
||||||
fc -AI $HISTFILE
|
|
||||||
#save history to previous file
|
|
||||||
local prev="$HISTORY_BASE${OLDPWD:A}/history"
|
|
||||||
mkdir -p ${prev:h}
|
|
||||||
fc -AI $prev
|
|
||||||
|
|
||||||
#discard previous directory's history
|
|
||||||
local original_histsize=$HISTSIZE
|
|
||||||
HISTSIZE=0
|
|
||||||
HISTSIZE=$original_histsize
|
|
||||||
|
|
||||||
#read history in new file
|
|
||||||
if [[ -e $_per_directory_history_directory ]]; then
|
|
||||||
fc -R $_per_directory_history_directory
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function _per-directory-history-addhistory() {
|
|
||||||
print -sr -- ${1%%$'\n'}
|
|
||||||
fc -p $_per_directory_history_directory
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
function _per-directory-history-set-directory-history() {
|
|
||||||
if [[ $_per_directory_history_is_global == true ]]; then
|
|
||||||
fc -AI $HISTFILE
|
|
||||||
local original_histsize=$HISTSIZE
|
|
||||||
HISTSIZE=0
|
|
||||||
HISTSIZE=$original_histsize
|
|
||||||
if [[ -e "$_per_directory_history_directory" ]]; then
|
|
||||||
fc -R "$_per_directory_history_directory"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
_per_directory_history_is_global=false
|
|
||||||
}
|
|
||||||
function _per-directory-history-set-global-history() {
|
|
||||||
if [[ $_per_directory_history_is_global == false ]]; then
|
|
||||||
fc -AI $_per_directory_history_directory
|
|
||||||
local original_histsize=$HISTSIZE
|
|
||||||
HISTSIZE=0
|
|
||||||
HISTSIZE=$original_histsize
|
|
||||||
if [[ -e "$HISTFILE" ]]; then
|
|
||||||
fc -R "$HISTFILE"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
_per_directory_history_is_global=true
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#add functions to the exec list for chpwd and zshaddhistory
|
|
||||||
chpwd_functions=(${chpwd_functions[@]} "_per-directory-history-change-directory")
|
|
||||||
zshaddhistory_functions=(${zshaddhistory_functions[@]} "_per-directory-history-addhistory")
|
|
||||||
|
|
||||||
#start in directory mode
|
|
||||||
mkdir -p ${_per_directory_history_directory:h}
|
|
||||||
_per_directory_history_is_global=true
|
|
||||||
_per-directory-history-set-directory-history
|
|
||||||
1
plugins/per-directory-history/per-directory-history.plugin.zsh
Symbolic link
1
plugins/per-directory-history/per-directory-history.plugin.zsh
Symbolic link
|
|
@ -0,0 +1 @@
|
||||||
|
per-directory-history.zsh
|
||||||
149
plugins/per-directory-history/per-directory-history.zsh
Normal file
149
plugins/per-directory-history/per-directory-history.zsh
Normal file
|
|
@ -0,0 +1,149 @@
|
||||||
|
#!/usr/bin/env zsh
|
||||||
|
#
|
||||||
|
# This is a implementation of per directory history for zsh, some
|
||||||
|
# implementations of which exist in bash[1,2]. It also implements
|
||||||
|
# a per-directory-history-toggle-history function to change from using the
|
||||||
|
# directory history to using the global history. In both cases the history is
|
||||||
|
# always saved to both the global history and the directory history, so the
|
||||||
|
# toggle state will not effect the saved histories. Being able to switch
|
||||||
|
# between global and directory histories on the fly is a novel feature as far
|
||||||
|
# as I am aware.
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
# Configuration
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# HISTORY_BASE a global variable that defines the base directory in which the
|
||||||
|
# directory histories are stored
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
# History
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# The idea/inspiration for a per directory history is from Stewart MacArthur[1]
|
||||||
|
# and Dieter[2], the implementation idea is from Bart Schaefer on the the zsh
|
||||||
|
# mailing list[3]. The implementation is by Jim Hester in September 2012.
|
||||||
|
#
|
||||||
|
# [1]: http://www.compbiome.com/2010/07/bash-per-directory-bash-history.html
|
||||||
|
# [2]: http://dieter.plaetinck.be/per_directory_bash
|
||||||
|
# [3]: http://www.zsh.org/mla/users/1997/msg00226.html
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
#
|
||||||
|
# Copyright (c) 2012 Jim Hester
|
||||||
|
#
|
||||||
|
# This software is provided 'as-is', without any express or implied warranty.
|
||||||
|
# In no event will the authors be held liable for any damages arising from the
|
||||||
|
# use of this software.
|
||||||
|
#
|
||||||
|
# Permission is granted to anyone to use this software for any purpose,
|
||||||
|
# including commercial applications, and to alter it and redistribute it
|
||||||
|
# freely, subject to the following restrictions:
|
||||||
|
#
|
||||||
|
# 1. The origin of this software must not be misrepresented; you must not claim
|
||||||
|
# that you wrote the original software. If you use this software in a product,
|
||||||
|
# an acknowledgment in the product documentation would be appreciated but is
|
||||||
|
# not required.
|
||||||
|
#
|
||||||
|
# 2. Altered source versions must be plainly marked as such, and must not be
|
||||||
|
# misrepresented as being the original software.
|
||||||
|
#
|
||||||
|
# 3. This notice may not be removed or altered from any source distribution..
|
||||||
|
#
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
# configuration, the base under which the directory histories are stored
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
[[ -z $HISTORY_BASE ]] && HISTORY_BASE="$HOME/.directory_history"
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
# toggle global/directory history used for searching - ctrl-G by default
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
function per-directory-history-toggle-history() {
|
||||||
|
if [[ $_per_directory_history_is_global == true ]]; then
|
||||||
|
_per-directory-history-set-directory-history
|
||||||
|
print -n "\nusing local history"
|
||||||
|
else
|
||||||
|
_per-directory-history-set-global-history
|
||||||
|
print -n "\nusing global history"
|
||||||
|
fi
|
||||||
|
zle .push-line
|
||||||
|
zle .accept-line
|
||||||
|
}
|
||||||
|
|
||||||
|
autoload per-directory-history-toggle-history
|
||||||
|
zle -N per-directory-history-toggle-history
|
||||||
|
bindkey '^G' per-directory-history-toggle-history
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
# implementation details
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
_per_directory_history_directory="$HISTORY_BASE${PWD:A}/history"
|
||||||
|
|
||||||
|
function _per-directory-history-change-directory() {
|
||||||
|
_per_directory_history_directory="$HISTORY_BASE${PWD:A}/history"
|
||||||
|
mkdir -p ${_per_directory_history_directory:h}
|
||||||
|
if [[ $_per_directory_history_is_global == false ]]; then
|
||||||
|
#save to the global history
|
||||||
|
fc -AI $HISTFILE
|
||||||
|
#save history to previous file
|
||||||
|
local prev="$HISTORY_BASE${OLDPWD:A}/history"
|
||||||
|
mkdir -p ${prev:h}
|
||||||
|
fc -AI $prev
|
||||||
|
|
||||||
|
#discard previous directory's history
|
||||||
|
local original_histsize=$HISTSIZE
|
||||||
|
HISTSIZE=0
|
||||||
|
HISTSIZE=$original_histsize
|
||||||
|
|
||||||
|
#read history in new file
|
||||||
|
if [[ -e $_per_directory_history_directory ]]; then
|
||||||
|
fc -R $_per_directory_history_directory
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function _per-directory-history-addhistory() {
|
||||||
|
print -Sr -- ${1%%$'\n'}
|
||||||
|
fc -p $_per_directory_history_directory
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function _per-directory-history-set-directory-history() {
|
||||||
|
if [[ $_per_directory_history_is_global == true ]]; then
|
||||||
|
fc -AI $HISTFILE
|
||||||
|
local original_histsize=$HISTSIZE
|
||||||
|
HISTSIZE=0
|
||||||
|
HISTSIZE=$original_histsize
|
||||||
|
if [[ -e "$_per_directory_history_directory" ]]; then
|
||||||
|
fc -R "$_per_directory_history_directory"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
_per_directory_history_is_global=false
|
||||||
|
}
|
||||||
|
function _per-directory-history-set-global-history() {
|
||||||
|
if [[ $_per_directory_history_is_global == false ]]; then
|
||||||
|
fc -AI $_per_directory_history_directory
|
||||||
|
local original_histsize=$HISTSIZE
|
||||||
|
HISTSIZE=0
|
||||||
|
HISTSIZE=$original_histsize
|
||||||
|
if [[ -e "$HISTFILE" ]]; then
|
||||||
|
fc -R "$HISTFILE"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
_per_directory_history_is_global=true
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#add functions to the exec list for chpwd and zshaddhistory
|
||||||
|
chpwd_functions=(${chpwd_functions[@]} "_per-directory-history-change-directory")
|
||||||
|
zshaddhistory_functions=(${zshaddhistory_functions[@]} "_per-directory-history-addhistory")
|
||||||
|
|
||||||
|
#start in directory mode
|
||||||
|
mkdir -p ${_per_directory_history_directory:h}
|
||||||
|
_per_directory_history_is_global=true
|
||||||
|
_per-directory-history-set-directory-history
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#compdef pip
|
#compdef pip pip2 pip-2.7 pip3 pip-3.2 pip-3.3 pip-3.4
|
||||||
#autoload
|
#autoload
|
||||||
|
|
||||||
# pip zsh completion, based on homebrew completion
|
# pip zsh completion, based on homebrew completion
|
||||||
|
|
@ -20,6 +20,7 @@ _1st_arguments=(
|
||||||
'bundle:create pybundles (archives containing multiple packages)'
|
'bundle:create pybundles (archives containing multiple packages)'
|
||||||
'freeze:output all currently installed packages (exact versions) to stdout'
|
'freeze:output all currently installed packages (exact versions) to stdout'
|
||||||
'help:show available commands'
|
'help:show available commands'
|
||||||
|
'show:show information about installed packages'
|
||||||
'install:install packages'
|
'install:install packages'
|
||||||
'search:search PyPI'
|
'search:search PyPI'
|
||||||
'uninstall:uninstall packages'
|
'uninstall:uninstall packages'
|
||||||
|
|
@ -58,6 +59,7 @@ case "$words[1]" in
|
||||||
_arguments \
|
_arguments \
|
||||||
'(-U --upgrade)'{-U,--upgrade}'[upgrade all packages to the newest available version]' \
|
'(-U --upgrade)'{-U,--upgrade}'[upgrade all packages to the newest available version]' \
|
||||||
'(-f --find-links)'{-f,--find-links}'[URL for finding packages]' \
|
'(-f --find-links)'{-f,--find-links}'[URL for finding packages]' \
|
||||||
|
'(-r --requirement)'{-r,--requirement}'[Requirements file for packages to install]:File:_files' \
|
||||||
'(--no-deps --no-dependencies)'{--no-deps,--no-dependencies}'[iIgnore package dependencies]' \
|
'(--no-deps --no-dependencies)'{--no-deps,--no-dependencies}'[iIgnore package dependencies]' \
|
||||||
'(--no-install)--no-install[only download packages]' \
|
'(--no-install)--no-install[only download packages]' \
|
||||||
'(--no-download)--no-download[only install downloaded packages]' \
|
'(--no-download)--no-download[only install downloaded packages]' \
|
||||||
|
|
@ -76,4 +78,7 @@ case "$words[1]" in
|
||||||
uninstall)
|
uninstall)
|
||||||
_pip_installed
|
_pip_installed
|
||||||
_wanted installed_pkgs expl 'installed packages' compadd -a installed_pkgs ;;
|
_wanted installed_pkgs expl 'installed packages' compadd -a installed_pkgs ;;
|
||||||
|
show)
|
||||||
|
_pip_installed
|
||||||
|
_wanted installed_pkgs expl 'installed packages' compadd -a installed_pkgs ;;
|
||||||
esac
|
esac
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
# Aliases to stop, start and restart Postgres
|
# Aliases to control Postgres
|
||||||
# Paths noted below are for Postgress installed via Homebrew on OSX
|
# Paths noted below are for Postgres installed via Homebrew on OSX
|
||||||
|
|
||||||
alias startpost='pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start'
|
alias startpost='pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start'
|
||||||
alias stoppost='pg_ctl -D /usr/local/var/postgres stop -s -m fast'
|
alias stoppost='pg_ctl -D /usr/local/var/postgres stop -s -m fast'
|
||||||
alias restartpost='stoppost && sleep 1 && startpost'
|
alias restartpost='stoppost && sleep 1 && startpost'
|
||||||
|
alias reloadpost='pg_ctl reload -D /usr/local/var/postgres -s'
|
||||||
|
alias statuspost='pg_ctl status -D /usr/local/var/postgres -s'
|
||||||
|
|
@ -8,21 +8,21 @@
|
||||||
# Supports command completion.
|
# Supports command completion.
|
||||||
#
|
#
|
||||||
# If you are not already using completion you might need to enable it with
|
# If you are not already using completion you might need to enable it with
|
||||||
#
|
#
|
||||||
# autoload -U compinit compinit
|
# autoload -U compinit compinit
|
||||||
#
|
#
|
||||||
# Changes:
|
# Changes:
|
||||||
#
|
#
|
||||||
# Defaults to the current application, and will walk up the tree to find
|
# Defaults to the current application, and will walk up the tree to find
|
||||||
# a config.ru file and restart the corresponding app
|
# a config.ru file and restart the corresponding app
|
||||||
#
|
#
|
||||||
# Will Detect if a app does not exist in pow and print a (slightly) helpful
|
# Will Detect if a app does not exist in pow and print a (slightly) helpful
|
||||||
# error message
|
# error message
|
||||||
|
|
||||||
rack_root_detect(){
|
rack_root(){
|
||||||
setopt chaselinks
|
setopt chaselinks
|
||||||
local orgdir=$(pwd)
|
local orgdir="$(pwd)"
|
||||||
local basedir=$(pwd)
|
local basedir="$(pwd)"
|
||||||
|
|
||||||
while [[ $basedir != '/' ]]; do
|
while [[ $basedir != '/' ]]; do
|
||||||
test -e "$basedir/config.ru" && break
|
test -e "$basedir/config.ru" && break
|
||||||
|
|
@ -30,8 +30,13 @@ rack_root_detect(){
|
||||||
basedir="$(pwd)"
|
basedir="$(pwd)"
|
||||||
done
|
done
|
||||||
|
|
||||||
builtin cd $orgdir 2>/dev/null
|
builtin cd "$orgdir" 2>/dev/null
|
||||||
[[ ${basedir} == "/" ]] && return 1
|
[[ ${basedir} == "/" ]] && return 1
|
||||||
|
echo $basedir
|
||||||
|
}
|
||||||
|
|
||||||
|
rack_root_detect(){
|
||||||
|
basedir=$(rack_root)
|
||||||
echo `basename $basedir | sed -E "s/.(com|net|org)//"`
|
echo `basename $basedir | sed -E "s/.(com|net|org)//"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -51,16 +56,30 @@ kapow(){
|
||||||
compctl -W ~/.pow -/ kapow
|
compctl -W ~/.pow -/ kapow
|
||||||
|
|
||||||
powit(){
|
powit(){
|
||||||
local basedir=$(pwd)
|
local basedir="$(pwd)"
|
||||||
local vhost=$1
|
local vhost=$1
|
||||||
[ ! -n "$vhost" ] && vhost=$(rack_root_detect)
|
[ ! -n "$vhost" ] && vhost=$(rack_root_detect)
|
||||||
if [ ! -h ~/.pow/$vhost ]
|
if [ ! -h ~/.pow/$vhost ]
|
||||||
then
|
then
|
||||||
echo "pow: Symlinking your app with pow. ${vhost}"
|
echo "pow: Symlinking your app with pow. ${vhost}"
|
||||||
[ ! -d ~/.pow/${vhost} ] && ln -s $basedir ~/.pow/$vhost
|
[ ! -d ~/.pow/${vhost} ] && ln -s "$basedir" ~/.pow/$vhost
|
||||||
return 1
|
return 1
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
powed(){
|
||||||
|
local basedir="$(rack_root)"
|
||||||
|
find ~/.pow/ -type l -lname "*$basedir*" -exec basename {}'.dev' \;
|
||||||
|
}
|
||||||
|
|
||||||
|
# Restart pow process
|
||||||
|
# taken from http://www.matthewratzloff.com/blog/2011/12/23/restarting-pow-when-dns-stops-responding
|
||||||
|
repow(){
|
||||||
|
lsof | grep 20560 | awk '{print $2}' | xargs kill -9
|
||||||
|
launchctl unload ~/Library/LaunchAgents/cx.pow.powd.plist
|
||||||
|
launchctl load ~/Library/LaunchAgents/cx.pow.powd.plist
|
||||||
|
echo "restarted pow"
|
||||||
|
}
|
||||||
|
|
||||||
# View the standard out (puts) from any pow app
|
# View the standard out (puts) from any pow app
|
||||||
alias kaput="tail -f ~/Library/Logs/Pow/apps/*"
|
alias kaput="tail -f ~/Library/Logs/Pow/apps/*"
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
function _rails_command () {
|
function _rails_command () {
|
||||||
if [ -e "script/server" ]; then
|
if [ -e "bin/rails" ]; then
|
||||||
ruby script/$@
|
bin/rails $@
|
||||||
elif [ -e "script/rails" ]; then
|
elif [ -e "script/rails" ]; then
|
||||||
ruby script/rails $@
|
ruby script/rails $@
|
||||||
elif [ -e "bin/rails" ]; then
|
elif [ -e "script/server" ]; then
|
||||||
bin/rails $@
|
ruby script/$@
|
||||||
else
|
else
|
||||||
rails $@
|
rails $@
|
||||||
fi
|
fi
|
||||||
|
|
@ -51,6 +51,7 @@ alias rds='rake db:seed'
|
||||||
alias rdd='rake db:drop'
|
alias rdd='rake db:drop'
|
||||||
alias rdtc='rake db:test:clone'
|
alias rdtc='rake db:test:clone'
|
||||||
alias rdtp='rake db:test:prepare'
|
alias rdtp='rake db:test:prepare'
|
||||||
|
alias rdmtc='rake db:migrate db:test:clone'
|
||||||
|
|
||||||
alias rlc='rake log:clear'
|
alias rlc='rake log:clear'
|
||||||
alias rn='rake notes'
|
alias rn='rake notes'
|
||||||
|
|
|
||||||
23
plugins/rake-fast/README.md
Normal file
23
plugins/rake-fast/README.md
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
# rake-fast
|
||||||
|
|
||||||
|
Fast rake autocompletion plugin.
|
||||||
|
|
||||||
|
This script caches the output for later usage and significantly speeds it up. It generates a .rake_tasks cache file in parallel to the Rakefile. It also checks the file modification dates to see if it needs to regenerate the cache file.
|
||||||
|
|
||||||
|
This is entirely based on [this pull request by Ullrich Schäfer](https://github.com/robb/.dotfiles/pull/10/), which is inspired by [this Ruby on Rails trick from 2006](http://weblog.rubyonrails.org/2006/3/9/fast-rake-task-completion-for-zsh/).
|
||||||
|
|
||||||
|
Think about that. 2006.
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
Just add the plugin to your `.zshrc`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
plugins=(foo bar rake-fast)
|
||||||
|
```
|
||||||
|
|
||||||
|
You might consider adding `.rake_tasks` to your [global .gitignore](https://help.github.com/articles/ignoring-files#global-gitignore)
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
`rake`, then press tab
|
||||||
39
plugins/rake-fast/rake-fast.plugin.zsh
Normal file
39
plugins/rake-fast/rake-fast.plugin.zsh
Normal file
|
|
@ -0,0 +1,39 @@
|
||||||
|
_rake_refresh () {
|
||||||
|
if [ -f .rake_tasks ]; then
|
||||||
|
rm .rake_tasks
|
||||||
|
fi
|
||||||
|
echo "Generating .rake_tasks..." > /dev/stderr
|
||||||
|
_rake_generate
|
||||||
|
cat .rake_tasks
|
||||||
|
}
|
||||||
|
|
||||||
|
_rake_does_task_list_need_generating () {
|
||||||
|
if [ ! -f .rake_tasks ]; then return 0;
|
||||||
|
else
|
||||||
|
if [[ $(uname -s) == 'Darwin' ]]; then
|
||||||
|
accurate=$(stat -f%m .rake_tasks)
|
||||||
|
changed=$(stat -f%m Rakefile)
|
||||||
|
else
|
||||||
|
accurate=$(stat -c%Y .rake_tasks)
|
||||||
|
changed=$(stat -c%Y Rakefile)
|
||||||
|
fi
|
||||||
|
return $(expr $accurate '>=' $changed)
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
_rake_generate () {
|
||||||
|
rake --silent --tasks | cut -d " " -f 2 > .rake_tasks
|
||||||
|
}
|
||||||
|
|
||||||
|
_rake () {
|
||||||
|
if [ -f Rakefile ]; then
|
||||||
|
if _rake_does_task_list_need_generating; then
|
||||||
|
echo "\nGenerating .rake_tasks..." > /dev/stderr
|
||||||
|
_rake_generate
|
||||||
|
fi
|
||||||
|
compadd `cat .rake_tasks`
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
compdef _rake rake
|
||||||
|
alias rake_refresh='_rake_refresh'
|
||||||
|
|
@ -7,7 +7,7 @@ _rbenv-from-homebrew-installed() {
|
||||||
}
|
}
|
||||||
|
|
||||||
FOUND_RBENV=0
|
FOUND_RBENV=0
|
||||||
rbenvdirs=("$HOME/.rbenv" "/usr/local/rbenv" "/opt/rbenv")
|
rbenvdirs=("$HOME/.rbenv" "/usr/local/rbenv" "/opt/rbenv" "/usr/local/opt/rbenv")
|
||||||
if _homebrew-installed && _rbenv-from-homebrew-installed ; then
|
if _homebrew-installed && _rbenv-from-homebrew-installed ; then
|
||||||
rbenvdirs=($(brew --prefix rbenv) "${rbenvdirs[@]}")
|
rbenvdirs=($(brew --prefix rbenv) "${rbenvdirs[@]}")
|
||||||
fi
|
fi
|
||||||
|
|
@ -15,7 +15,10 @@ fi
|
||||||
for rbenvdir in "${rbenvdirs[@]}" ; do
|
for rbenvdir in "${rbenvdirs[@]}" ; do
|
||||||
if [ -d $rbenvdir/bin -a $FOUND_RBENV -eq 0 ] ; then
|
if [ -d $rbenvdir/bin -a $FOUND_RBENV -eq 0 ] ; then
|
||||||
FOUND_RBENV=1
|
FOUND_RBENV=1
|
||||||
export RBENV_ROOT=$rbenvdir
|
if [[ $RBENV_ROOT = '' ]]; then
|
||||||
|
RBENV_ROOT=$rbenvdir
|
||||||
|
fi
|
||||||
|
export RBENV_ROOT
|
||||||
export PATH=${rbenvdir}/bin:$PATH
|
export PATH=${rbenvdir}/bin:$PATH
|
||||||
eval "$(rbenv init --no-rehash - zsh)"
|
eval "$(rbenv init --no-rehash - zsh)"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,3 +10,9 @@ compdef _repo rs='repo sync'
|
||||||
|
|
||||||
alias rsrra='repo sync ; repo rebase --auto-stash'
|
alias rsrra='repo sync ; repo rebase --auto-stash'
|
||||||
compdef _repo rsrra='repo sync ; repo rebase --auto-stash'
|
compdef _repo rsrra='repo sync ; repo rebase --auto-stash'
|
||||||
|
|
||||||
|
alias ru='repo upload'
|
||||||
|
compdef _repo ru='repo upload'
|
||||||
|
|
||||||
|
alias rst='repo status'
|
||||||
|
compdef _repo rst='repo status'
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
alias rsync-copy="rsync -av --progress -h"
|
alias rsync-copy="rsync -avz --progress -h"
|
||||||
alias rsync-move="rsync -av --progress -h --remove-source-files"
|
alias rsync-move="rsync -avz --progress -h --remove-source-files"
|
||||||
alias rsync-update="rsync -avu --progress -h"
|
alias rsync-update="rsync -avzu --progress -h"
|
||||||
alias rsync-synchronize="rsync -avu --delete --progress -h"
|
alias rsync-synchronize="rsync -avzu --delete --progress -h"
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ alias gemsets='rvm gemset list'
|
||||||
local ruby18='ruby-1.8.7'
|
local ruby18='ruby-1.8.7'
|
||||||
local ruby19='ruby-1.9.3'
|
local ruby19='ruby-1.9.3'
|
||||||
local ruby20='ruby-2.0.0'
|
local ruby20='ruby-2.0.0'
|
||||||
|
local ruby21='ruby-2.1.2'
|
||||||
|
|
||||||
function rb18 {
|
function rb18 {
|
||||||
if [ -z "$1" ]; then
|
if [ -z "$1" ]; then
|
||||||
|
|
@ -40,6 +41,17 @@ function rb20 {
|
||||||
_rb20() {compadd `ls -1 $rvm_path/gems | grep "^$ruby20@" | sed -e "s/^$ruby20@//" | awk '{print $1}'`}
|
_rb20() {compadd `ls -1 $rvm_path/gems | grep "^$ruby20@" | sed -e "s/^$ruby20@//" | awk '{print $1}'`}
|
||||||
compdef _rb20 rb20
|
compdef _rb20 rb20
|
||||||
|
|
||||||
|
function rb21 {
|
||||||
|
if [ -z "$1" ]; then
|
||||||
|
rvm use "$ruby21"
|
||||||
|
else
|
||||||
|
rvm use "$ruby21@$1"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
_rb21() {compadd `ls -1 $rvm_path/gems | grep "^$ruby21@" | sed -e "s/^$ruby21@//" | awk '{print $1}'`}
|
||||||
|
compdef _rb21 rb21
|
||||||
|
|
||||||
function rvm-update {
|
function rvm-update {
|
||||||
rvm get head
|
rvm get head
|
||||||
}
|
}
|
||||||
|
|
|
||||||
122
plugins/scd/README.md
Normal file
122
plugins/scd/README.md
Normal file
|
|
@ -0,0 +1,122 @@
|
||||||
|
# scd - smart change of directory
|
||||||
|
|
||||||
|
Define `scd` shell function for changing to any directory with
|
||||||
|
a few keystrokes.
|
||||||
|
|
||||||
|
`scd` keeps history of the visited directories, which serves as an index of
|
||||||
|
the known paths. The directory index is updated after every `cd` command in
|
||||||
|
the shell and can be also filled manually by running `scd -a`. To switch to
|
||||||
|
some directory, `scd` needs few fragments of the desired path to match with
|
||||||
|
the index. A selection menu is displayed in case of several matches, with a
|
||||||
|
preference given to recently visited paths. `scd` can create permanent
|
||||||
|
directory aliases, which appear as named directories in zsh session.
|
||||||
|
|
||||||
|
## INSTALLATION
|
||||||
|
|
||||||
|
For oh-my-zsh, add `scd` to the `plugins` array in the ~/.zshrc file as in the
|
||||||
|
[template file](../../templates/zshrc.zsh-template#L45).
|
||||||
|
|
||||||
|
Besides zsh, `scd` can be used with *bash*, *dash* or *tcsh*
|
||||||
|
shells and is also available as [Vim](http://www.vim.org/) plugin and
|
||||||
|
[IPython](http://ipython.org/) extension. For installation details, see
|
||||||
|
https://github.com/pavoljuhas/smart-change-directory.
|
||||||
|
|
||||||
|
## SYNOPSIS
|
||||||
|
|
||||||
|
```sh
|
||||||
|
scd [options] [pattern1 pattern2 ...]
|
||||||
|
```
|
||||||
|
|
||||||
|
## OPTIONS
|
||||||
|
|
||||||
|
<dl><dt>
|
||||||
|
-a, --add</dt><dd>
|
||||||
|
add specified directories to the directory index.</dd><dt>
|
||||||
|
|
||||||
|
--unindex</dt><dd>
|
||||||
|
remove specified directories from the index.</dd><dt>
|
||||||
|
|
||||||
|
-r, --recursive</dt><dd>
|
||||||
|
apply options <em>--add</em> or <em>--unindex</em> recursively.</dd><dt>
|
||||||
|
|
||||||
|
--alias=ALIAS</dt><dd>
|
||||||
|
create alias for the current or specified directory and save it to
|
||||||
|
<em>~/.scdalias.zsh</em>.</dd><dt>
|
||||||
|
|
||||||
|
--unalias</dt><dd>
|
||||||
|
remove ALIAS definition for the current or specified directory from
|
||||||
|
<em>~/.scdalias.zsh</em>.</dd><dt>
|
||||||
|
|
||||||
|
--list</dt><dd>
|
||||||
|
show matching directories and exit.</dd><dt>
|
||||||
|
|
||||||
|
-v, --verbose</dt><dd>
|
||||||
|
display directory rank in the selection menu.</dd><dt>
|
||||||
|
|
||||||
|
-h, --help</dt><dd>
|
||||||
|
display this options summary and exit.</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# Index recursively some paths for the very first run
|
||||||
|
scd -ar ~/Documents/
|
||||||
|
|
||||||
|
# Change to a directory path matching "doc"
|
||||||
|
scd doc
|
||||||
|
|
||||||
|
# Change to a path matching all of "a", "b" and "c"
|
||||||
|
scd a b c
|
||||||
|
|
||||||
|
# Change to a directory path that ends with "ts"
|
||||||
|
scd "ts(#e)"
|
||||||
|
|
||||||
|
# Show selection menu and ranking of 20 most likely directories
|
||||||
|
scd -v
|
||||||
|
|
||||||
|
# Alias current directory as "xray"
|
||||||
|
scd --alias=xray
|
||||||
|
|
||||||
|
# Jump to a previously defined aliased directory
|
||||||
|
scd xray
|
||||||
|
```
|
||||||
|
|
||||||
|
# FILES
|
||||||
|
|
||||||
|
<dl><dt>
|
||||||
|
~/.scdhistory</dt><dd>
|
||||||
|
time-stamped index of visited directories.</dd><dt>
|
||||||
|
|
||||||
|
~/.scdalias.zsh</dt><dd>
|
||||||
|
scd-generated definitions of directory aliases.</dd>
|
||||||
|
</dl>
|
||||||
|
|
||||||
|
# ENVIRONMENT
|
||||||
|
|
||||||
|
<dl><dt>
|
||||||
|
SCD_HISTFILE</dt><dd>
|
||||||
|
path to the scd index file (by default ~/.scdhistory).</dd><dt>
|
||||||
|
|
||||||
|
SCD_HISTSIZE</dt><dd>
|
||||||
|
maximum number of entries in the index (5000). Index is trimmed when it
|
||||||
|
exceeds <em>SCD_HISTSIZE</em> by more than 20%.</dd><dt>
|
||||||
|
|
||||||
|
SCD_MENUSIZE</dt><dd>
|
||||||
|
maximum number of items for directory selection menu (20).</dd><dt>
|
||||||
|
|
||||||
|
SCD_MEANLIFE</dt><dd>
|
||||||
|
mean lifetime in seconds for exponential decay of directory
|
||||||
|
likelihood (86400).</dd><dt>
|
||||||
|
|
||||||
|
SCD_THRESHOLD</dt><dd>
|
||||||
|
threshold for cumulative directory likelihood. Directories with
|
||||||
|
a lower likelihood compared to the best match are excluded (0.005).
|
||||||
|
</dd><dt>
|
||||||
|
|
||||||
|
SCD_SCRIPT</dt><dd>
|
||||||
|
command script file where scd writes the final <code>cd</code>
|
||||||
|
command. This variable must be defined when scd runs in its own
|
||||||
|
process rather than as a shell function. It is up to the
|
||||||
|
scd caller to use the output in <em>SCD_SCRIPT</em>.</dd>
|
||||||
|
</dl>
|
||||||
353
plugins/scd/scd
Executable file
353
plugins/scd/scd
Executable file
|
|
@ -0,0 +1,353 @@
|
||||||
|
#!/bin/zsh -f
|
||||||
|
|
||||||
|
emulate -L zsh
|
||||||
|
local EXIT=return
|
||||||
|
if [[ $(whence -w $0) == *:' 'command ]]; then
|
||||||
|
emulate -R zsh
|
||||||
|
local RUNNING_AS_COMMAND=1
|
||||||
|
EXIT=exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
local DOC='scd -- smart change to a recently used directory
|
||||||
|
usage: scd [options] [pattern1 pattern2 ...]
|
||||||
|
Go to a directory path that contains all fixed string patterns. Prefer
|
||||||
|
recently visited directories and directories with patterns in their tail
|
||||||
|
component. Display a selection menu in case of multiple matches.
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-a, --add add specified directories to the directory index
|
||||||
|
--unindex remove specified directories from the index
|
||||||
|
-r, --recursive apply options --add or --unindex recursively
|
||||||
|
--alias=ALIAS create alias for the current or specified directory and
|
||||||
|
store it in ~/.scdalias.zsh
|
||||||
|
--unalias remove ALIAS definition for the current or specified
|
||||||
|
directory from ~/.scdalias.zsh
|
||||||
|
--list show matching directories and exit
|
||||||
|
-v, --verbose display directory rank in the selection menu
|
||||||
|
-h, --help display this message and exit
|
||||||
|
'
|
||||||
|
|
||||||
|
local SCD_HISTFILE=${SCD_HISTFILE:-${HOME}/.scdhistory}
|
||||||
|
local SCD_HISTSIZE=${SCD_HISTSIZE:-5000}
|
||||||
|
local SCD_MENUSIZE=${SCD_MENUSIZE:-20}
|
||||||
|
local SCD_MEANLIFE=${SCD_MEANLIFE:-86400}
|
||||||
|
local SCD_THRESHOLD=${SCD_THRESHOLD:-0.005}
|
||||||
|
local SCD_SCRIPT=${RUNNING_AS_COMMAND:+$SCD_SCRIPT}
|
||||||
|
local SCD_ALIAS=~/.scdalias.zsh
|
||||||
|
|
||||||
|
local ICASE a d m p i tdir maxrank threshold
|
||||||
|
local opt_help opt_add opt_unindex opt_recursive opt_verbose
|
||||||
|
local opt_alias opt_unalias opt_list
|
||||||
|
local -A drank dalias
|
||||||
|
local dmatching
|
||||||
|
local last_directory
|
||||||
|
|
||||||
|
setopt extendedhistory extendedglob noautonamedirs brace_ccl
|
||||||
|
|
||||||
|
# If SCD_SCRIPT is defined make sure the file exists and is empty.
|
||||||
|
# This removes any previous old commands.
|
||||||
|
[[ -n "$SCD_SCRIPT" ]] && [[ -s $SCD_SCRIPT || ! -f $SCD_SCRIPT ]] && (
|
||||||
|
umask 077
|
||||||
|
: >| $SCD_SCRIPT
|
||||||
|
)
|
||||||
|
|
||||||
|
# process command line options
|
||||||
|
zmodload -i zsh/zutil
|
||||||
|
zmodload -i zsh/datetime
|
||||||
|
zparseopts -D -- a=opt_add -add=opt_add -unindex=opt_unindex \
|
||||||
|
r=opt_recursive -recursive=opt_recursive \
|
||||||
|
-alias:=opt_alias -unalias=opt_unalias -list=opt_list \
|
||||||
|
v=opt_verbose -verbose=opt_verbose h=opt_help -help=opt_help \
|
||||||
|
|| $EXIT $?
|
||||||
|
|
||||||
|
if [[ -n $opt_help ]]; then
|
||||||
|
print $DOC
|
||||||
|
$EXIT
|
||||||
|
fi
|
||||||
|
|
||||||
|
# load directory aliases if they exist
|
||||||
|
[[ -r $SCD_ALIAS ]] && source $SCD_ALIAS
|
||||||
|
|
||||||
|
# works faster than the (:a) modifier and is compatible with zsh 4.2.6
|
||||||
|
_scd_Y19oug_abspath() {
|
||||||
|
set -A $1 ${(ps:\0:)"$(
|
||||||
|
unfunction -m "*"; shift
|
||||||
|
for d; do
|
||||||
|
cd $d && print -Nr -- $PWD && cd $OLDPWD
|
||||||
|
done
|
||||||
|
)"}
|
||||||
|
}
|
||||||
|
|
||||||
|
# define directory alias
|
||||||
|
if [[ -n $opt_alias ]]; then
|
||||||
|
if [[ -n $1 && ! -d $1 ]]; then
|
||||||
|
print -u2 "'$1' is not a directory."
|
||||||
|
$EXIT 1
|
||||||
|
fi
|
||||||
|
a=${opt_alias[-1]#=}
|
||||||
|
_scd_Y19oug_abspath d ${1:-$PWD}
|
||||||
|
# alias in the current shell, update alias file if successful
|
||||||
|
hash -d -- $a=$d &&
|
||||||
|
(
|
||||||
|
umask 077
|
||||||
|
hash -dr
|
||||||
|
[[ -r $SCD_ALIAS ]] && source $SCD_ALIAS
|
||||||
|
hash -d -- $a=$d
|
||||||
|
hash -dL >| $SCD_ALIAS
|
||||||
|
)
|
||||||
|
$EXIT $?
|
||||||
|
fi
|
||||||
|
|
||||||
|
# undefine directory alias
|
||||||
|
if [[ -n $opt_unalias ]]; then
|
||||||
|
if [[ -n $1 && ! -d $1 ]]; then
|
||||||
|
print -u2 "'$1' is not a directory."
|
||||||
|
$EXIT 1
|
||||||
|
fi
|
||||||
|
_scd_Y19oug_abspath a ${1:-$PWD}
|
||||||
|
a=$(print -rD ${a})
|
||||||
|
if [[ $a != [~][^/]## ]]; then
|
||||||
|
$EXIT
|
||||||
|
fi
|
||||||
|
a=${a#[~]}
|
||||||
|
# unalias in the current shell, update alias file if successful
|
||||||
|
if unhash -d -- $a 2>/dev/null && [[ -r $SCD_ALIAS ]]; then
|
||||||
|
(
|
||||||
|
umask 077
|
||||||
|
hash -dr
|
||||||
|
source $SCD_ALIAS
|
||||||
|
unhash -d -- $a 2>/dev/null &&
|
||||||
|
hash -dL >| $SCD_ALIAS
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
$EXIT $?
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Rewrite directory index if it is at least 20% oversized
|
||||||
|
if [[ -s $SCD_HISTFILE ]] && \
|
||||||
|
(( $(wc -l <$SCD_HISTFILE) > 1.2 * $SCD_HISTSIZE )); then
|
||||||
|
m=( ${(f)"$(<$SCD_HISTFILE)"} )
|
||||||
|
print -lr -- ${m[-$SCD_HISTSIZE,-1]} >| ${SCD_HISTFILE}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Determine the last recorded directory
|
||||||
|
if [[ -s ${SCD_HISTFILE} ]]; then
|
||||||
|
last_directory=${"$(tail -1 ${SCD_HISTFILE})"#*;}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Internal functions are prefixed with "_scd_Y19oug_".
|
||||||
|
# The "record" function adds its arguments to the directory index.
|
||||||
|
_scd_Y19oug_record() {
|
||||||
|
while [[ -n $last_directory && $1 == $last_directory ]]; do
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
if [[ $# -gt 0 ]]; then
|
||||||
|
( umask 077
|
||||||
|
p=": ${EPOCHSECONDS}:0;"
|
||||||
|
print -lr -- ${p}${^*} >>| $SCD_HISTFILE )
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
if [[ -n $opt_add ]]; then
|
||||||
|
for d; do
|
||||||
|
if [[ ! -d $d ]]; then
|
||||||
|
print -u2 "Directory '$d' does not exist."
|
||||||
|
$EXIT 2
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
_scd_Y19oug_abspath m ${*:-$PWD}
|
||||||
|
_scd_Y19oug_record $m
|
||||||
|
if [[ -n $opt_recursive ]]; then
|
||||||
|
for d in $m; do
|
||||||
|
print -n "scanning ${d} ... "
|
||||||
|
_scd_Y19oug_record ${d}/**/*(-/N)
|
||||||
|
print "[done]"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
$EXIT
|
||||||
|
fi
|
||||||
|
|
||||||
|
# take care of removing entries from the directory index
|
||||||
|
if [[ -n $opt_unindex ]]; then
|
||||||
|
if [[ ! -s $SCD_HISTFILE ]]; then
|
||||||
|
$EXIT
|
||||||
|
fi
|
||||||
|
# expand existing directories in the argument list
|
||||||
|
for i in {1..$#}; do
|
||||||
|
if [[ -d ${argv[i]} ]]; then
|
||||||
|
_scd_Y19oug_abspath d ${argv[i]}
|
||||||
|
argv[i]=${d}
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
m="$(awk -v recursive=${opt_recursive} '
|
||||||
|
BEGIN {
|
||||||
|
for (i = 2; i < ARGC; ++i) {
|
||||||
|
argset[ARGV[i]] = 1;
|
||||||
|
delete ARGV[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
1 {
|
||||||
|
d = $0; sub(/^[^;]*;/, "", d);
|
||||||
|
if (d in argset) next;
|
||||||
|
}
|
||||||
|
recursive {
|
||||||
|
for (a in argset) {
|
||||||
|
if (substr(d, 1, length(a) + 1) == a"/") next;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{ print $0 }
|
||||||
|
' $SCD_HISTFILE ${*:-$PWD} )" || $EXIT $?
|
||||||
|
: >| ${SCD_HISTFILE}
|
||||||
|
[[ ${#m} == 0 ]] || print -r -- $m >> ${SCD_HISTFILE}
|
||||||
|
$EXIT
|
||||||
|
fi
|
||||||
|
|
||||||
|
# The "action" function is called when there is just one target directory.
|
||||||
|
_scd_Y19oug_action() {
|
||||||
|
cd $1 || return $?
|
||||||
|
if [[ -z $SCD_SCRIPT && -n $RUNNING_AS_COMMAND ]]; then
|
||||||
|
print -u2 "Warning: running as command with SCD_SCRIPT undefined."
|
||||||
|
fi
|
||||||
|
if [[ -n $SCD_SCRIPT ]]; then
|
||||||
|
print -r "cd ${(q)1}" >| $SCD_SCRIPT
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Match and rank patterns to the index file
|
||||||
|
# set global arrays dmatching and drank
|
||||||
|
_scd_Y19oug_match() {
|
||||||
|
## single argument that is an existing directory or directory alias
|
||||||
|
if [[ $# == 1 ]] && \
|
||||||
|
[[ -d ${d::=$1} || -d ${d::=${nameddirs[$1]}} ]] && [[ -x $d ]];
|
||||||
|
then
|
||||||
|
_scd_Y19oug_abspath dmatching $d
|
||||||
|
drank[${dmatching[1]}]=1
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ignore case unless there is an argument with an uppercase letter
|
||||||
|
[[ "$*" == *[[:upper:]]* ]] || ICASE='(#i)'
|
||||||
|
|
||||||
|
# calculate rank of all directories in the SCD_HISTFILE and keep it as drank
|
||||||
|
# include a dummy entry for splitting of an empty string is buggy
|
||||||
|
[[ -s $SCD_HISTFILE ]] && drank=( ${(f)"$(
|
||||||
|
print -l /dev/null -10
|
||||||
|
<$SCD_HISTFILE \
|
||||||
|
awk -v epochseconds=$EPOCHSECONDS -v meanlife=$SCD_MEANLIFE '
|
||||||
|
BEGIN { FS = "[:;]"; }
|
||||||
|
length($0) < 4096 && $2 > 0 {
|
||||||
|
tau = 1.0 * ($2 - epochseconds) / meanlife;
|
||||||
|
if (tau < -4.61) tau = -4.61;
|
||||||
|
prec = exp(tau);
|
||||||
|
sub(/^[^;]*;/, "");
|
||||||
|
if (NF) ptot[$0] += prec;
|
||||||
|
}
|
||||||
|
END { for (di in ptot) { print di; print ptot[di]; } }'
|
||||||
|
)"}
|
||||||
|
)
|
||||||
|
unset "drank[/dev/null]"
|
||||||
|
|
||||||
|
# filter drank to the entries that match all arguments
|
||||||
|
for a; do
|
||||||
|
p=${ICASE}"*${a}*"
|
||||||
|
drank=( ${(kv)drank[(I)${~p}]} )
|
||||||
|
done
|
||||||
|
|
||||||
|
# build a list of matching directories reverse-sorted by their probabilities
|
||||||
|
dmatching=( ${(f)"$(
|
||||||
|
for d p in ${(kv)drank}; do
|
||||||
|
print -r -- "$p $d";
|
||||||
|
done | sort -grk1 | cut -d ' ' -f 2-
|
||||||
|
)"}
|
||||||
|
)
|
||||||
|
|
||||||
|
# if some directory paths match all patterns in order, discard all others
|
||||||
|
p=${ICASE}"*${(j:*:)argv}*"
|
||||||
|
m=( ${(M)dmatching:#${~p}} )
|
||||||
|
[[ -d ${m[1]} ]] && dmatching=( $m )
|
||||||
|
# if some directory names match last pattern, discard all others
|
||||||
|
p=${ICASE}"*${(j:*:)argv}[^/]#"
|
||||||
|
m=( ${(M)dmatching:#${~p}} )
|
||||||
|
[[ -d ${m[1]} ]] && dmatching=( $m )
|
||||||
|
# if some directory names match all patterns, discard all others
|
||||||
|
m=( $dmatching )
|
||||||
|
for a; do
|
||||||
|
p=${ICASE}"*/[^/]#${a}[^/]#"
|
||||||
|
m=( ${(M)m:#${~p}} )
|
||||||
|
done
|
||||||
|
[[ -d ${m[1]} ]] && dmatching=( $m )
|
||||||
|
# if some directory names match all patterns in order, discard all others
|
||||||
|
p=${ICASE}"/*${(j:[^/]#:)argv}[^/]#"
|
||||||
|
m=( ${(M)dmatching:#${~p}} )
|
||||||
|
[[ -d ${m[1]} ]] && dmatching=( $m )
|
||||||
|
|
||||||
|
# do not match $HOME or $PWD when run without arguments
|
||||||
|
if [[ $# == 0 ]]; then
|
||||||
|
dmatching=( ${dmatching:#(${HOME}|${PWD})} )
|
||||||
|
fi
|
||||||
|
|
||||||
|
# keep at most SCD_MENUSIZE of matching and valid directories
|
||||||
|
m=( )
|
||||||
|
for d in $dmatching; do
|
||||||
|
[[ ${#m} == $SCD_MENUSIZE ]] && break
|
||||||
|
[[ -d $d && -x $d ]] && m+=$d
|
||||||
|
done
|
||||||
|
dmatching=( $m )
|
||||||
|
|
||||||
|
# find the maximum rank
|
||||||
|
maxrank=0.0
|
||||||
|
for d in $dmatching; do
|
||||||
|
[[ ${drank[$d]} -lt maxrank ]] || maxrank=${drank[$d]}
|
||||||
|
done
|
||||||
|
|
||||||
|
# discard all directories below the rank threshold
|
||||||
|
threshold=$(( maxrank * SCD_THRESHOLD ))
|
||||||
|
dmatching=( ${^dmatching}(Ne:'(( ${drank[$REPLY]} >= threshold ))':) )
|
||||||
|
}
|
||||||
|
|
||||||
|
_scd_Y19oug_match $*
|
||||||
|
|
||||||
|
## process whatever directories that remained
|
||||||
|
if [[ ${#dmatching} == 0 ]]; then
|
||||||
|
print -u2 "No matching directory."
|
||||||
|
$EXIT 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
## build formatted directory aliases for selection menu or list display
|
||||||
|
for d in $dmatching; do
|
||||||
|
if [[ -n ${opt_verbose} ]]; then
|
||||||
|
dalias[$d]=$(printf "%.3g %s" ${drank[$d]} $d)
|
||||||
|
else
|
||||||
|
dalias[$d]=$(print -Dr -- $d)
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
## process the --list option
|
||||||
|
if [[ -n $opt_list ]]; then
|
||||||
|
for d in $dmatching; do
|
||||||
|
print -r -- "# ${dalias[$d]}"
|
||||||
|
print -r -- $d
|
||||||
|
done
|
||||||
|
$EXIT
|
||||||
|
fi
|
||||||
|
|
||||||
|
## process single directory match
|
||||||
|
if [[ ${#dmatching} == 1 ]]; then
|
||||||
|
_scd_Y19oug_action $dmatching
|
||||||
|
$EXIT $?
|
||||||
|
fi
|
||||||
|
|
||||||
|
## here we have multiple matches - display selection menu
|
||||||
|
a=( {a-z} {A-Z} )
|
||||||
|
p=( )
|
||||||
|
for i in {1..${#dmatching}}; do
|
||||||
|
[[ -n ${a[i]} ]] || break
|
||||||
|
p+="${a[i]}) ${dalias[${dmatching[i]}]}"
|
||||||
|
done
|
||||||
|
|
||||||
|
print -c -r -- $p
|
||||||
|
|
||||||
|
if read -s -k 1 d && [[ ${i::=${a[(I)$d]}} -gt 0 ]]; then
|
||||||
|
_scd_Y19oug_action ${dmatching[i]}
|
||||||
|
$EXIT $?
|
||||||
|
fi
|
||||||
19
plugins/scd/scd.plugin.zsh
Normal file
19
plugins/scd/scd.plugin.zsh
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
## The scd script should autoload as a shell function.
|
||||||
|
autoload scd
|
||||||
|
|
||||||
|
|
||||||
|
## If the scd function exists, define a change-directory-hook function
|
||||||
|
## to record visited directories in the scd index.
|
||||||
|
if [[ ${+functions[scd]} == 1 ]]; then
|
||||||
|
scd_chpwd_hook() { scd --add $PWD }
|
||||||
|
autoload add-zsh-hook
|
||||||
|
add-zsh-hook chpwd scd_chpwd_hook
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
## Allow scd usage with unquoted wildcard characters such as "*" or "?".
|
||||||
|
alias scd='noglob scd'
|
||||||
|
|
||||||
|
|
||||||
|
## Load the directory aliases created by scd if any.
|
||||||
|
if [[ -s ~/.scdalias.zsh ]]; then source ~/.scdalias.zsh; fi
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
#
|
#
|
||||||
# INSTRUCTIONS
|
# INSTRUCTIONS
|
||||||
#
|
#
|
||||||
# To enabled agent forwarding support add the following to
|
# To enable agent forwarding support add the following to
|
||||||
# your .zshrc file:
|
# your .zshrc file:
|
||||||
#
|
#
|
||||||
# zstyle :omz:plugins:ssh-agent agent-forwarding on
|
# zstyle :omz:plugins:ssh-agent agent-forwarding on
|
||||||
|
|
@ -27,7 +27,7 @@
|
||||||
# Florent Thoumie and Jonas Pfenniger
|
# Florent Thoumie and Jonas Pfenniger
|
||||||
#
|
#
|
||||||
|
|
||||||
local _plugin__ssh_env=$HOME/.ssh/environment-$HOST
|
local _plugin__ssh_env
|
||||||
local _plugin__forwarding
|
local _plugin__forwarding
|
||||||
|
|
||||||
function _plugin__start_agent()
|
function _plugin__start_agent()
|
||||||
|
|
@ -42,12 +42,20 @@ function _plugin__start_agent()
|
||||||
. ${_plugin__ssh_env} > /dev/null
|
. ${_plugin__ssh_env} > /dev/null
|
||||||
|
|
||||||
# load identies
|
# load identies
|
||||||
zstyle -a :omz:plugins:ssh-agent identities identities
|
zstyle -a :omz:plugins:ssh-agent identities identities
|
||||||
echo starting ssh-agent...
|
echo starting ssh-agent...
|
||||||
|
|
||||||
/usr/bin/ssh-add $HOME/.ssh/${^identities}
|
/usr/bin/ssh-add $HOME/.ssh/${^identities}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Get the filename to store/lookup the environment from
|
||||||
|
if (( $+commands[scutil] )); then
|
||||||
|
# It's OS X!
|
||||||
|
_plugin__ssh_env="$HOME/.ssh/environment-$(scutil --get ComputerName)"
|
||||||
|
else
|
||||||
|
_plugin__ssh_env="$HOME/.ssh/environment-$HOST"
|
||||||
|
fi
|
||||||
|
|
||||||
# test if agent-forwarding is enabled
|
# test if agent-forwarding is enabled
|
||||||
zstyle -b :omz:plugins:ssh-agent agent-forwarding _plugin__forwarding
|
zstyle -b :omz:plugins:ssh-agent agent-forwarding _plugin__forwarding
|
||||||
if [[ ${_plugin__forwarding} == "yes" && -n "$SSH_AUTH_SOCK" ]]; then
|
if [[ ${_plugin__forwarding} == "yes" && -n "$SSH_AUTH_SOCK" ]]; then
|
||||||
|
|
|
||||||
42
plugins/sublime/sublime.plugin.zsh
Executable file → Normal file
42
plugins/sublime/sublime.plugin.zsh
Executable file → Normal file
|
|
@ -1,25 +1,33 @@
|
||||||
# Sublime Text 2 Aliases
|
# Sublime Text 2 Aliases
|
||||||
|
|
||||||
local _sublime_darwin_paths > /dev/null 2>&1
|
|
||||||
_sublime_darwin_paths=(
|
|
||||||
"/usr/local/bin/subl"
|
|
||||||
"$HOME/Applications/Sublime Text 3.app/Contents/SharedSupport/bin/subl"
|
|
||||||
"$HOME/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl"
|
|
||||||
"$HOME/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl"
|
|
||||||
"/Applications/Sublime Text 3.app/Contents/SharedSupport/bin/subl"
|
|
||||||
"/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl"
|
|
||||||
"/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl"
|
|
||||||
)
|
|
||||||
|
|
||||||
if [[ $('uname') == 'Linux' ]]; then
|
if [[ $('uname') == 'Linux' ]]; then
|
||||||
if [ -f '/usr/bin/sublime_text' ]; then
|
local _sublime_linux_paths > /dev/null 2>&1
|
||||||
st_run() { nohup /usr/bin/sublime_text $@ > /dev/null & }
|
_sublime_linux_paths=(
|
||||||
else
|
"$HOME/bin/sublime_text"
|
||||||
st_run() { nohup /usr/bin/sublime-text $@ > /dev/null & }
|
"/opt/sublime_text/sublime_text"
|
||||||
fi
|
"/usr/bin/sublime_text"
|
||||||
alias st=st_run
|
"/usr/local/bin/sublime_text"
|
||||||
|
"/usr/bin/subl"
|
||||||
|
)
|
||||||
|
for _sublime_path in $_sublime_linux_paths; do
|
||||||
|
if [[ -a $_sublime_path ]]; then
|
||||||
|
st_run() { $_sublime_path $@ >/dev/null 2>&1 &| }
|
||||||
|
alias st=st_run
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
elif [[ $('uname') == 'Darwin' ]]; then
|
elif [[ $('uname') == 'Darwin' ]]; then
|
||||||
|
local _sublime_darwin_paths > /dev/null 2>&1
|
||||||
|
_sublime_darwin_paths=(
|
||||||
|
"/usr/local/bin/subl"
|
||||||
|
"/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl"
|
||||||
|
"/Applications/Sublime Text 3.app/Contents/SharedSupport/bin/subl"
|
||||||
|
"/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl"
|
||||||
|
"$HOME/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl"
|
||||||
|
"$HOME/Applications/Sublime Text 3.app/Contents/SharedSupport/bin/subl"
|
||||||
|
"$HOME/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl"
|
||||||
|
)
|
||||||
|
|
||||||
for _sublime_path in $_sublime_darwin_paths; do
|
for _sublime_path in $_sublime_darwin_paths; do
|
||||||
if [[ -a $_sublime_path ]]; then
|
if [[ -a $_sublime_path ]]; then
|
||||||
|
|
|
||||||
73
plugins/svn-fast-info/svn-fast-info.plugin.zsh
Normal file
73
plugins/svn-fast-info/svn-fast-info.plugin.zsh
Normal file
|
|
@ -0,0 +1,73 @@
|
||||||
|
# vim:ft=zsh ts=2 sw=2 sts=2 et
|
||||||
|
#
|
||||||
|
# Faster alternative to the current SVN plugin implementation.
|
||||||
|
#
|
||||||
|
# Works with svn 1.6, 1.7, 1.8.
|
||||||
|
# Use `svn_prompt_info` method to enquire the svn data.
|
||||||
|
# It's faster because his efficient use of svn (single svn call) which saves a lot on a huge codebase
|
||||||
|
# It displays the current status of the local files (added, deleted, modified, replaced, or else...)
|
||||||
|
#
|
||||||
|
# Use as a drop-in replacement of the svn plugin not as complementary plugin
|
||||||
|
|
||||||
|
function svn_prompt_info() {
|
||||||
|
local info
|
||||||
|
info=$(svn info 2>&1) || return 1; # capture stdout and stderr
|
||||||
|
local repo_need_upgrade=$(svn_repo_need_upgrade $info)
|
||||||
|
|
||||||
|
if [[ -n $repo_need_upgrade ]]; then
|
||||||
|
printf '%s%s%s%s%s%s%s\n' \
|
||||||
|
$ZSH_PROMPT_BASE_COLOR \
|
||||||
|
$ZSH_THEME_SVN_PROMPT_PREFIX \
|
||||||
|
$ZSH_PROMPT_BASE_COLOR \
|
||||||
|
$repo_need_upgrade \
|
||||||
|
$ZSH_PROMPT_BASE_COLOR \
|
||||||
|
$ZSH_THEME_SVN_PROMPT_SUFFIX \
|
||||||
|
$ZSH_PROMPT_BASE_COLOR
|
||||||
|
else
|
||||||
|
printf '%s%s%s %s%s:%s%s%s%s%s' \
|
||||||
|
$ZSH_PROMPT_BASE_COLOR \
|
||||||
|
$ZSH_THEME_SVN_PROMPT_PREFIX \
|
||||||
|
\
|
||||||
|
"$(svn_status_info $info)" \
|
||||||
|
$ZSH_PROMPT_BASE_COLOR \
|
||||||
|
\
|
||||||
|
$ZSH_THEME_BRANCH_NAME_COLOR \
|
||||||
|
$(svn_current_branch_name $info) \
|
||||||
|
$ZSH_PROMPT_BASE_COLOR \
|
||||||
|
\
|
||||||
|
$(svn_current_revision $info) \
|
||||||
|
$ZSH_PROMPT_BASE_COLOR \
|
||||||
|
\
|
||||||
|
$ZSH_THEME_SVN_PROMPT_SUFFIX \
|
||||||
|
$ZSH_PROMPT_BASE_COLOR
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function svn_repo_need_upgrade() {
|
||||||
|
grep -q "E155036" <<< ${1:-$(svn info 2> /dev/null)} && \
|
||||||
|
echo "E155036: upgrade repo with svn upgrade"
|
||||||
|
}
|
||||||
|
|
||||||
|
function svn_current_branch_name() {
|
||||||
|
grep '^URL:' <<< "${1:-$(svn info 2> /dev/null)}" | egrep -o '(tags|branches)/[^/]+|trunk'
|
||||||
|
}
|
||||||
|
|
||||||
|
function svn_repo_root_name() {
|
||||||
|
grep '^Repository\ Root:' <<< "${1:-$(svn info 2> /dev/null)}" | sed 's#.*/##'
|
||||||
|
}
|
||||||
|
|
||||||
|
function svn_current_revision() {
|
||||||
|
echo "${1:-$(svn info 2> /dev/null)}" | sed -n 's/Revision: //p'
|
||||||
|
}
|
||||||
|
|
||||||
|
function svn_status_info() {
|
||||||
|
local svn_status_string="$ZSH_THEME_SVN_PROMPT_CLEAN"
|
||||||
|
local svn_status="$(svn status 2> /dev/null)";
|
||||||
|
if grep -E '^\s*A' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string ${ZSH_THEME_SVN_PROMPT_ADDITIONS:-+}"; fi
|
||||||
|
if grep -E '^\s*D' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string ${ZSH_THEME_SVN_PROMPT_DELETIONS:-✖}"; fi
|
||||||
|
if grep -E '^\s*M' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string ${ZSH_THEME_SVN_PROMPT_MODIFICATIONS:-✎}"; fi
|
||||||
|
if grep -E '^\s*[R~]' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string ${ZSH_THEME_SVN_PROMPT_REPLACEMENTS:-∿}"; fi
|
||||||
|
if grep -E '^\s*\?' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string ${ZSH_THEME_SVN_PROMPT_UNTRACKED:-?}"; fi
|
||||||
|
if grep -E '^\s*[CI!L]' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string ${ZSH_THEME_SVN_PROMPT_DIRTY:-'!'}"; fi
|
||||||
|
echo $svn_status_string
|
||||||
|
}
|
||||||
|
|
@ -9,7 +9,7 @@ function svn_prompt_info() {
|
||||||
_DISPLAY=$(svn_get_repo_name)
|
_DISPLAY=$(svn_get_repo_name)
|
||||||
fi
|
fi
|
||||||
echo "$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_PREFIX\
|
echo "$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_PREFIX\
|
||||||
$ZSH_THEME_REPO_NAME_COLOR$_DISPLAY$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR$(svn_dirty)$ZSH_PROMPT_BASE_COLOR"
|
$ZSH_THEME_REPO_NAME_COLOR$_DISPLAY$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_SVN_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR$(svn_dirty)$(svn_dirty_pwd)$ZSH_PROMPT_BASE_COLOR"
|
||||||
unset _DISPLAY
|
unset _DISPLAY
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
@ -74,3 +74,22 @@ function svn_dirty_choose() {
|
||||||
function svn_dirty() {
|
function svn_dirty() {
|
||||||
svn_dirty_choose $ZSH_THEME_SVN_PROMPT_DIRTY $ZSH_THEME_SVN_PROMPT_CLEAN
|
svn_dirty_choose $ZSH_THEME_SVN_PROMPT_DIRTY $ZSH_THEME_SVN_PROMPT_CLEAN
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function svn_dirty_choose_pwd () {
|
||||||
|
if in_svn; then
|
||||||
|
root=`pwd`
|
||||||
|
if $(svn status $root 2> /dev/null | grep -Eq '^\s*[ACDIM!?L]'); then
|
||||||
|
# Grep exits with 0 when "One or more lines were selected", return "dirty".
|
||||||
|
echo $1
|
||||||
|
else
|
||||||
|
# Otherwise, no lines were found, or an error occurred. Return clean.
|
||||||
|
echo $2
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function svn_dirty_pwd () {
|
||||||
|
svn_dirty_choose_pwd $ZSH_THEME_SVN_PROMPT_DIRTY_PWD $ZSH_THEME_SVN_PROMPT_CLEAN_PWD
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,21 +1,23 @@
|
||||||
# Symfony2 basic command completion
|
# Symfony2 basic command completion
|
||||||
|
|
||||||
_symfony2_get_command_list () {
|
_symfony2_get_command_list () {
|
||||||
php app/console --no-ansi | sed "1,/Available commands/d" | awk '/^ [a-z]+/ { print $1 }'
|
php $(find . -maxdepth 2 -mindepth 1 -name 'console') --no-ansi | sed "1,/Available commands/d" | awk '/^ [a-z]+/ { print $1 }'
|
||||||
}
|
}
|
||||||
|
|
||||||
_symfony2 () {
|
_symfony2 () {
|
||||||
if [ -f app/console ]; then
|
if [ -f $(find . -maxdepth 2 -mindepth 1 -name 'console') ]; then
|
||||||
compadd `_symfony2_get_command_list`
|
compadd `_symfony2_get_command_list`
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
compdef _symfony2 app/console
|
compdef _symfony2 $(find . -maxdepth 2 -mindepth 1 -name 'console')
|
||||||
compdef _symfony2 sf
|
compdef _symfony2 sf
|
||||||
|
|
||||||
#Alias
|
#Alias
|
||||||
alias sf='php app/console'
|
alias sf='php $(find . -maxdepth 2 -mindepth 1 -name 'console') '
|
||||||
alias sfcl='php app/console cache:clear'
|
alias sfcl='php $(find . -maxdepth 2 -mindepth 1 -name 'console') cache:clear'
|
||||||
alias sfroute='php app/console router:debug'
|
alias sfcw='php $(find . -maxdepth 2 -mindepth 1 -name 'console') cache:warmup'
|
||||||
alias sfgb='php app/console generate:bundle'
|
alias sfroute='php $(find . -maxdepth 2 -mindepth 1 -name 'console') router:debug'
|
||||||
|
alias sfcontainer='php $(find . -maxdepth 2 -mindepth 1 -name 'console') container:debug'
|
||||||
|
alias sfgb='php $(find . -maxdepth 2 -mindepth 1 -name 'console') generate:bundle'
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,19 +6,26 @@
|
||||||
local -a _1st_arguments
|
local -a _1st_arguments
|
||||||
_1st_arguments=(
|
_1st_arguments=(
|
||||||
'box:Box commands'
|
'box:Box commands'
|
||||||
|
'connect:Connects to a shared, remote Vagrant environment'
|
||||||
'destroy:Destroys the vagrant environment'
|
'destroy:Destroys the vagrant environment'
|
||||||
|
'docker-logs:Shows Docker logs'
|
||||||
|
'docker-run:Run one-off commands against a Docker container'
|
||||||
|
'global-status:Reports the status of all active Vagrant environments on the system'
|
||||||
'halt:Halts the currently running vagrant environment'
|
'halt:Halts the currently running vagrant environment'
|
||||||
'init:[box_name] [box_url] Initializes current folder for Vagrant usage'
|
'init:[box_name] [box_url] Initializes current folder for Vagrant usage'
|
||||||
|
'login:Authenticates against a Vagrant Cloud server to access protected boxes'
|
||||||
'package:Packages a vagrant environment for distribution'
|
'package:Packages a vagrant environment for distribution'
|
||||||
'plugin:Plugin commands'
|
'plugin:Plugin commands'
|
||||||
'provision:Run the provisioner'
|
'provision:Run the provisioner'
|
||||||
'reload:Reload the vagrant environment'
|
'reload:Reload the vagrant environment'
|
||||||
'resume:Resumes a suspend vagrant environment'
|
'resume:Resumes a suspend vagrant environment'
|
||||||
|
'share:Shares the Vagrant environment and allows remote access'
|
||||||
'ssh:SSH into the currently running environment'
|
'ssh:SSH into the currently running environment'
|
||||||
'ssh-config:outputs .ssh/config valid syntax for connecting to this environment via ssh.'
|
'ssh-config:outputs .ssh/config valid syntax for connecting to this environment via ssh'
|
||||||
'status:Shows the status of the current Vagrant environment.'
|
'status:Shows the status of the current Vagrant environment'
|
||||||
'suspend:Suspends the currently running vagrant environment'
|
'suspend:Suspends the currently running vagrant environment'
|
||||||
'up:Creates the vagrant environment'
|
'up:Creates the vagrant environment'
|
||||||
|
'version:Prints the currently installed Vagrant version and checks for new updates'
|
||||||
'--help:[TASK] Describe available tasks or one specific task'
|
'--help:[TASK] Describe available tasks or one specific task'
|
||||||
'--version:Prints the Vagrant version information'
|
'--version:Prints the Vagrant version information'
|
||||||
)
|
)
|
||||||
|
|
@ -44,7 +51,7 @@ __task_list ()
|
||||||
|
|
||||||
__box_list ()
|
__box_list ()
|
||||||
{
|
{
|
||||||
_wanted application expl 'command' compadd $(command ls -1 $HOME/.vagrant/boxes 2>/dev/null| sed -e 's/ /\\ /g')
|
_wanted application expl 'command' compadd $(command vagrant box list | sed -e 's/ /\\ /g')
|
||||||
}
|
}
|
||||||
|
|
||||||
__vm_list ()
|
__vm_list ()
|
||||||
|
|
|
||||||
|
|
@ -17,9 +17,15 @@ function zle-keymap-select zle-line-init zle-line-finish {
|
||||||
zle -N zle-line-init
|
zle -N zle-line-init
|
||||||
zle -N zle-line-finish
|
zle -N zle-line-finish
|
||||||
zle -N zle-keymap-select
|
zle -N zle-keymap-select
|
||||||
|
zle -N edit-command-line
|
||||||
|
|
||||||
|
|
||||||
bindkey -v
|
bindkey -v
|
||||||
|
|
||||||
|
# allow v to edit the command line (standard behaviour)
|
||||||
|
autoload -Uz edit-command-line
|
||||||
|
bindkey -M vicmd 'v' edit-command-line
|
||||||
|
|
||||||
# if mode indicator wasn't setup by theme, define default
|
# if mode indicator wasn't setup by theme, define default
|
||||||
if [[ "$MODE_INDICATOR" == "" ]]; then
|
if [[ "$MODE_INDICATOR" == "" ]]; then
|
||||||
MODE_INDICATOR="%{$fg_bold[red]%}<%{$fg[red]%}<<%{$reset_color%}"
|
MODE_INDICATOR="%{$fg_bold[red]%}<%{$fg[red]%}<<%{$reset_color%}"
|
||||||
|
|
|
||||||
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