Commit 67b2781f authored by yleo77's avatar yleo77
Browse files

Merge remote-tracking branch 'robbyrussell/master'

parents 6b832b93 7f74294d
...@@ -72,6 +72,8 @@ To disable updates entirely, put this in your ~/.zshrc ...@@ -72,6 +72,8 @@ To disable updates entirely, put this in your ~/.zshrc
@DISABLE_AUTO_UPDATE=true@ @DISABLE_AUTO_UPDATE=true@
To upgrade directly from the command line, just run @upgrade_oh_my_zsh@
h3. Uninstalling h3. Uninstalling
If you want to uninstall it, just run @uninstall_oh_my_zsh@ from the command line and it'll remove itself and revert you to bash (or your previous zsh config). If you want to uninstall it, just run @uninstall_oh_my_zsh@ from the command line and it'll remove itself and revert you to bash (or your previous zsh config).
......
...@@ -17,7 +17,7 @@ alias history='fc -l 1' ...@@ -17,7 +17,7 @@ alias history='fc -l 1'
# List direcory contents # List direcory contents
alias lsa='ls -lah' alias lsa='ls -lah'
#alias l='ls -la' alias l='ls -la'
alias ll='ls -l' alias ll='ls -l'
alias la='ls -lA' alias la='ls -lA'
alias sl=ls # often screw this up alias sl=ls # often screw this up
......
# get the name of the branch we are on # get the name of the branch we are on
function git_prompt_info() { function git_prompt_info() {
ref=$(git symbolic-ref HEAD 2> /dev/null) || \ ref=$(command git symbolic-ref HEAD 2> /dev/null) || \
ref=$(git rev-parse --short HEAD 2> /dev/null) || return ref=$(command git rev-parse --short HEAD 2> /dev/null) || return
echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX" echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX"
} }
...@@ -11,16 +11,16 @@ parse_git_dirty() { ...@@ -11,16 +11,16 @@ parse_git_dirty() {
local SUBMODULE_SYNTAX='' local SUBMODULE_SYNTAX=''
local GIT_STATUS='' local GIT_STATUS=''
local CLEAN_MESSAGE='nothing to commit (working directory clean)' local CLEAN_MESSAGE='nothing to commit (working directory clean)'
if [[ "$(git config --get oh-my-zsh.hide-status)" != "1" ]]; then if [[ "$(command git config --get oh-my-zsh.hide-status)" != "1" ]]; then
if [[ $POST_1_7_2_GIT -gt 0 ]]; then if [[ $POST_1_7_2_GIT -gt 0 ]]; then
SUBMODULE_SYNTAX="--ignore-submodules=dirty" SUBMODULE_SYNTAX="--ignore-submodules=dirty"
fi fi
if [[ "$DISABLE_UNTRACKED_FILES_DIRTY" != "true" ]]; then if [[ "$DISABLE_UNTRACKED_FILES_DIRTY" == "true" ]]; then
GIT_STATUS=$(git status -s ${SUBMODULE_SYNTAX} 2> /dev/null | tail -n1) GIT_STATUS=$(command git status -s ${SUBMODULE_SYNTAX} -uno 2> /dev/null | tail -n1)
else else
GIT_STATUS=$(git status -s ${SUBMODULE_SYNTAX} -uno 2> /dev/null | tail -n1) GIT_STATUS=$(command git status -s ${SUBMODULE_SYNTAX} 2> /dev/null | tail -n1)
fi fi
if [[ -n $(git status -s ${SUBMODULE_SYNTAX} -uno 2> /dev/null) ]]; then if [[ -n $GIT_STATUS ]]; then
echo "$ZSH_THEME_GIT_PROMPT_DIRTY" echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
else else
echo "$ZSH_THEME_GIT_PROMPT_CLEAN" echo "$ZSH_THEME_GIT_PROMPT_CLEAN"
...@@ -32,10 +32,10 @@ parse_git_dirty() { ...@@ -32,10 +32,10 @@ parse_git_dirty() {
# get the difference between the local and remote branches # get the difference between the local and remote branches
git_remote_status() { git_remote_status() {
remote=${$(git rev-parse --verify ${hook_com[branch]}@{upstream} --symbolic-full-name 2>/dev/null)/refs\/remotes\/} remote=${$(command git rev-parse --verify ${hook_com[branch]}@{upstream} --symbolic-full-name 2>/dev/null)/refs\/remotes\/}
if [[ -n ${remote} ]] ; then if [[ -n ${remote} ]] ; then
ahead=$(git rev-list ${hook_com[branch]}@{upstream}..HEAD 2>/dev/null | wc -l) ahead=$(command git rev-list ${hook_com[branch]}@{upstream}..HEAD 2>/dev/null | wc -l)
behind=$(git rev-list HEAD..${hook_com[branch]}@{upstream} 2>/dev/null | wc -l) behind=$(command git rev-list HEAD..${hook_com[branch]}@{upstream} 2>/dev/null | wc -l)
if [ $ahead -eq 0 ] && [ $behind -gt 0 ] if [ $ahead -eq 0 ] && [ $behind -gt 0 ]
then then
...@@ -52,24 +52,24 @@ git_remote_status() { ...@@ -52,24 +52,24 @@ 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 "$(git log origin/$(current_branch)..HEAD 2> /dev/null)" | grep '^commit' &> /dev/null); then if $(echo "$(command git log origin/$(current_branch)..HEAD 2> /dev/null)" | grep '^commit' &> /dev/null); then
echo "$ZSH_THEME_GIT_PROMPT_AHEAD" echo "$ZSH_THEME_GIT_PROMPT_AHEAD"
fi fi
} }
# Formats prompt string for current git commit short SHA # Formats prompt string for current git commit short SHA
function git_prompt_short_sha() { function git_prompt_short_sha() {
SHA=$(git rev-parse --short HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER" SHA=$(command git rev-parse --short HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER"
} }
# Formats prompt string for current git commit long SHA # Formats prompt string for current git commit long SHA
function git_prompt_long_sha() { function git_prompt_long_sha() {
SHA=$(git rev-parse HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER" SHA=$(command git rev-parse HEAD 2> /dev/null) && echo "$ZSH_THEME_GIT_PROMPT_SHA_BEFORE$SHA$ZSH_THEME_GIT_PROMPT_SHA_AFTER"
} }
# Get the status of the working tree # Get the status of the working tree
git_prompt_status() { git_prompt_status() {
INDEX=$(git status --porcelain -b 2> /dev/null) INDEX=$(command git status --porcelain -b 2> /dev/null)
STATUS="" STATUS=""
if $(echo "$INDEX" | grep -E '^\?\? ' &> /dev/null); then if $(echo "$INDEX" | grep -E '^\?\? ' &> /dev/null); then
STATUS="$ZSH_THEME_GIT_PROMPT_UNTRACKED$STATUS" STATUS="$ZSH_THEME_GIT_PROMPT_UNTRACKED$STATUS"
...@@ -96,7 +96,7 @@ git_prompt_status() { ...@@ -96,7 +96,7 @@ git_prompt_status() {
elif $(echo "$INDEX" | grep '^AD ' &> /dev/null); then elif $(echo "$INDEX" | grep '^AD ' &> /dev/null); then
STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS" STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
fi fi
if $(git rev-parse --verify refs/stash >/dev/null 2>&1); then if $(command git rev-parse --verify refs/stash >/dev/null 2>&1); then
STATUS="$ZSH_THEME_GIT_PROMPT_STASHED$STATUS" STATUS="$ZSH_THEME_GIT_PROMPT_STASHED$STATUS"
fi fi
if $(echo "$INDEX" | grep '^UU ' &> /dev/null); then if $(echo "$INDEX" | grep '^UU ' &> /dev/null); then
...@@ -121,7 +121,7 @@ function git_compare_version() { ...@@ -121,7 +121,7 @@ function git_compare_version() {
local INPUT_GIT_VERSION=$1; local INPUT_GIT_VERSION=$1;
local INSTALLED_GIT_VERSION local INSTALLED_GIT_VERSION
INPUT_GIT_VERSION=(${(s/./)INPUT_GIT_VERSION}); INPUT_GIT_VERSION=(${(s/./)INPUT_GIT_VERSION});
INSTALLED_GIT_VERSION=($(git --version 2>/dev/null)); INSTALLED_GIT_VERSION=($(command git --version 2>/dev/null));
INSTALLED_GIT_VERSION=(${(s/./)INSTALLED_GIT_VERSION[3]}); INSTALLED_GIT_VERSION=(${(s/./)INSTALLED_GIT_VERSION[3]});
for i in {1..3}; do for i in {1..3}; do
......
...@@ -27,7 +27,9 @@ function omz_termsupport_preexec { ...@@ -27,7 +27,9 @@ 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 CMD=${1[(wr)^(*=*|sudo|ssh|rake|-*)]} #cmd name only, or if this is sudo or ssh, the next cmd
title "$CMD" "%100>...>${2:gs/%/%%}%<<" local LINE="${2:gs/$/\\$}"
LINE="${LINE:gs/%/%%}"
title "$CMD" "%100>...>$LINE%<<"
} }
autoload -U add-zsh-hook autoload -U add-zsh-hook
......
...@@ -2,37 +2,80 @@ alias bi="bower install" ...@@ -2,37 +2,80 @@ alias bi="bower install"
alias bl="bower list" alias bl="bower list"
alias bs="bower search" alias bs="bower search"
bower_package_list='' _bower_installed_packages () {
bower_package_list=$(bower ls --no-color 2>/dev/null| awk 'NR>3{print p}{p=$0}'| cut -d ' ' -f 2|sed 's/#.*//')
}
_bower () _bower ()
{ {
local curcontext="$curcontext" state line local -a _1st_arguments _no_color _dopts _save_dev _force_lastest _production
typeset -A opt_args local expl
typeset -A opt_args
_arguments -C \
':command:->command' \ _no_color=('--no-color[Do not print colors (available in all commands)]')
'*::options:->options'
_dopts=(
case $state in '(--save)--save[Save installed packages into the project"s bower.json dependencies]'
(command) '(--force)--force[Force fetching remote resources even if a local copy exists on disk]'
)
local -a subcommands
subcommands=(${=$(bower help | grep help | sed -e 's/,//g')}) _save_dev=('(--save-dev)--save-dev[Save installed packages into the project"s bower.json devDependencies]')
_describe -t commands 'bower' subcommands
;; _force_lastest=('(--force-latest)--force-latest[Force latest version on conflict]')
(options) _production=('(--production)--production[Do not install project devDependencies]')
case $line[1] in
_1st_arguments=(
(install) 'cache-clean:Clean the Bower cache, or the specified package caches' \
if [ -z "$bower_package_list" ];then 'help:Display help information about Bower' \
bower_package_list=$(bower search | awk 'NR > 2' | cut -d '-' -f 2 | cut -d ' ' -f 2 | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g") 'info:Version info and description of a particular package' \
fi 'init:Interactively create a bower.json file' \
compadd "$@" $(echo $bower_package_list) 'install:Install a package locally' \
;; 'link:Symlink a package folder' \
esac 'lookup:Look up a package URL by name' \
;; 'register:Register a package' \
esac 'search:Search for a package by name' \
'uninstall:Remove a package' \
'update:Update a package' \
{ls,list}:'[List all installed packages]'
)
_arguments \
$_no_color \
'*:: :->subcmds' && return 0
if (( CURRENT == 1 )); then
_describe -t commands "bower subcommand" _1st_arguments
return
fi
case "$words[1]" in
install)
_arguments \
$_dopts \
$_save_dev \
$_force_lastest \
$_no_color \
$_production
;;
update)
_arguments \
$_dopts \
$_no_color \
$_force_lastest
_bower_installed_packages
compadd "$@" $(echo $bower_package_list)
;;
uninstall)
_arguments \
$_no_color \
$_dopts
_bower_installed_packages
compadd "$@" $(echo $bower_package_list)
;;
*)
$_no_color \
;;
esac
} }
compdef _bower bower compdef _bower bower
...@@ -7,7 +7,7 @@ alias bu="bundle update" ...@@ -7,7 +7,7 @@ alias bu="bundle update"
# The following is based on https://github.com/gma/bundler-exec # The following is based on https://github.com/gma/bundler-exec
bundled_commands=(annotate cap capify cucumber foreman guard jekyll middleman nanoc rackup rainbows rake rspec ruby shotgun spec spin spork thin thor unicorn unicorn_rails puma) bundled_commands=(annotate berks cap capify cucumber foodcritic foreman guard jekyll kitchen knife middleman nanoc rackup rainbows rake rspec ruby shotgun spec spin spork strainer tailor thin thor unicorn unicorn_rails puma)
## Functions ## Functions
......
function _cabal_commands() {
local ret=1 state
_arguments ':subcommand:->subcommand' && ret=0
case $state in
subcommand)
subcommands=(
"bench:Run the benchmark, if any (configure with UserHooks)"
"build:Make this package ready for installation"
"check:Check the package for common mistakes"
"clean:Clean up after a build"
"copy:Copy teh files into the install locations"
"configure:Prepare to build the package"
"fetch:Downloads packages for later installation"
"haddock:Generate HAddock HTML documentation"
"help:Help about commands"
"hscolour:Generate HsColour colourised code, in HTML format"
"info:Display detailed information about a particular package"
"init:Interactively create a .cabal file"
"install:Installs a list of packages"
"list:List packages matching a search string"
"register:Register this package with the compiler"
"report:Upload build reports to a remote server"
"sdist:Generate a source distribution file (.tar.gz)"
"test:Run the test suite, if any (configure with UserHooks)"
"unpack:Unpacks packages for user inspection"
"update:Updates list of known packages"
"upload:Uploads source packages to Hackage"
)
_describe -t subcommands 'cabal subcommands' subcommands && ret=0
esac
return ret
}
compdef _cabal_commands cabal
#compdef celery
#autoload
#celery zsh completion
_celery () {
local -a _1st_arguments ifargs dopts controlargs
typeset -A opt_args
_1st_arguments=('worker' 'events' 'beat' 'shell' 'multi' 'amqp' 'status' 'inspect' \
'control' 'purge' 'list' 'migrate' 'call' 'result' 'report')
ifargs=('--app=' '--broker=' '--loader=' '--config=' '--version')
dopts=('--detach' '--umask=' '--gid=' '--uid=' '--pidfile=' '--logfile=' '--loglevel=')
controlargs=('--timeout' '--destination')
_arguments \
'(-A --app=)'{-A,--app}'[app instance to use (e.g. module.attr_name):APP]' \
'(-b --broker=)'{-b,--broker}'[url to broker. default is "amqp://guest@localhost//":BROKER]' \
'(--loader)--loader[name of custom loader class to use.:LOADER]' \
'(--config)--config[Name of the configuration module:CONFIG]' \
'(--workdir)--workdir[Optional directory to change to after detaching.:WORKING_DIRECTORY]' \
'(-q --quiet)'{-q,--quiet}'[Don"t show as much output.]' \
'(-C --no-color)'{-C,--no-color}'[Don"t display colors.]' \
'(--version)--version[show program"s version number and exit]' \
'(- : *)'{-h,--help}'[show this help message and exit]' \
'*:: :->subcmds' && return 0
if (( CURRENT == 1 )); then
_describe -t commands "celery subcommand" _1st_arguments
return
fi
case "$words[1]" in
worker)
_arguments \
'(-C --concurrency=)'{-C,--concurrency=}'[Number of child processes processing the queue. The default is the number of CPUs.]' \
'(--pool)--pool=:::(processes eventlet gevent threads solo)' \
'(--purge --discard)'{--discard,--purge}'[Purges all waiting tasks before the daemon is started.]' \
'(-f --logfile=)'{-f,--logfile=}'[Path to log file. If no logfile is specified, stderr is used.]' \
'(--loglevel=)--loglevel=:::(critical error warning info debug)' \
'(-N --hostname=)'{-N,--hostname=}'[Set custom hostname, e.g. "foo.example.com".]' \
'(-B --beat)'{-B,--beat}'[Also run the celerybeat periodic task scheduler.]' \
'(-s --schedule=)'{-s,--schedule=}'[Path to the schedule database if running with the -B option. Defaults to celerybeat-schedule.]' \
'(-S --statedb=)'{-S,--statedb=}'[Path to the state database.Default: None]' \
'(-E --events)'{-E,--events}'[Send events that can be captured by monitors like celeryev, celerymon, and others.]' \
'(--time-limit=)--time-limit=[nables a hard time limit (in seconds int/float) for tasks]' \
'(--soft-time-limit=)--soft-time-limit=[Enables a soft time limit (in seconds int/float) for tasks]' \
'(--maxtasksperchild=)--maxtasksperchild=[Maximum number of tasks a pool worker can execute before it"s terminated and replaced by a new worker.]' \
'(-Q --queues=)'{-Q,--queues=}'[List of queues to enable for this worker, separated by comma. By default all configured queues are enabled.]' \
'(-I --include=)'{-I,--include=}'[Comma separated list of additional modules to import.]' \
'(--pidfile=)--pidfile=[Optional file used to store the process pid.]' \
'(--autoscale=)--autoscale=[Enable autoscaling by providing max_concurrency, min_concurrency.]' \
'(--autoreload)--autoreload[Enable autoreloading.]' \
'(--no-execv)--no-execv[Don"t do execv after multiprocessing child fork.]'
compadd -a ifargs
;;
inspect)
_values -s \
'active[dump active tasks (being processed)]' \
'active_queues[dump queues being consumed from]' \
'ping[ping worker(s)]' \
'registered[dump of registered tasks]' \
'report[get bugreport info]' \
'reserved[dump reserved tasks (waiting to be processed)]' \
'revoked[dump of revoked task ids]' \
'scheduled[dump scheduled tasks (eta/countdown/retry)]' \
'stats[dump worker statistics]'
compadd -a controlargs ifargs
;;
control)
_values -s \
'add_consumer[tell worker(s) to start consuming a queue]' \
'autoscale[change autoscale settings]' \
'cancel_consumer[tell worker(s) to stop consuming a queue]' \
'disable_events[tell worker(s) to disable events]' \
'enable_events[tell worker(s) to enable events]' \
'pool_grow[start more pool processes]' \
'pool_shrink[use less pool processes]' \
'rate_limit[tell worker(s) to modify the rate limit for a task type]' \
'time_limit[tell worker(s) to modify the time limit for a task type.]'
compadd -a controlargs ifargs
;;
multi)
_values -s \
'--nosplash[Don"t display program info.]' \
'--verbose[Show more output.]' \
'--no-color[Don"t display colors.]' \
'--quiet[Don"t show as much output.]' \
'start' 'restart' 'stopwait' 'stop' 'show' \
'names' 'expand' 'get' 'kill'
compadd -a ifargs
;;
amqp)
_values -s \
'queue.declare' 'queue.purge' 'exchange.delete' 'basic.publish' \
'exchange.declare' 'queue.delete' 'queue.bind' 'basic.get'
;;
list)
_values -s, 'bindings'
;;
shell)
_values -s \
'--ipython[force iPython.]' \
'--bpython[force bpython.]' \
'--python[force default Python shell.]' \
'--without-tasks[don"t add tasks to locals.]' \
'--eventlet[use eventlet.]' \
'--gevent[use gevent.]'
compadd -a ifargs
;;
beat)
_arguments \
'(-s --schedule=)'{-s,--schedule=}'[Path to the schedule database. Defaults to celerybeat-schedule.]' \
'(-S --scheduler=)'{-S,--scheduler=}'[Scheduler class to use. Default is celery.beat.PersistentScheduler.]' \
'(--max-interval)--max-interval[]'
compadd -a dopts fargs
;;
events)
_arguments \
'(-d --dump)'{-d,--dump}'[Dump events to stdout.]' \
'(-c --camera=)'{-c,--camera=}'[Take snapshots of events using this camera.]' \
'(-F --frequency=)'{-F,--frequency=}'[Camera: Shutter frequency. Default is every 1.0 seconds.]' \
'(-r --maxrate=)'{-r,--maxrate=}'[Camera: Optional shutter rate limit (e.g. 10/m).]'
compadd -a dopts fargs
;;
*)
;;
esac
}
...@@ -35,27 +35,37 @@ ...@@ -35,27 +35,37 @@
# ------- # -------
# #
# * Mario Fernandez (https://github.com/sirech) # * Mario Fernandez (https://github.com/sirech)
# * Dong Weiming (https://github.com/dongweiming)
# #
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
local curcontext="$curcontext" state line ret=1 local curcontext="$curcontext" state line ret=1 version opts first second third
typeset -A opt_args typeset -A opt_args
version=(${(f)"$(_call_program version $words[1] --version)"})
version=${${(z)${version[1]}}[3]}
first=$(echo $version|cut -d '.' -f 1)
second=$(echo $version|cut -d '.' -f 2)
third=$(echo $version|cut -d '.' -f 3)
if (( $first < 2 )) && (( $second < 7 )) && (( $third < 3 ));then
opts+=('(-l --lint)'{-l,--lint}'[pipe the compiled JavaScript through JavaScript Lint]'
'(-r --require)'{-r,--require}'[require a library before executing your script]:library')
fi
_arguments -C \ _arguments -C \
'(- *)'{-h,--help}'[display this help message]' \ '(- *)'{-h,--help}'[display this help message]' \
'(- *)'{-v,--version}'[display the version number]' \ '(- *)'{-v,--version}'[display the version number]' \
$opts \
'(-b --bare)'{-b,--bare}'[compile without a top-level function wrapper]' \ '(-b --bare)'{-b,--bare}'[compile without a top-level function wrapper]' \
'(-e --eval)'{-e,--eval}'[pass a string from the command line as input]:Inline Script' \ '(-e --eval)'{-e,--eval}'[pass a string from the command line as input]:Inline Script' \
'(-i --interactive)'{-i,--interactive}'[run an interactive CoffeeScript REPL]' \ '(-i --interactive)'{-i,--interactive}'[run an interactive CoffeeScript REPL]' \
'(-j --join)'{-j,--join}'[concatenate the source CoffeeScript before compiling]:Destination JS file:_files -g "*.js"' \ '(-j --join)'{-j,--join}'[concatenate the source CoffeeScript before compiling]:Destination JS file:_files -g "*.js"' \
'(-l --lint)'{-l,--lint}'[pipe the compiled JavaScript through JavaScript Lint]' \
'(--nodejs)--nodejs[pass options directly to the "node" binary]' \ '(--nodejs)--nodejs[pass options directly to the "node" binary]' \
'(-c --compile)'{-c,--compile}'[compile to JavaScript and save as .js files]' \ '(-c --compile)'{-c,--compile}'[compile to JavaScript and save as .js files]' \
'(-o --output)'{-o,--output}'[set the output directory for compiled JavaScript]:Output Directory:_files -/' \ '(-o --output)'{-o,--output}'[set the output directory for compiled JavaScript]:Output Directory:_files -/' \
'(-n -t -p)'{-n,--nodes}'[print out the parse tree that the parser produces]' \ '(-n -t -p)'{-n,--nodes}'[print out the parse tree that the parser produces]' \
'(-n -t -p)'{-p,--print}'[print out the compiled JavaScript]' \ '(-n -t -p)'{-p,--print}'[print out the compiled JavaScript]' \
'(-n -t -p)'{-t,--tokens}'[print out the tokens that the lexer/rewriter produce]' \ '(-n -t -p)'{-t,--tokens}'[print out the tokens that the lexer/rewriter produce]' \
'(-r --require)'{-r,--require}'[require a library before executing your script]:library' \
'(-s --stdio)'{-s,--stdio}'[listen for and compile scripts over stdio]' \ '(-s --stdio)'{-s,--stdio}'[listen for and compile scripts over stdio]' \
'(-w --watch)'{-w,--watch}'[watch scripts for changes and rerun commands]' \ '(-w --watch)'{-w,--watch}'[watch scripts for changes and rerun commands]' \
'*:script or directory:_files' && ret=0 '*:script or directory:_files' && ret=0
......
...@@ -10,9 +10,25 @@ _composer_get_command_list () { ...@@ -10,9 +10,25 @@ _composer_get_command_list () {
composer --no-ansi | sed "1,/Available commands/d" | awk '/^ [a-z]+/ { print $1 }' composer --no-ansi | sed "1,/Available commands/d" | awk '/^ [a-z]+/ { print $1 }'
} }
_composer_get_required_list () {
composer show -s --no-ansi | sed '1,/requires/d' | awk 'NF > 0 && !/^requires \(dev\)/{ print $1 }'
}
_composer () { _composer () {
local curcontext="$curcontext" state line
typeset -A opt_args
_arguments \
'1: :->command'\
'*: :->args'
if [ -f composer.json ]; then if [ -f composer.json ]; then
compadd `_composer_get_command_list` case $state in
command)
compadd `_composer_get_command_list`
;;
*)
compadd `_composer_get_required_list`
;;
esac
else else
compadd create-project init search selfupdate show compadd create-project init search selfupdate show
fi fi
......
...@@ -6,14 +6,14 @@ ...@@ -6,14 +6,14 @@
# Use aptitude if installed, or apt-get if not. # Use aptitude if installed, or apt-get if not.
# You can just set apt_pref='apt-get' to override it. # You can just set apt_pref='apt-get' to override it.
if [[ -e $( which aptitude 2>&1 ) ]]; then if [[ -e $( which -p aptitude 2>&1 ) ]]; then
apt_pref='aptitude' apt_pref='aptitude'
else else
apt_pref='apt-get' apt_pref='apt-get'
fi fi
# Use sudo by default if it's installed # Use sudo by default if it's installed
if [[ -e $( which sudo 2>&1 ) ]]; then if [[ -e $( which -p sudo 2>&1 ) ]]; then
use_sudo=1 use_sudo=1
fi fi
......
## git
**Maintainer:** [Stibbons](https://github.com/Stibbons)
This plugin adds several git aliases and increase the completion function provided by zsh
#compdef git-branch
_git-branch ()
{
declare l c m d
l='--color --no-color -r -a --all -v --verbose --abbrev --no-abbrev'
c='-l -f --force -t --track --no-track --set-upstream --contains --merged --no-merged'
m='-m -M'
d='-d -D'
declare -a dependent_creation_args
if (( words[(I)-r] == 0 )); then
dependent_creation_args=(
"($l $m $d): :__git_branch_names"
"::start-point:__git_revisions")
fi
declare -a dependent_deletion_args
if (( words[(I)-d] || words[(I)-D] )); then
dependent_creation_args=
dependent_deletion_args=(
'-r[delete only remote-tracking branches]')
if (( words[(I)-r] )); then
dependent_deletion_args+='*: :__git_ignore_line_inside_arguments __git_remote_branch_names'
else
dependent_deletion_args+='*: :__git_ignore_line_inside_arguments __git_branch_names'
fi
fi
declare -a dependent_modification_args
if (( words[(I)-m] || words[(I)-M] )); then
dependent_creation_args=
dependent_modification_args=(
':old or new branch name:__git_branch_names'
'::new branch name:__git_branch_names')
fi
_arguments -w -S -s \
"($c $m $d --no-color :)--color=-[turn on branch coloring]:: :__git_color_whens" \
"($c $m $d : --color)--no-color[turn off branch coloring]" \
"($c $m -a --all)-r[list or delete only remote-tracking branches]" \
"($c $m $d : -r)"{-a,--all}"[list both remote-tracking branches and local branches]" \
"($c $m $d : -v --verbose)"{-v,--verbose}'[show SHA1 and commit subject line for each head]' \
"($c $m $d :)--abbrev=[set minimum SHA1 display-length]: :__git_guard_number length" \
"($c $m $d :)--no-abbrev[do not abbreviate sha1s]" \
"($l $m $d)-l[create the branch's reflog]" \
"($l $m $d -f --force)"{-f,--force}"[force the creation of a new branch]" \
"($l $m $d -t --track)"{-t,--track}"[set up configuration so that pull merges from the start point]" \
"($l $m $d)--no-track[override the branch.autosetupmerge configuration variable]" \
"($l $m $d)--set-upstream[set up configuration so that pull merges]" \
"($l $m $d)--contains=[only list branches which contain the specified commit]: :__git_committishs" \
"($l $m $d)--merged=[only list branches which are fully contained by HEAD]: :__git_committishs" \
"($l $m $d)--no-merged=[do not list branches which are fully contained by HEAD]: :__git_committishs" \
$dependent_creation_args \
"($l $c $d -M)-m[rename a branch and the corresponding reflog]" \
"($l $c $d -m)-M[rename a branch even if the new branch-name already exists]" \
$dependent_modification_args \
"($l $c $m -D)-d[delete a fully merged branch]" \
"($l $c $m -d)-D[delete a branch]" \
$dependent_deletion_args
}
#compdef git-remote
# NOTE: --track is undocumented.
# TODO: --track, -t, --master, and -m should take remote branches, I guess.
# NOTE: --master is undocumented.
# NOTE: --fetch is undocumented.
_git-remote () {
local curcontext=$curcontext state line
declare -A opt_args
_arguments -C \
':command:->command' \
'*::options:->options' && ret=0
case $state in
(command)
declare -a commands
commands=(
'add:add a new remote'
'show:show information about a given remote'
'prune:delete all stale tracking branches for a given remote'
'update:fetch updates for a set of remotes'
'rm:remove a remote from .git/config and all associated tracking branches'
'rename:rename a remote from .git/config and update all associated tracking branches'
'set-head:sets or deletes the default branch'
'set-branches:changes the list of branches tracked by the named remote.'
'set-url:changes URL remote points to.'
)
_describe -t commands 'sub-command' commands && ret=0
;;
(options)
case $line[1] in
(add)
_arguments \
'*'{--track,-t}'[track given branch instead of default glob refspec]:branch:__git_branch_names' \
'(--master -m)'{--master,-m}'[set the remote'\''s HEAD to point to given master branch]:branch:__git_branch_names' \
'(--fetch -f)'{--fetch,-f}'[run git-fetch on the new remote after it has been created]' \
':branch name:__git_remotes' \
':url:_urls' && ret=0
;;
(show)
_arguments \
'-n[do not contact the remote for a list of branches]' \
':remote:__git_remotes' && ret=0
;;
(prune)
_arguments \
'(--dry-run -n)'{-n,--dry-run}'[do not actually prune, only list what would be done]' \
':remote:__git_remotes' && ret=0
;;
(update)
__git_remote-groups && ret=0
;;
(rm)
__git_remotes && ret=0
;;
(rename)
__git_remotes && ret=0
;;
(set-url)
_arguments \
'*--push[manipulate push URLs]' \
'(--add)--add[add URL]' \
'(--delete)--delete[delete URLs]' \
':branch name:__git_remotes' \
':url:_urls' && ret=0
;;
esac
;;
esac
}
...@@ -37,6 +37,12 @@ alias grset='git remote set-url' ...@@ -37,6 +37,12 @@ alias grset='git remote set-url'
compdef _git grset=git-remote compdef _git grset=git-remote
alias grup='git remote update' alias grup='git remote update'
compdef _git grset=git-remote compdef _git grset=git-remote
alias grbi='git rebase -i'
compdef _git grbi=git-rebase
alias grbc='git rebase --continue'
compdef _git grbc=git-rebase
alias grba='git rebase --abort'
compdef _git grba=git-rebase
alias gb='git branch' alias gb='git branch'
compdef _git gb=git-branch compdef _git gb=git-branch
alias gba='git branch -a' alias gba='git branch -a'
...@@ -62,12 +68,20 @@ alias gm='git merge' ...@@ -62,12 +68,20 @@ alias gm='git merge'
compdef _git gm=git-merge compdef _git gm=git-merge
alias grh='git reset HEAD' alias grh='git reset HEAD'
alias grhh='git reset HEAD --hard' alias grhh='git reset HEAD --hard'
alias gclean='git reset --hard && git clean -dfx'
alias gwc='git whatchanged -p --abbrev-commit --pretty=medium' alias gwc='git whatchanged -p --abbrev-commit --pretty=medium'
#remove the gf alias #remove the gf alias
#alias gf='git ls-files | grep' #alias gf='git ls-files | grep'
alias gpoat='git push origin --all && git push origin --tags' alias gpoat='git push origin --all && git push origin --tags'
alias gmt='git mergetool --no-prompt'
compdef _git gm=git-mergetool
alias gg='git gui citool'
alias gga='git gui citool --amend'
alias gk='gitk --all --branches'
alias gsts='git stash show --text'
# Will cd into the top of the current repository # Will cd into the top of the current repository
# or submodule. # or submodule.
...@@ -98,6 +112,8 @@ function current_repository() { ...@@ -98,6 +112,8 @@ function current_repository() {
# these aliases take advantage of the previous function # these aliases take advantage of the previous function
alias ggpull='git pull origin $(current_branch)' alias ggpull='git pull origin $(current_branch)'
compdef ggpull=git compdef ggpull=git
alias ggpur='git pull --rebase origin $(current_branch)'
compdef ggpur=git
alias ggpush='git push origin $(current_branch)' alias ggpush='git push origin $(current_branch)'
compdef ggpush=git compdef ggpush=git
alias ggpnp='git pull origin $(current_branch) && git push origin $(current_branch)' alias ggpnp='git pull origin $(current_branch) && git push origin $(current_branch)'
......
...@@ -14,16 +14,24 @@ function start_agent_withssh { ...@@ -14,16 +14,24 @@ function start_agent_withssh {
export SSH_AGENT_PID export SSH_AGENT_PID
} }
# source settings of old agent, if applicable # check if another agent is running
if [ -f "${GPG_ENV}" ]; then if ! gpg-connect-agent --quiet /bye > /dev/null 2> /dev/null; then
. ${GPG_ENV} > /dev/null # source settings of old agent, if applicable
fi if [ -f "${GPG_ENV}" ]; then
. ${GPG_ENV} > /dev/null
fi
# check for existing ssh-agent # check again if another agent is running using the newly sourced settings
if ssh-add -l > /dev/null 2> /dev/null; then if ! gpg-connect-agent --quiet /bye > /dev/null 2> /dev/null; then
start_agent_nossh; # check for existing ssh-agent
else if ssh-add -l > /dev/null 2> /dev/null; then
start_agent_withssh; # ssh-agent running, start gpg-agent without ssh support
start_agent_nossh;
else
# otherwise start gpg-agent with ssh support
start_agent_withssh;
fi
fi
fi fi
GPG_TTY=$(tty) GPG_TTY=$(tty)
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
# .jira-url in the current directory takes precedence # .jira-url in the current directory takes precedence
# #
# If you use Rapid Board, set: # If you use Rapid Board, set:
#JIRA_RAPID_BOARD="yes" #JIRA_RAPID_BOARD="true"
# in you .zshrc # in you .zshrc
# #
# Setup: cd to/my/project # Setup: cd to/my/project
...@@ -11,6 +11,13 @@ ...@@ -11,6 +11,13 @@
# Usage: jira # opens a new issue # Usage: jira # opens a new issue
# jira ABC-123 # Opens an existing issue # jira ABC-123 # Opens an existing issue
open_jira_issue () { open_jira_issue () {
local open_cmd
if [[ $(uname -s) == 'Darwin' ]]; then
open_cmd='open'
else
open_cmd='xdg-open'
fi
if [ -f .jira-url ]; then if [ -f .jira-url ]; then
jira_url=$(cat .jira-url) jira_url=$(cat .jira-url)
elif [ -f ~/.jira-url ]; then elif [ -f ~/.jira-url ]; then
...@@ -27,10 +34,10 @@ open_jira_issue () { ...@@ -27,10 +34,10 @@ open_jira_issue () {
`open $jira_url/secure/CreateIssue!default.jspa` `open $jira_url/secure/CreateIssue!default.jspa`
else else
echo "Opening issue #$1" echo "Opening issue #$1"
if [[ "x$JIRA_RAPID_BOARD" = "yes" ]]; then if [[ "x$JIRA_RAPID_BOARD" = "xtrue" ]]; then
`open $jira_url/issues/$1` $open_cmd "$jira_url/issues/$1"
else else
`open $jira_url/browse/$1` $open_cmd "$jira_url/browse/$1"
fi fi
fi fi
} }
......
# Mercurial # Mercurial
alias hgc='hg commit' alias hgc='hg commit'
alias hgb='hg branch' alias hgb='hg branch'
...@@ -17,8 +16,48 @@ alias hgs='hg status' ...@@ -17,8 +16,48 @@ alias hgs='hg status'
# this is the 'git commit --amend' equivalent # this is the 'git commit --amend' equivalent
alias hgca='hg qimport -r tip ; hg qrefresh -e ; hg qfinish tip' alias hgca='hg qimport -r tip ; hg qrefresh -e ; hg qfinish tip'
function hg_current_branch() { function in_hg() {
if [ -d .hg ]; then if [[ -d .hg ]] || $(hg summary > /dev/null 2>&1); then
echo hg:$(hg branch) echo 1
fi
}
function hg_get_branch_name() {
if [ $(in_hg) ]; then
echo $(hg branch)
fi
}
function hg_prompt_info {
if [ $(in_hg) ]; then
_DISPLAY=$(hg_get_branch_name)
echo "$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_HG_PROMPT_PREFIX\
$ZSH_THEME_REPO_NAME_COLOR$_DISPLAY$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_HG_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR$(hg_dirty)$ZSH_PROMPT_BASE_COLOR"
unset _DISPLAY
fi
}
function hg_dirty_choose {
if [ $(in_hg) ]; then
hg status 2> /dev/null | grep -Eq '^\s*[ACDIM!?L]'
if [ $pipestatus[-1] -eq 0 ]; then
# Grep exits with 0 when "One or more lines were selected", return "dirty".
echo $1
else
# Otherwise, no lines were found, or an error occurred. Return clean.
echo $2
fi
fi fi
} }
function hg_dirty {
hg_dirty_choose $ZSH_THEME_HG_PROMPT_DIRTY $ZSH_THEME_HG_PROMPT_CLEAN
}
function hgic() {
hg incoming "$@" | grep "changeset" | wc -l
}
function hgoc() {
hg outgoing "$@" | grep "changeset" | wc -l
}
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
function tab() { function tab() {
local command="cd \\\"$PWD\\\"" local command="cd \\\"$PWD\\\"; clear; "
(( $# > 0 )) && command="${command}; $*" (( $# > 0 )) && command="${command}; $*"
the_app=$( the_app=$(
...@@ -34,7 +34,7 @@ EOF ...@@ -34,7 +34,7 @@ EOF
launch session "Default Session" launch session "Default Session"
set current_session to current session set current_session to current session
tell current_session tell current_session
write text "${command}; clear;" write text "${command}"
end tell end tell
end tell end tell
end tell end tell
......
# Aliases to stop, start and restart Postgres
# Paths noted below are for Postgress installed via Homebrew on OSX
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 restartpost='stoppost && sleep 1 && startpost'
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment