Permalink
Browse files

Merge branch 'master' of github.com:robbyrussell/oh-my-zsh

Conflicts:
	plugins/bower/bower.plugin.zsh
  • Loading branch information...
2 parents db86e3e + 434f3bc commit be1837233bbd4d757ab7965a0aed07bffd5dff39 @miklos-martin committed Aug 16, 2013
Showing with 1,735 additions and 98 deletions.
  1. +2 −0 README.textile
  2. +1 −1 lib/aliases.zsh
  3. +16 −16 lib/git.zsh
  4. +3 −1 lib/termsupport.zsh
  5. +1 −1 plugins/bundler/bundler.plugin.zsh
  6. +36 −0 plugins/cabal/cabal.plugin.zsh
  7. +1 −1 plugins/capistrano/_capistrano
  8. +129 −0 plugins/celery/_celery
  9. +13 −3 plugins/coffee/_coffee
  10. +17 −1 plugins/composer/composer.plugin.zsh
  11. +2 −2 plugins/debian/debian.plugin.zsh
  12. +19 −0 plugins/docker/README.md
  13. +290 −0 plugins/docker/_docker
  14. +5 −3 plugins/gem/_gem
  15. +4 −0 plugins/git/README.md
  16. +83 −0 plugins/git/_git-branch
  17. +74 −0 plugins/git/_git-remote
  18. +18 −0 plugins/git/git.plugin.zsh
  19. +17 −9 plugins/gpg-agent/gpg-agent.plugin.zsh
  20. +11 −4 plugins/jira/jira.plugin.zsh
  21. +18 −0 plugins/knife_ssh/knife_ssh.plugin.zsh
  22. +43 −4 plugins/mercurial/mercurial.plugin.zsh
  23. +63 −0 plugins/mix/_mix
  24. +2 −2 plugins/osx/osx.plugin.zsh
  25. +381 −0 plugins/pod/_pod
  26. +6 −0 plugins/postgres/postgres.plugin.zsh
  27. +2 −0 plugins/rails/rails.plugin.zsh
  28. +56 −0 plugins/rails3/_rails3
  29. +7 −1 plugins/rails3/rails3.plugin.zsh
  30. +2 −0 plugins/rails4/rails4.plugin.zsh
  31. +17 −0 plugins/rand-quote/rand-quote.plugin.zsh
  32. +7 −0 plugins/repo/README.md
  33. +272 −0 plugins/repo/_repo
  34. +2 −0 plugins/repo/repo.plugin.zsh
  35. +3 −4 plugins/rvm/rvm.plugin.zsh
  36. +1 −1 plugins/ssh-agent/ssh-agent.plugin.zsh
  37. +1 −1 plugins/symfony/symfony.plugin.zsh
  38. +5 −3 plugins/tmux/tmux.plugin.zsh
  39. +3 −4 plugins/virtualenv/virtualenv.plugin.zsh
  40. +38 −23 plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh
  41. +43 −0 plugins/web-search/web-search.plugin.zsh
  42. +13 −4 themes/agnoster.zsh-theme
  43. +2 −0 themes/rkj-repos.zsh-theme
  44. +2 −1 themes/rkj.zsh-theme
  45. +3 −3 themes/superjarin.zsh-theme
  46. +1 −5 tools/upgrade.sh
View
2 README.textile
@@ -72,6 +72,8 @@ To disable updates entirely, put this in your ~/.zshrc
@DISABLE_AUTO_UPDATE=true@
+To upgrade directly from the command line, just run @upgrade_oh_my_zsh@
+
h3. Uninstalling
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).
View
2 lib/aliases.zsh
@@ -17,7 +17,7 @@ alias history='fc -l 1'
# List direcory contents
alias lsa='ls -lah'
-#alias l='ls -la'
+alias l='ls -la'
alias ll='ls -l'
alias la='ls -lA'
alias sl=ls # often screw this up
View
32 lib/git.zsh
@@ -1,7 +1,7 @@
# get the name of the branch we are on
function git_prompt_info() {
- ref=$(git symbolic-ref HEAD 2> /dev/null) || \
- ref=$(git rev-parse --short HEAD 2> /dev/null) || return
+ ref=$(command git symbolic-ref HEAD 2> /dev/null) || \
+ ref=$(command git rev-parse --short HEAD 2> /dev/null) || return
echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX"
}
@@ -11,16 +11,16 @@ parse_git_dirty() {
local SUBMODULE_SYNTAX=''
local GIT_STATUS=''
local CLEAN_MESSAGE='nothing to commit (working directory clean)'
- if [[ "$(git config --get oh-my-zsh.hide-status)" != "1" ]]; then
+ if [[ "$(command git config --get oh-my-zsh.hide-status)" != "1" ]]; then
if [[ $POST_1_7_2_GIT -gt 0 ]]; then
SUBMODULE_SYNTAX="--ignore-submodules=dirty"
fi
- if [[ "$DISABLE_UNTRACKED_FILES_DIRTY" != "true" ]]; then
- GIT_STATUS=$(git status -s ${SUBMODULE_SYNTAX} 2> /dev/null | tail -n1)
+ if [[ "$DISABLE_UNTRACKED_FILES_DIRTY" == "true" ]]; then
+ GIT_STATUS=$(command git status -s ${SUBMODULE_SYNTAX} -uno 2> /dev/null | tail -n1)
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
- if [[ -n $(git status -s ${SUBMODULE_SYNTAX} -uno 2> /dev/null) ]]; then
+ if [[ -n $GIT_STATUS ]]; then
echo "$ZSH_THEME_GIT_PROMPT_DIRTY"
else
echo "$ZSH_THEME_GIT_PROMPT_CLEAN"
@@ -32,10 +32,10 @@ parse_git_dirty() {
# get the difference between the local and remote branches
git_remote_status() {
- remote=${$(git rev-parse --verify ${hook_com[branch]}@{upstream} --symbolic-full-name 2>/dev/null)/refs\/remotes\/}
+ remote=${$(command git rev-parse --verify ${hook_com[branch]}@{upstream} --symbolic-full-name 2>/dev/null)/refs\/remotes\/}
if [[ -n ${remote} ]] ; then
- ahead=$(git rev-list ${hook_com[branch]}@{upstream}..HEAD 2>/dev/null | wc -l)
- behind=$(git rev-list HEAD..${hook_com[branch]}@{upstream} 2>/dev/null | wc -l)
+ ahead=$(command git rev-list ${hook_com[branch]}@{upstream}..HEAD 2>/dev/null | wc -l)
+ behind=$(command git rev-list HEAD..${hook_com[branch]}@{upstream} 2>/dev/null | wc -l)
if [ $ahead -eq 0 ] && [ $behind -gt 0 ]
then
@@ -52,24 +52,24 @@ git_remote_status() {
# Checks if there are commits ahead from remote
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"
fi
}
# Formats prompt string for current git commit 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
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
git_prompt_status() {
- INDEX=$(git status --porcelain -b 2> /dev/null)
+ INDEX=$(command git status --porcelain -b 2> /dev/null)
STATUS=""
if $(echo "$INDEX" | grep -E '^\?\? ' &> /dev/null); then
STATUS="$ZSH_THEME_GIT_PROMPT_UNTRACKED$STATUS"
@@ -96,7 +96,7 @@ git_prompt_status() {
elif $(echo "$INDEX" | grep '^AD ' &> /dev/null); then
STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
fi
- if $(git rev-parse --verify refs/stash >/dev/null 2>&1); then
+ if $(command git rev-parse --verify refs/stash >/dev/null 2>&1); then
STATUS="$ZSH_THEME_GIT_PROMPT_STASHED$STATUS"
fi
if $(echo "$INDEX" | grep '^UU ' &> /dev/null); then
@@ -121,7 +121,7 @@ function git_compare_version() {
local INPUT_GIT_VERSION=$1;
local INSTALLED_GIT_VERSION
INPUT_GIT_VERSION=(${(s/./)INPUT_GIT_VERSION});
- INSTALLED_GIT_VERSION=($(git --version 2>/dev/null));
+ INSTALLED_GIT_VERSION=($(command git --version 2>/dev/null));
INSTALLED_GIT_VERSION=(${(s/./)INSTALLED_GIT_VERSION[3]});
for i in {1..3}; do
View
4 lib/termsupport.zsh
@@ -27,7 +27,9 @@ function omz_termsupport_preexec {
emulate -L zsh
setopt extended_glob
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
View
2 plugins/bundler/bundler.plugin.zsh
@@ -7,7 +7,7 @@ alias bu="bundle update"
# 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
View
36 plugins/cabal/cabal.plugin.zsh
@@ -0,0 +1,36 @@
+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
View
2 plugins/capistrano/_capistrano
@@ -4,7 +4,7 @@
if [[ -f config/deploy.rb || -f Capfile ]]; then
if [[ ! -f .cap_tasks~ || config/deploy.rb -nt .cap_tasks~ ]]; then
echo "\nGenerating .cap_tasks~..." > /dev/stderr
- cap --tasks | grep '#' | cut -d " " -f 2 > .cap_tasks~
+ cap -v --tasks | grep '#' | cut -d " " -f 2 > .cap_tasks~
fi
compadd `cat .cap_tasks~`
fi
View
129 plugins/celery/_celery
@@ -0,0 +1,129 @@
+#compdef celery
+#autoload
+
+#celery zsh completion
+
+_celery () {
+local -a _1st_arguments ifargs dopts controlargs
+
+typeset -A opt_args
+
+_1st_arguments=('worker' 'events' 'beat' 'shell' 'multi' 'amqp' 'status' 'inspect' \
+ 'control' 'purge' 'list' 'migrate' 'call' 'result' 'report')
+ifargs=('--app=' '--broker=' '--loader=' '--config=' '--version')
+dopts=('--detach' '--umask=' '--gid=' '--uid=' '--pidfile=' '--logfile=' '--loglevel=')
+controlargs=('--timeout' '--destination')
+_arguments \
+ '(-A --app=)'{-A,--app}'[app instance to use (e.g. module.attr_name):APP]' \
+ '(-b --broker=)'{-b,--broker}'[url to broker. default is "amqp://guest@localhost//":BROKER]' \
+ '(--loader)--loader[name of custom loader class to use.:LOADER]' \
+ '(--config)--config[Name of the configuration module:CONFIG]' \
+ '(--workdir)--workdir[Optional directory to change to after detaching.:WORKING_DIRECTORY]' \
+ '(-q --quiet)'{-q,--quiet}'[Don"t show as much output.]' \
+ '(-C --no-color)'{-C,--no-color}'[Don"t display colors.]' \
+ '(--version)--version[show program"s version number and exit]' \
+ '(- : *)'{-h,--help}'[show this help message and exit]' \
+ '*:: :->subcmds' && return 0
+
+if (( CURRENT == 1 )); then
+ _describe -t commands "celery subcommand" _1st_arguments
+ return
+fi
+
+case "$words[1]" in
+ worker)
+ _arguments \
+ '(-C --concurrency=)'{-C,--concurrency=}'[Number of child processes processing the queue. The default is the number of CPUs.]' \
+ '(--pool)--pool=:::(processes eventlet gevent threads solo)' \
+ '(--purge --discard)'{--discard,--purge}'[Purges all waiting tasks before the daemon is started.]' \
+ '(-f --logfile=)'{-f,--logfile=}'[Path to log file. If no logfile is specified, stderr is used.]' \
+ '(--loglevel=)--loglevel=:::(critical error warning info debug)' \
+ '(-N --hostname=)'{-N,--hostname=}'[Set custom hostname, e.g. "foo.example.com".]' \
+ '(-B --beat)'{-B,--beat}'[Also run the celerybeat periodic task scheduler.]' \
+ '(-s --schedule=)'{-s,--schedule=}'[Path to the schedule database if running with the -B option. Defaults to celerybeat-schedule.]' \
+ '(-S --statedb=)'{-S,--statedb=}'[Path to the state database.Default: None]' \
+ '(-E --events)'{-E,--events}'[Send events that can be captured by monitors like celeryev, celerymon, and others.]' \
+ '(--time-limit=)--time-limit=[nables a hard time limit (in seconds int/float) for tasks]' \
+ '(--soft-time-limit=)--soft-time-limit=[Enables a soft time limit (in seconds int/float) for tasks]' \
+ '(--maxtasksperchild=)--maxtasksperchild=[Maximum number of tasks a pool worker can execute before it"s terminated and replaced by a new worker.]' \
+ '(-Q --queues=)'{-Q,--queues=}'[List of queues to enable for this worker, separated by comma. By default all configured queues are enabled.]' \
+ '(-I --include=)'{-I,--include=}'[Comma separated list of additional modules to import.]' \
+ '(--pidfile=)--pidfile=[Optional file used to store the process pid.]' \
+ '(--autoscale=)--autoscale=[Enable autoscaling by providing max_concurrency, min_concurrency.]' \
+ '(--autoreload)--autoreload[Enable autoreloading.]' \
+ '(--no-execv)--no-execv[Don"t do execv after multiprocessing child fork.]'
+ compadd -a ifargs
+ ;;
+ inspect)
+ _values -s \
+ 'active[dump active tasks (being processed)]' \
+ 'active_queues[dump queues being consumed from]' \
+ 'ping[ping worker(s)]' \
+ 'registered[dump of registered tasks]' \
+ 'report[get bugreport info]' \
+ 'reserved[dump reserved tasks (waiting to be processed)]' \
+ 'revoked[dump of revoked task ids]' \
+ 'scheduled[dump scheduled tasks (eta/countdown/retry)]' \
+ 'stats[dump worker statistics]'
+ compadd -a controlargs ifargs
+ ;;
+ control)
+ _values -s \
+ 'add_consumer[tell worker(s) to start consuming a queue]' \
+ 'autoscale[change autoscale settings]' \
+ 'cancel_consumer[tell worker(s) to stop consuming a queue]' \
+ 'disable_events[tell worker(s) to disable events]' \
+ 'enable_events[tell worker(s) to enable events]' \
+ 'pool_grow[start more pool processes]' \
+ 'pool_shrink[use less pool processes]' \
+ 'rate_limit[tell worker(s) to modify the rate limit for a task type]' \
+ 'time_limit[tell worker(s) to modify the time limit for a task type.]'
+ compadd -a controlargs ifargs
+ ;;
+ multi)
+ _values -s \
+ '--nosplash[Don"t display program info.]' \
+ '--verbose[Show more output.]' \
+ '--no-color[Don"t display colors.]' \
+ '--quiet[Don"t show as much output.]' \
+ 'start' 'restart' 'stopwait' 'stop' 'show' \
+ 'names' 'expand' 'get' 'kill'
+ compadd -a ifargs
+ ;;
+ amqp)
+ _values -s \
+ 'queue.declare' 'queue.purge' 'exchange.delete' 'basic.publish' \
+ 'exchange.declare' 'queue.delete' 'queue.bind' 'basic.get'
+ ;;
+ list)
+ _values -s, 'bindings'
+ ;;
+ shell)
+ _values -s \
+ '--ipython[force iPython.]' \
+ '--bpython[force bpython.]' \
+ '--python[force default Python shell.]' \
+ '--without-tasks[don"t add tasks to locals.]' \
+ '--eventlet[use eventlet.]' \
+ '--gevent[use gevent.]'
+ compadd -a ifargs
+ ;;
+ beat)
+ _arguments \
+ '(-s --schedule=)'{-s,--schedule=}'[Path to the schedule database. Defaults to celerybeat-schedule.]' \
+ '(-S --scheduler=)'{-S,--scheduler=}'[Scheduler class to use. Default is celery.beat.PersistentScheduler.]' \
+ '(--max-interval)--max-interval[]'
+ compadd -a dopts fargs
+ ;;
+ events)
+ _arguments \
+ '(-d --dump)'{-d,--dump}'[Dump events to stdout.]' \
+ '(-c --camera=)'{-c,--camera=}'[Take snapshots of events using this camera.]' \
+ '(-F --frequency=)'{-F,--frequency=}'[Camera: Shutter frequency. Default is every 1.0 seconds.]' \
+ '(-r --maxrate=)'{-r,--maxrate=}'[Camera: Optional shutter rate limit (e.g. 10/m).]'
+ compadd -a dopts fargs
+ ;;
+ *)
+ ;;
+ esac
+}
View
16 plugins/coffee/_coffee
@@ -35,27 +35,37 @@
# -------
#
# * 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
+version=(${(f)"$(_call_program version $words[1] --version)"})
+version=${${(z)${version[1]}}[3]}
+first=$(echo $version|cut -d '.' -f 1)
+second=$(echo $version|cut -d '.' -f 2)
+third=$(echo $version|cut -d '.' -f 3)
+if (( $first < 2 )) && (( $second < 7 )) && (( $third < 3 ));then
+ opts+=('(-l --lint)'{-l,--lint}'[pipe the compiled JavaScript through JavaScript Lint]'
+ '(-r --require)'{-r,--require}'[require a library before executing your script]:library')
+fi
+
_arguments -C \
'(- *)'{-h,--help}'[display this help message]' \
'(- *)'{-v,--version}'[display the version number]' \
+ $opts \
'(-b --bare)'{-b,--bare}'[compile without a top-level function wrapper]' \
'(-e --eval)'{-e,--eval}'[pass a string from the command line as input]:Inline Script' \
'(-i --interactive)'{-i,--interactive}'[run an interactive CoffeeScript REPL]' \
'(-j --join)'{-j,--join}'[concatenate the source CoffeeScript before compiling]:Destination JS file:_files -g "*.js"' \
- '(-l --lint)'{-l,--lint}'[pipe the compiled JavaScript through JavaScript Lint]' \
'(--nodejs)--nodejs[pass options directly to the "node" binary]' \
'(-c --compile)'{-c,--compile}'[compile to JavaScript and save as .js files]' \
'(-o --output)'{-o,--output}'[set the output directory for compiled JavaScript]:Output Directory:_files -/' \
'(-n -t -p)'{-n,--nodes}'[print out the parse tree that the parser produces]' \
'(-n -t -p)'{-p,--print}'[print out the compiled JavaScript]' \
'(-n -t -p)'{-t,--tokens}'[print out the tokens that the lexer/rewriter produce]' \
- '(-r --require)'{-r,--require}'[require a library before executing your script]:library' \
'(-s --stdio)'{-s,--stdio}'[listen for and compile scripts over stdio]' \
'(-w --watch)'{-w,--watch}'[watch scripts for changes and rerun commands]' \
'*:script or directory:_files' && ret=0
View
18 plugins/composer/composer.plugin.zsh
@@ -10,9 +10,25 @@ _composer_get_command_list () {
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 () {
+ local curcontext="$curcontext" state line
+ typeset -A opt_args
+ _arguments \
+ '1: :->command'\
+ '*: :->args'
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
compadd create-project init search selfupdate show
fi
View
4 plugins/debian/debian.plugin.zsh
@@ -6,14 +6,14 @@
# Use aptitude if installed, or apt-get if not.
# You can just set apt_pref='apt-get' to override it.
-if [[ -e $( which aptitude 2>&1 ) ]]; then
+if [[ -e $( which -p aptitude 2>&1 ) ]]; then
apt_pref='aptitude'
else
apt_pref='apt-get'
fi
# Use sudo by default if it's installed
-if [[ -e $( which sudo 2>&1 ) ]]; then
+if [[ -e $( which -p sudo 2>&1 ) ]]; then
use_sudo=1
fi
View
19 plugins/docker/README.md
@@ -0,0 +1,19 @@
+## Docker autocomplete plugin
+
+- Adds autocomplete options for all docker commands.
+- Will also show containerIDs and Image names where applicable
+
+####Shows help for all commands
+![General Help](http://i.imgur.com/tUBO9jh.png "Help for all commands")
+
+
+####Shows your downloaded images where applicable
+![Images](http://i.imgur.com/R8ZsWO1.png "Images")
+
+
+####Shows your running containers where applicable
+![Containers](http://i.imgur.com/WQtbheg.png "Containers")
+
+
+
+Maintainer : Ahmed Azaan ([@aeonazaan](https://twitter.com/aeonazaan))
View
290 plugins/docker/_docker
@@ -0,0 +1,290 @@
+#compdef docker
+
+# Docker autocompletion for oh-my-zsh
+# Requires: Docker installed
+# Author : Azaan (@aeonazaan)
+
+
+# ----- Helper functions
+# Output a selectable list of all running docker containers
+__docker_containers() {
+ declare -a cont_cmd
+ cont_cmd=($(docker ps | awk 'NR>1{print $1":[CON("$1")"$2"("$3")]"}'))
+ _describe 'containers' cont_cmd
+}
+
+# output a selectable list of all docker images
+__docker_images() {
+ declare -a img_cmd
+ img_cmd=($(docker images | awk 'NR>1{print $1}'))
+ _describe 'images' img_cmd
+}
+
+# ----- Commands
+# Seperate function for each command, makes extension easier later
+# ---------------------------
+__attach() {
+ __docker_containers
+}
+
+__build() {
+ _arguments \
+ '-q=false[Suppress verbose build output]' \
+ '-t="[fuck to be applied to the resulting image in case of success]' \
+ '*:files:_files'
+}
+
+__commit() {
+ _arguments \
+ '-author="[Author]' \
+ '-m="[Commit message]' \
+ '-run="[Config automatically applied when the image is run.\n]'
+ __docker_containers
+}
+
+__diff() {
+ __docker_containers
+}
+
+__export() {
+ __docker_containers
+}
+
+
+__history() {
+ __docker_images
+}
+
+__images() {
+ _arguments \
+ '-a[show all images]' \
+ '-notrunc[dont truncate output]' \
+ '-q[only show numeric IDs]' \
+ '-viz[output graph in graphviz format]'
+ __docker_images
+}
+
+__import() {
+ _arguments '*:files:_files'
+}
+
+__info() {
+ # no arguments
+}
+
+__insert() {
+ __docker_images
+ _arguments '*:files:_files'
+}
+
+__inspect() {
+ __docker_images
+ __docker_containers
+}
+
+__kill() {
+ __docker_containers
+}
+
+__login() {
+ _arguments \
+ '-e="[email]' \
+ '-p="[password]' \
+ '-u="[username]' \
+}
+
+__logs() {
+ __docker_containers
+}
+
+__port() {
+ __docker_containers
+}
+
+__top() {
+ __docker_containers
+}
+
+__ps() {
+ _arguments \
+ '-a[Show all containers. Only running containers are shown by default.]' \
+ '-beforeId="[Show only container created before Id, include non-running ones.]' \
+ '-l[Show only the latest created container, include non-running ones.]' \
+ '-n=[Show n last created containers, include non-running ones.]' \
+ '-notrurrrrnc[Dont truncate output]' \
+ '-q[Only display numeric IDs]' \
+ '-s[Display sizes]' \
+ '-sinceId="[Show only containers created since Id, include non-running ones.]'
+}
+
+__pull() {
+ _arguments '-t="[Download tagged image in repository]'
+}
+
+__push() {
+
+}
+
+__restart() {
+ _arguments '-t=[number of seconds to try to stop before killing]'
+ __docker_containers
+}
+
+__rm() {
+ _arguments '-v[Remove the volumes associated to the container]'
+ __docker_containers
+}
+
+__rmi() {
+ __docker_images
+}
+
+__run() {
+ _arguments \
+ '-a=[Attach to stdin, stdout or stderr.]' \
+ '-c=[CPU shares (relative weight)]' \
+ '-d[Detached mode: leave the container running in the background]' \
+ '-dns=[Set custom dns servers]' \
+ '-e=[Set environment variables]' \
+ '-entrypoint="[Overwrite the default entrypoint of the image]' \
+ '-h="[Container host name]' \
+ '-i[Keep stdin open even if not attached]' \
+ '-m=[Memory limit (in bytes)]' \
+ '-p=[Expose a containers port to the host (use docker port to see the actual mapping)]' \
+ '-t[Allocate a pseudo-tty]' \
+ '-u="[Username or UID]' \
+ '-v=[Bind mount a volume (e.g. from the host: -v /host:/container, from docker: -v /container)]' \
+ '-volumes-from="[Mount volumes from the specified container]'
+ __docker_images
+}
+
+__search() {
+ _arguments '-notrunc[Dont truncate output]'
+}
+
+__start() {
+ __docker_containers
+}
+
+__stop() {
+ _arguments '-t=[number of seconds to try to stop before killing]'
+ __docker_containers
+}
+
+__tag() {
+ _arguments '-f[Force]'
+ __docker_images
+}
+
+__version() {
+
+}
+
+__wait() {
+ __docker_containers
+}
+
+# end commands ---------
+# ----------------------
+
+local -a _1st_arguments
+_1st_arguments=(
+ "attach":"Attach to a running container"
+ "build":"Build a container from a Dockerfile"
+ "commit":"Create a new image from a container's changes"
+ "diff":"Inspect changes on a container's filesystem"
+ "export":"Stream the contents of a container as a tar archive"
+ "history":"Show the history of an image"
+ "images":"List images"
+ "import":"Create a new filesystem image from the contents of a tarball"
+ "info":"Display system-wide information"
+ "insert":"Insert a file in an image"
+ "inspect":"Return low-level information on a container"
+ "kill":"Kill a running container"
+ "login":"Register or Login to the docker registry server"
+ "logs":"Fetch the logs of a container"
+ "port":"Lookup the public-facing port which is NAT-ed to PRIVATE_PORT"
+ "top":"Lookup the running processes of a container"
+ "ps":"List containers"
+ "pull":"Pull an image or a repository from the docker registry server"
+ "push":"Push an image or a repository to the docker registry server"
+ "restart":"Restart a running container"
+ "rm":"Remove one or more containers"
+ "rmi":"Remove one or more images"
+ "run":"Run a command in a new container"
+ "search":"Search for an image in the docker index"
+ "start":"Start a stopped container"
+ "stop":"Stop a running container"
+ "tag":"Tag an image into a repository"
+ "version":"Show the docker version information"
+ "wait":"Block until a container stops, then print its exit code"
+)
+
+_arguments '*:: :->command'
+
+if (( CURRENT == 1 )); then
+ _describe -t commands "docker command" _1st_arguments
+ return
+fi
+
+local -a _command_args
+case "$words[1]" in
+ attach)
+ __docker_containers ;;
+ build)
+ __build ;;
+ commit)
+ __commit ;;
+ diff)
+ __diff ;;
+ export)
+ __export ;;
+ history)
+ __history ;;
+ images)
+ __images ;;
+ import)
+ __import ;;
+ info)
+ __info ;;
+ insert)
+ __insert ;;
+ inspect)
+ __inspect ;;
+ kill)
+ __kill ;;
+ login)
+ __login ;;
+ logs)
+ __logs ;;
+ port)
+ __port ;;
+ top)
+ __top ;;
+ ps)
+ __ps ;;
+ pull)
+ __pull ;;
+ push)
+ __push ;;
+ restart)
+ __restart ;;
+ rm)
+ __rm ;;
+ rmi)
+ __rmi ;;
+ run)
+ __run ;;
+ search)
+ __search ;;
+ start)
+ __start ;;
+ stop)
+ __stop ;;
+ tag)
+ __tag ;;
+ version)
+ __version ;;
+ wait)
+ __wait ;;
+esac
View
8 plugins/gem/_gem
@@ -9,8 +9,9 @@ _gem_installed() {
local -a _1st_arguments
_1st_arguments=(
+ 'build:Build a gem from a gemspec'
'cert:Manage RubyGems certificates and signing settings'
- 'check:Check installed gems'
+ 'check:Check a gem repository for added or missing files'
'cleanup:Clean up old versions of installed gems in the local repository'
'contents:Display the contents of the installed gems'
'dependency:Show the dependencies of an installed gem'
@@ -21,7 +22,7 @@ _1st_arguments=(
'install:Install a gem into the local repository'
'list:Display gems whose name starts with STRING'
'lock:Generate a lockdown list of gems'
- 'mirror:Mirror a gem repository'
+ 'mirror:Mirror all gem files (requires rubygems-mirror)'
'outdated:Display all gems that need updates'
'owner:Manage gem owners on RubyGems.org.'
'pristine:Restores installed gems to pristine condition from files located in the gem cache'
@@ -35,8 +36,9 @@ _1st_arguments=(
'stale:List gems along with access times'
'uninstall:Uninstall gems from the local repository'
'unpack:Unpack an installed gem to the current directory'
- 'update:Update the named gems (or all installed gems) in the local repository'
+ 'update:Update installed gems to the latest version'
'which:Find the location of a library file you can require'
+ 'yank:Remove a specific gem version release from RubyGems.org'
)
local expl
View
4 plugins/git/README.md
@@ -0,0 +1,4 @@
+## git
+**Maintainer:** [Stibbons](https://github.com/Stibbons)
+
+This plugin adds several git aliases and increase the completion function provided by zsh
View
83 plugins/git/_git-branch
@@ -0,0 +1,83 @@
+#compdef git-branch
+
+_git-branch ()
+{
+ declare l c m d
+
+ l='--color --no-color -r -a --all -v --verbose --abbrev --no-abbrev'
+ c='-l -f --force -t --track --no-track --set-upstream --contains --merged --no-merged'
+ m='-m -M'
+ d='-d -D'
+
+ declare -a dependent_creation_args
+ if (( words[(I)-r] == 0 )); then
+ dependent_creation_args=(
+ "($l $m $d): :__git_branch_names"
+ "::start-point:__git_revisions")
+ fi
+
+ declare -a dependent_deletion_args
+ if (( words[(I)-d] || words[(I)-D] )); then
+ dependent_creation_args=
+ dependent_deletion_args=(
+ '-r[delete only remote-tracking branches]')
+ if (( words[(I)-r] )); then
+ dependent_deletion_args+='*: :__git_ignore_line_inside_arguments __git_remote_branch_names'
+ else
+ dependent_deletion_args+='*: :__git_ignore_line_inside_arguments __git_branch_names'
+ fi
+ fi
+
+ declare -a dependent_modification_args
+ if (( words[(I)-m] || words[(I)-M] )); then
+ dependent_creation_args=
+ dependent_modification_args=(
+ ':old or new branch name:__git_branch_names'
+ '::new branch name:__git_branch_names')
+ fi
+
+ _arguments -w -S -s \
+ "($c $m $d --no-color :)--color=-[turn on branch coloring]:: :__git_color_whens" \
+ "($c $m $d : --color)--no-color[turn off branch coloring]" \
+ "($c $m -a --all)-r[list or delete only remote-tracking branches]" \
+ "($c $m $d : -r)"{-a,--all}"[list both remote-tracking branches and local branches]" \
+ "($c $m $d : -v --verbose)"{-v,--verbose}'[show SHA1 and commit subject line for each head]' \
+ "($c $m $d :)--abbrev=[set minimum SHA1 display-length]: :__git_guard_number length" \
+ "($c $m $d :)--no-abbrev[do not abbreviate sha1s]" \
+ "($l $m $d)-l[create the branch's reflog]" \
+ "($l $m $d -f --force)"{-f,--force}"[force the creation of a new branch]" \
+ "($l $m $d -t --track)"{-t,--track}"[set up configuration so that pull merges from the start point]" \
+ "($l $m $d)--no-track[override the branch.autosetupmerge configuration variable]" \
+ "($l $m $d)--set-upstream[set up configuration so that pull merges]" \
+ "($l $m $d)--contains=[only list branches which contain the specified commit]: :__git_committishs" \
+ "($l $m $d)--merged=[only list branches which are fully contained by HEAD]: :__git_committishs" \
+ "($l $m $d)--no-merged=[do not list branches which are fully contained by HEAD]: :__git_committishs" \
+ $dependent_creation_args \
+ "($l $c $d -M)-m[rename a branch and the corresponding reflog]" \
+ "($l $c $d -m)-M[rename a branch even if the new branch-name already exists]" \
+ $dependent_modification_args \
+ "($l $c $m -D)-d[delete a fully merged branch]" \
+ "($l $c $m -d)-D[delete a branch]" \
+ $dependent_deletion_args
+}
+
+(( $+functions[__git_ignore_line] )) ||
+__git_ignore_line () {
+ declare -a ignored
+ ignored=()
+ ((CURRENT > 1)) &&
+ ignored+=(${line[1,CURRENT-1]//(#m)[\[\]()\\*?#<>~\^]/\\$MATCH})
+ ((CURRENT < $#line)) &&
+ ignored+=(${line[CURRENT+1,-1]//(#m)[\[\]()\\*?#<>~\^]/\\$MATCH})
+ $* -F ignored
+}
+
+(( $+functions[__git_ignore_line_inside_arguments] )) ||
+__git_ignore_line_inside_arguments () {
+ declare -a compadd_opts
+
+ zparseopts -D -E -a compadd_opts V: J: 1 2 n f X: M: P: S: r: R: q F:
+
+ __git_ignore_line $* $compadd_opts
+}
+
View
74 plugins/git/_git-remote
@@ -0,0 +1,74 @@
+#compdef git-remote
+
+# NOTE: --track is undocumented.
+# TODO: --track, -t, --master, and -m should take remote branches, I guess.
+# NOTE: --master is undocumented.
+# NOTE: --fetch is undocumented.
+_git-remote () {
+ local curcontext=$curcontext state line
+ declare -A opt_args
+
+ _arguments -C \
+ ':command:->command' \
+ '*::options:->options' && ret=0
+
+ case $state in
+ (command)
+ declare -a commands
+
+ commands=(
+ 'add:add a new remote'
+ 'show:show information about a given remote'
+ 'prune:delete all stale tracking branches for a given remote'
+ 'update:fetch updates for a set of remotes'
+ 'rm:remove a remote from .git/config and all associated tracking branches'
+ 'rename:rename a remote from .git/config and update all associated tracking branches'
+ 'set-head:sets or deletes the default branch'
+ 'set-branches:changes the list of branches tracked by the named remote.'
+ 'set-url:changes URL remote points to.'
+ )
+
+ _describe -t commands 'sub-command' commands && ret=0
+ ;;
+ (options)
+ case $line[1] in
+ (add)
+ _arguments \
+ '*'{--track,-t}'[track given branch instead of default glob refspec]:branch:__git_branch_names' \
+ '(--master -m)'{--master,-m}'[set the remote'\''s HEAD to point to given master branch]:branch:__git_branch_names' \
+ '(--fetch -f)'{--fetch,-f}'[run git-fetch on the new remote after it has been created]' \
+ ':branch name:__git_remotes' \
+ ':url:_urls' && ret=0
+ ;;
+ (show)
+ _arguments \
+ '-n[do not contact the remote for a list of branches]' \
+ ':remote:__git_remotes' && ret=0
+ ;;
+ (prune)
+ _arguments \
+ '(--dry-run -n)'{-n,--dry-run}'[do not actually prune, only list what would be done]' \
+ ':remote:__git_remotes' && ret=0
+ ;;
+ (update)
+ __git_remote-groups && ret=0
+ ;;
+ (rm)
+ __git_remotes && ret=0
+ ;;
+ (rename)
+ __git_remotes && ret=0
+ ;;
+ (set-url)
+ _arguments \
+ '*--push[manipulate push URLs]' \
+ '(--add)--add[add URL]' \
+ '(--delete)--delete[delete URLs]' \
+ ':branch name:__git_remotes' \
+ ':url:_urls' && ret=0
+ ;;
+
+ esac
+ ;;
+ esac
+}
View
18 plugins/git/git.plugin.zsh
@@ -22,6 +22,8 @@ alias gca='git commit -v -a'
compdef _git gc=git-commit
alias gca!='git commit -v -a --amend'
compdef _git gca!=git-commit
+alias gcmsg='git commit -m'
+compdef _git gcmsg=git-commit
alias gco='git checkout'
compdef _git gco=git-checkout
alias gcm='git checkout master'
@@ -37,6 +39,12 @@ alias grset='git remote set-url'
compdef _git grset=git-remote
alias grup='git remote update'
compdef _git grset=git-remote
+alias grbi='git rebase -i'
+compdef _git grbi=git-rebase
+alias grbc='git rebase --continue'
+compdef _git grbc=git-rebase
+alias grba='git rebase --abort'
+compdef _git grba=git-rebase
alias gb='git branch'
compdef _git gb=git-branch
alias gba='git branch -a'
@@ -62,9 +70,17 @@ alias gm='git merge'
compdef _git gm=git-merge
alias grh='git reset HEAD'
alias grhh='git reset HEAD --hard'
+alias gclean='git reset --hard && git clean -dfx'
alias gwc='git whatchanged -p --abbrev-commit --pretty=medium'
alias gf='git ls-files | grep'
alias gpoat='git push origin --all && git push origin --tags'
+alias gmt='git mergetool --no-prompt'
+compdef _git gm=git-mergetool
+
+alias gg='git gui citool'
+alias gga='git gui citool --amend'
+alias gk='gitk --all --branches'
+alias gsts='git stash show --text'
# Will cd into the top of the current repository
# or submodule.
@@ -95,6 +111,8 @@ function current_repository() {
# these aliases take advantage of the previous function
alias ggpull='git pull origin $(current_branch)'
compdef ggpull=git
+alias ggpur='git pull --rebase origin $(current_branch)'
+compdef ggpur=git
alias ggpush='git push origin $(current_branch)'
compdef ggpush=git
alias ggpnp='git pull origin $(current_branch) && git push origin $(current_branch)'
View
26 plugins/gpg-agent/gpg-agent.plugin.zsh
@@ -14,16 +14,24 @@ function start_agent_withssh {
export SSH_AGENT_PID
}
-# source settings of old agent, if applicable
-if [ -f "${GPG_ENV}" ]; then
- . ${GPG_ENV} > /dev/null
-fi
+# check if another agent is running
+if ! gpg-connect-agent --quiet /bye > /dev/null 2> /dev/null; then
+ # source settings of old agent, if applicable
+ if [ -f "${GPG_ENV}" ]; then
+ . ${GPG_ENV} > /dev/null
+ fi
-# check for existing ssh-agent
-if ssh-add -l > /dev/null 2> /dev/null; then
- start_agent_nossh;
-else
- start_agent_withssh;
+ # check again if another agent is running using the newly sourced settings
+ if ! gpg-connect-agent --quiet /bye > /dev/null 2> /dev/null; then
+ # check for existing ssh-agent
+ if ssh-add -l > /dev/null 2> /dev/null; then
+ # ssh-agent running, start gpg-agent without ssh support
+ start_agent_nossh;
+ else
+ # otherwise start gpg-agent with ssh support
+ start_agent_withssh;
+ fi
+ fi
fi
GPG_TTY=$(tty)
View
15 plugins/jira/jira.plugin.zsh
@@ -3,14 +3,21 @@
# .jira-url in the current directory takes precedence
#
# If you use Rapid Board, set:
-#JIRA_RAPID_BOARD="yes"
+#JIRA_RAPID_BOARD="true"
# in you .zshrc
#
# Setup: cd to/my/project
# echo "https://name.jira.com" >> .jira-url
# Usage: jira # opens a new issue
# jira ABC-123 # Opens an existing issue
open_jira_issue () {
+ local open_cmd
+ if [[ $(uname -s) == 'Darwin' ]]; then
+ open_cmd='open'
+ else
+ open_cmd='xdg-open'
+ fi
+
if [ -f .jira-url ]; then
jira_url=$(cat .jira-url)
elif [ -f ~/.jira-url ]; then
@@ -27,10 +34,10 @@ open_jira_issue () {
`open $jira_url/secure/CreateIssue!default.jspa`
else
echo "Opening issue #$1"
- if [[ "x$JIRA_RAPID_BOARD" = "yes" ]]; then
- `open $jira_url/issues/$1`
+ if [[ "x$JIRA_RAPID_BOARD" = "xtrue" ]]; then
+ $open_cmd "$jira_url/issues/$1"
else
- `open $jira_url/browse/$1`
+ $open_cmd "$jira_url/browse/$1"
fi
fi
}
View
18 plugins/knife_ssh/knife_ssh.plugin.zsh
@@ -0,0 +1,18 @@
+function knife_ssh() {
+ grep -q $1 ~/.knife_comp~ 2> /dev/null || rm -f ~/.knife_comp~;
+ ssh $(knife node show $1 | awk '/IP:/{print $2}')
+}
+
+_knife_ssh() {
+ if hash knife 2>/dev/null; then
+ if [[ ! -f ~/.knife_comp~ ]]; then
+ echo "\nGenerating ~/.knife_comp~..." >/dev/stderr
+ knife node list > ~/.knife_comp~
+ fi
+ compadd $(<~/.knife_comp~)
+ else
+ echo "Could not find knife" > /dev/stderr;
+ fi
+}
+
+compdef _knife_ssh knife_ssh
View
47 plugins/mercurial/mercurial.plugin.zsh
@@ -1,4 +1,3 @@
-
# Mercurial
alias hgc='hg commit'
alias hgb='hg branch'
@@ -17,8 +16,48 @@ alias hgs='hg status'
# this is the 'git commit --amend' equivalent
alias hgca='hg qimport -r tip ; hg qrefresh -e ; hg qfinish tip'
-function hg_current_branch() {
- if [ -d .hg ]; then
- echo hg:$(hg branch)
+function in_hg() {
+ if [[ -d .hg ]] || $(hg summary > /dev/null 2>&1); then
+ echo 1
+ fi
+}
+
+function hg_get_branch_name() {
+ if [ $(in_hg) ]; then
+ echo $(hg branch)
+ fi
+}
+
+function hg_prompt_info {
+ if [ $(in_hg) ]; then
+ _DISPLAY=$(hg_get_branch_name)
+ echo "$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_HG_PROMPT_PREFIX\
+$ZSH_THEME_REPO_NAME_COLOR$_DISPLAY$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_HG_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR$(hg_dirty)$ZSH_PROMPT_BASE_COLOR"
+ unset _DISPLAY
+ fi
+}
+
+function hg_dirty_choose {
+ if [ $(in_hg) ]; then
+ hg status 2> /dev/null | grep -Eq '^\s*[ACDIM!?L]'
+ if [ $pipestatus[-1] -eq 0 ]; then
+ # Grep exits with 0 when "One or more lines were selected", return "dirty".
+ echo $1
+ else
+ # Otherwise, no lines were found, or an error occurred. Return clean.
+ echo $2
+ fi
fi
}
+
+function hg_dirty {
+ hg_dirty_choose $ZSH_THEME_HG_PROMPT_DIRTY $ZSH_THEME_HG_PROMPT_CLEAN
+}
+
+function hgic() {
+ hg incoming "$@" | grep "changeset" | wc -l
+}
+
+function hgoc() {
+ hg outgoing "$@" | grep "changeset" | wc -l
+}
View
63 plugins/mix/_mix
@@ -0,0 +1,63 @@
+#compdef mix
+#autoload
+
+# Elixir mix zsh completion
+
+local -a _1st_arguments
+_1st_arguments=(
+ 'archive:Archive this project into a .ez file'
+ 'clean:Clean generated application files'
+ 'compile:Compile source files'
+ 'deps:List dependencies and their status'
+ "deps.clean:Remove dependencies' files"
+ 'deps.compile:Compile dependencies'
+ 'deps.get:Get all out of date dependencies'
+ 'deps.unlock:Unlock the given dependencies'
+ 'deps.update:Update dependencies'
+ 'do:Executes the commands separated by comma'
+ 'escriptize:Generates an escript for the project'
+ 'help:Print help information for tasks'
+ 'local:List local tasks'
+ 'local.install:Install a task or an archive locally'
+ 'local.rebar:Install rebar locally'
+ 'local.uninstall:Uninstall local tasks or archives'
+ 'new:Creates a new Elixir project'
+ 'run:Run the given file or expression'
+ "test:Run a project's tests"
+ '--help:Describe available tasks'
+ '--version:Prints the Elixir version information'
+)
+
+__task_list ()
+{
+ local expl
+ declare -a tasks
+
+ tasks=(archive clean compile deps deps.clean deps.compile deps.get deps.unlock deps.update do escriptize help local local.install local.rebar local.uninstall new run test)
+
+ _wanted tasks expl 'help' compadd $tasks
+}
+
+local expl
+
+local curcontext="$curcontext" state line
+typeset -A opt_args
+
+_arguments -C \
+ ':command:->command' \
+ '*::options:->options'
+
+case $state in
+ (command)
+ _describe -t commands "mix subcommand" _1st_arguments
+ return
+ ;;
+
+ (options)
+ case $line[1] in
+ (help)
+ _arguments ':feature:__task_list'
+ esac
+ ;;
+esac
+
View
4 plugins/osx/osx.plugin.zsh
@@ -6,7 +6,7 @@
# ------------------------------------------------------------------------------
function tab() {
- local command="cd \\\"$PWD\\\""
+ local command="cd \\\"$PWD\\\"; clear; "
(( $# > 0 )) && command="${command}; $*"
the_app=$(
@@ -34,7 +34,7 @@ EOF
launch session "Default Session"
set current_session to current session
tell current_session
- write text "${command}; clear;"
+ write text "${command}"
end tell
end tell
end tell
View
381 plugins/pod/_pod
@@ -0,0 +1,381 @@
+#compdef pod
+#autoload
+
+# -----------------------------------------------------------------------------
+# FILE: _pod
+# DESCRIPTION: Cocoapods autocomplete plugin for Oh-My-Zsh
+# http://cocoapods.org
+# AUTHOR: Alexandre Joly (alexandre.joly@mekanics.ch)
+# GITHUB: https://github.com/mekanics
+# TWITTER: @jolyAlexandre
+# VERSION: 0.0.1
+# LICENSE: MIT
+# -----------------------------------------------------------------------------
+
+local -a _1st_arguments
+_1st_arguments=(
+ 'help:Show help for the given command.'
+ 'install:Install project dependencies'
+ 'ipc:Inter-process communication'
+ 'list:List pods'
+ 'outdated:Show outdated project dependencies'
+ 'podfile-info:Shows information on installed Pods'
+ 'push:Push new specifications to a spec-repo'
+ 'repo:Manage spec-repositories'
+ 'search:Searches for pods'
+ 'setup:Setup the CocoaPods environment'
+ 'spec:Manage pod specs'
+ 'update:Update outdated project dependencies'
+)
+
+local -a _repo_arguments
+_repo_arguments=(
+ 'add:Add a spec repo'
+ 'lint:Validates all specs in a repo'
+ 'update:Update a spec repo'
+)
+
+local -a _spec_arguments
+_spec_arguments=(
+ 'cat:Prints a spec file'
+ 'create:Create spec file stub'
+ 'edit:Edit a spec file'
+ 'lint:Validates a spec file'
+ 'which:Prints the path of the given spec'
+)
+
+local -a _ipc_arguments
+_ipc_arguments=(
+ 'list:Lists the specifications know to CocoaPods'
+ 'podfile:Converts a Podfile to YAML'
+ 'repl:The repl listens to commands on standard input'
+ 'spec:Converts a podspec to YAML'
+ 'update-search-index:Updates the search index'
+)
+
+local -a _list_arguments
+_list_arguments=(
+ 'new:Lists pods introduced in the master spec-repo since the last check'
+)
+
+local -a _inherited_options
+_inherited_options=(
+ '(--silent)--silent[Show nothing]' \
+ '(--version)--version[Show the version of CocoaPods]' \
+ '(--no-color)--no-color[Show output without color]' \
+ '(--verbose)--verbose[Show more debugging information]' \
+ '(--help)--help[Show help banner of specified command]'
+)
+
+local -a _install_options
+_install_options=(
+ '(--no-clean)--no-clean[Leave SCM dirs like `.git` and `.svn` intact after downloading]' \
+ '(--no-integrate)--no-integrate[Skip integration of the Pods libraries in the Xcode project(s)]' \
+ '(--no-repo-update)--no-repo-update[Skip running `pod repo update` before install]'
+)
+
+local -a _update_options
+_update_options=(
+ '(--no-clean)--no-clean[Leave SCM dirs like `.git` and `.svn intact after downloading]' \
+ '(--no-integrate)--no-integrate[Skip integration of the Pods libraries in the Xcode project(s)]' \
+ '(--no-repo-update)--no-repo-update[Skip running `pod repo update before install]'
+)
+
+local -a _outdated_options
+_outdated_options=(
+ '(--no-repo-update)--no-repo-update[Skip running `pod repo update` before install]'
+)
+
+local -a _search_options
+_search_options=(
+ '(--full)--full[Search by name, summary, and description]' \
+ '(--stats)--stats[Show additional stats (like GitHub watchers and forks)]' \
+ '(--ios)--ios[Restricts the search to Pods supported on iOS]' \
+ '(--osx)--osx[Restricts the search to Pods supported on OS X]'
+)
+
+local -a _list_options
+_list_options=(
+ '(--update)--update[Run `pod repo update` before listing]'
+)
+
+local -a _podfile_info_options
+_podfile_info_options=(
+ '(--all)--all[Show information about all Pods with dependencies that are used in a project]' \
+ '(--md)--md[Output information in Markdown format]' \
+ '*:script or directory:_files'
+)
+
+local -a _push_options
+_push_options=(
+ '(--allow-warnings)--allow-warnings[Allows pushing even if there are warnings]' \
+ '(--local-only)--local-only[Does not perform the step of pushing REPO to its remote]' \
+ '*:script or directory:_files'
+)
+
+local -a _repo_lint_options
+_repo_lint_options=(
+ '(--only-errors)--only-errors[Lint presents only the errors]'
+)
+
+local -a _setup_options
+_setup_options=(
+ '(--push)--push[Use this option to enable push access once granted]'
+)
+
+local -a _spec_lint_options
+_spec_lint_options=(
+ '(--quick)--quick[Lint skips checks that would require to download and build the spec]' \
+ '(--only-errors)--only-errors[Lint validates even if warnings are present]' \
+ '(--no-clean)--no-clean[Lint leaves the build directory intact for inspection]' \
+ '*:script or directory:_files'
+)
+
+local -a _spec_cat_options
+_spec_cat_options=(
+ '(--show-all)--show-all[Pick from all versions of the given podspec]'
+)
+
+local -a _spec_which_options
+_spec_which_options=(
+ '(--show-all)--show-all[Print all versions of the given podspec]'
+)
+
+local -a _spec_edit_options
+_spec_edit_options=(
+ '(--show-all)--show-all[Pick which spec to edit from all available versions of the given podspec]'
+)
+
+
+__first_command_list ()
+{
+ local expl
+ declare -a tasks
+
+ tasks=(install ipc list outdated podfile-info push repo search setup spec update)
+
+ _wanted tasks expl 'help' compadd $tasks
+}
+
+__repo_list() {
+ _wanted application expl 'repo' compadd $(command ls -1 ~/.cocoapods 2>/dev/null | sed -e 's/ /\\ /g')
+}
+
+__pod-repo() {
+ local curcontext="$curcontext" state line
+ typeset -A opt_args
+
+ _arguments -C \
+ ':command:->command' \
+ '*::options:->options'
+
+ case $state in
+ (command)
+ _describe -t commands "pod repo" _repo_arguments
+ return
+ ;;
+
+ (options)
+ case $line[1] in
+ (lint)
+ _arguments \
+ $_inherited_options \
+ $_repo_lint_options \
+ ':feature:__repo_list'
+ ;;
+
+ (update)
+ _arguments \
+ $_inherited_options \
+ ':feature:__repo_list'
+ ;;
+
+ (add)
+ _arguments \
+ $_inherited_options
+ esac
+ ;;
+ esac
+}
+
+__pod-spec() {
+ local curcontext="$curcontext" state line
+ typeset -A opt_args
+
+ _arguments -C \
+ ':command:->command' \
+ '*::options:->options'
+
+ case $state in
+ (command)
+ _describe -t commands "pod spec" _spec_arguments
+ return
+ ;;
+
+ (options)
+ case $line[1] in
+ (create)
+ _arguments \
+ $_inherited_options
+ ;;
+
+ (lint)
+ _arguments \
+ $_inherited_options \
+ $_spec_lint_options
+ ;;
+
+ (cat)
+ _arguments \
+ $_inherited_options \
+ $_spec_cat_options
+ ;;
+
+ (which)
+ _arguments \
+ $_inherited_options \
+ $_spec_which_options
+ ;;
+
+ (edit)
+ _arguments \
+ $_inherited_options \
+ $_spec_edit_options
+ ;;
+ esac
+ return
+ ;;
+ esac
+}
+
+__pod-ipc() {
+ local curcontext="$curcontext" state line
+ typeset -A opt_args
+
+ _arguments -C \
+ ':command:->command' \
+ '*::options:->options'
+
+ case $state in
+ (command)
+ _describe -t commands "pod ipc" _ipc_arguments
+ return
+ ;;
+
+ (options)
+ _arguments -C \
+ $_inherited_options
+ return
+ ;;
+ esac
+}
+
+__pod-list() {
+ local curcontext="$curcontext" state line
+ typeset -A opt_args
+
+ _arguments -C \
+ $_inherited_options \
+ $_list_options \
+ ':command:->command' \
+ '*::options:->options'
+
+ case $state in
+ (command)
+ _describe -t commands "pod list" _list_arguments
+ return
+ ;;
+
+ (options)
+ _arguments -C \
+ $_inherited_options \
+ $_list_options
+ return
+ ;;
+ esac
+}
+
+local curcontext="$curcontext" state line
+typeset -A opt_args
+
+_arguments -C \
+ $_inherited_options \
+ ':command:->command' \
+ '*::options:->options'
+
+case $state in
+ (command)
+ _describe -t commands "pod" _1st_arguments
+ return
+ ;;
+
+ (options)
+ case $line[1] in
+ (help)
+ _arguments \
+ $_inherited_options \
+ ':help:__first_command_list'
+ ;;
+
+ (push)
+ _arguments \
+ $_inherited_options \
+ $_push_options \
+ ':repo:__repo_list'
+ ;;
+
+ (repo)
+ __pod-repo
+ ;;
+
+ (spec)
+ __pod-spec
+ ;;
+
+ (ipc)
+ __pod-ipc
+ ;;
+
+ (list)
+ __pod-list
+ ;;
+
+ (install)
+ _arguments \
+ $_inherited_options \
+ $_install_options
+ ;;
+
+ (update)
+ _arguments \
+ $_inherited_options \
+ $_update_options
+ ;;
+
+ (outdated)
+ _arguments \
+ $_inherited_options \
+ $_outdated_options
+ ;;
+
+ (search)
+ _arguments \
+ $_inherited_options \
+ $_search_options
+ ;;
+
+ (podfile-info)
+ _arguments \
+ $_inherited_options \
+ $_podfile_info_options
+ ;;
+
+ (setup)
+ _arguments \
+ $_inherited_options \
+ $_setup_options
+ ;;
+
+ esac
+ ;;
+esac
View
6 plugins/postgres/postgres.plugin.zsh
@@ -0,0 +1,6 @@
+# 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'
View
2 plugins/rails/rails.plugin.zsh
@@ -10,6 +10,8 @@ alias migrate='rake db:migrate && rake db:test:prepare'
alias sc='ruby script/console'
alias sd='ruby script/server --debugger'
alias devlog='tail -f log/development.log'
+alias testlog='tail -f log/test.log'
+alias prodlog='tail -f log/production.log'
alias -g RET='RAILS_ENV=test'
alias -g REP='RAILS_ENV=production'
alias -g RED='RAILS_ENV=development'
View
56 plugins/rails3/_rails3
@@ -0,0 +1,56 @@
+#compdef rails
+#autoload
+
+# rails 3 zsh completion, based on homebrew completion
+# Extracted from https://github.com/robbyrussell/oh-my-zsh/blob/30620d463850c17f86e7a56fbf6a8b5e793a4e07/plugins/rails3/_rails3
+# Published by Christopher Chow
+
+local -a _1st_arguments
+_1st_arguments=(
+ 'generate:Generate new code (short-cut alias: "g")'
+ 'console:Start the Rails console (short-cut alias: "c")'
+ 'server:Start the Rails server (short-cut alias: "s")'
+ 'dbconsole:Start a console for the database specified in config/database.yml (short-cut alias: "db")'
+ 'new:Create a new Rails application. "rails new my_app" creates a new application called MyApp in "./my_app"'
+ 'application:Generate the Rails application code'
+ 'destroy:Undo code generated with "generate"'
+ 'benchmarker:See how fast a piece of code runs'
+ 'profiler:Get profile information from a piece of code'
+ 'plugin:Install a plugin'
+)
+
+_rails_generate_arguments() {
+ generate_arguments=(
+ controller
+ generator
+ helper
+ integration_test
+ mailer
+ migration
+ model
+ observer
+ performance_test
+ plugin
+ resource
+ scaffold
+ scaffold_controller
+ session_migration
+ stylesheets
+ )
+}
+
+_arguments \
+ '(--version)--version[show version]' \
+ '(--help)--help[show help]' \
+ '*:: :->subcmds' && return 0
+
+if (( CURRENT == 1 )); then
+ _describe -t commands "rails subcommand" _1st_arguments
+ return
+fi
+
+case "$words[1]" in
+ generate)
+ _rails_generate_arguments
+ _wanted generate_arguments expl 'all generate' compadd -a generate_arguments ;;
+esac
View
8 plugins/rails3/rails3.plugin.zsh
@@ -4,7 +4,11 @@ function _rails_command () {
if [ -e "script/server" ]; then
ruby script/$@
else
- ruby script/rails $@
+ if [ -e "bin/rails" ]; then
+ bin/rails $@
+ else
+ rails $@
+ fi
fi
}
@@ -19,6 +23,8 @@ alias ru='_rails_command runner'
alias rs='_rails_command server'
alias rsd='_rails_command server --debugger'
alias devlog='tail -f log/development.log'
+alias testlog='tail -f log/test.log'
+alias prodlog='tail -f log/production.log'
alias rdm='rake db:migrate'
alias rdr='rake db:rollback'
alias -g RET='RAILS_ENV=test'
View
2 plugins/rails4/rails4.plugin.zsh
@@ -21,6 +21,8 @@ alias ru='_rails_command runner'
alias rs='_rails_command server'
alias rsd='_rails_command server --debugger'
alias devlog='tail -f log/development.log'
+alias testlog='tail -f log/test.log'
+alias prodlog='tail -f log/production.log'
alias rdm='rake db:migrate'
alias rdc='rake db:create'
alias rdr='rake db:rollback'
View
17 plugins/rand-quote/rand-quote.plugin.zsh
@@ -0,0 +1,17 @@
+# Get a random quote fron the site http://www.quotationspage.com/random.php3
+# Created by Eduardo San Martin Morote aka Posva
+# http://posva.github.io
+# Sun Jun 09 10:59:36 CEST 2013
+# Don't remove this header, thank you
+# Usage: quote
+
+if [[ -x `which curl` ]]; then
+ function quote()
+ {
+ Q=$(curl -s --connect-timeout 2 "http://www.quotationspage.com/random.php3" | grep -m 1 "dt ")
+ TXT=$(echo "$Q" | sed -e 's/<\/dt>.*//g' -e 's/.*html//g' -e 's/^[^a-zA-Z]*//' -e 's/<\/a..*$//g')
+ W=$(echo "$Q" | sed -e 's/.*\/quotes\///g' -e 's/<.*//g' -e 's/.*">//g')
+ echo "\e[0;33m${W}\e[0;30m: \e[0;35m“${TXT}”\e[m"
+ }
+ #quote
+fi
View
7 plugins/repo/README.md
@@ -0,0 +1,7 @@
+## repo
+**Maintainer:** [Stibbons](https://github.com/Stibbons)
+
+This plugin mainly add support automatic completion for the repo command line tool:
+http://code.google.com/p/git-repo/
+
+* `r` aliases `repo`
View
272 plugins/repo/_repo
@@ -0,0 +1,272 @@
+#compdef repo
+
+
+__git_apply_whitespace_strategies ()
+{
+ declare -a strategies
+
+ strategies=(
+ 'nowarn:turn off the trailing-whitespace warning'
+ 'warn:output trailing-whitespace warning, but apply patch'
+ 'fix:output trailing-whitespace warning and strip trailing whitespace'
+ 'error:output trailing-whitespace warning and refuse to apply patch'
+ 'error-all:same as "error", but output warnings for all files')
+
+ _describe -t strategies 'trailing-whitespace resolution strategy' strategies $*
+}
+
+
+_repo()
+{
+ local context state state_descr line curcontext="$curcontext"
+ typeset -A opt_args
+
+ local ret=1
+
+ _arguments -C \
+ '(- 1 *)--help[show usage]'\
+ '1:command:->command'\
+ '*::args:->args' && ret=0
+
+ case $state in
+ (command)
+ repo list 2> /dev/null > /dev/null
+ if [[ $? == 0 ]]; then
+ local commands;
+ commands=(
+ 'abandon:Permanently abandon a development branch'
+ 'branch:View current topic branches'
+ 'branches:View current topic branches'
+ 'checkout:Checkout a branch for development'
+ 'cherry-pick:Cherry-pick a change.'
+ 'diff:Show changes between commit and working tree'
+ 'download:Download and checkout a change'
+ 'forall:execute command on several project'
+ 'grep:Print lines matching a pattern'
+ 'help:Display detailed help on a command'
+ 'init:Initialize repo in the current directory'
+ 'list:List projects and their associated directories'
+ 'manifest:Manifest inspection utility'
+ 'overview:Display overview of unmerged project branches'
+ 'prune:Prune (delete) already merged topics'
+ 'rebase:Rebase local branches on upstream branch'
+ 'selfupdate:Update repo to the latest version'
+ 'smartsync:Update working tree to the latest known good revision'
+ 'stage:Stage file(s) for commit'
+ 'start:Start a new branch for development'
+ 'status:Show the working tree status'
+ 'sync:Update working tree to the latest revision'
+ 'upload:Upload changes for code review'
+ 'version:Display the version of repo'
+ )
+ _describe -t commands 'command' commands && ret=0
+ else
+ local commands;
+ commands=(
+ 'init:Install repo in the current working directory'
+ 'help:Display detailed help on a command'
+ )
+ _describe -t commands 'command' commands && ret=0
+ fi
+ ;;
+ (args)
+ case $words[1] in
+ (branch | branches)
+ # TODO : list available projects and add them in list to feed compadd with
+ _arguments : \
+ "(-h --help)"{-h,--help}"[Show help]" \
+ ': :__repo_projects' \
+ && ret=0
+ ;;
+ (abandon)
+ # TODO : list available projects and add them in list to feed compadd with
+ _arguments : \
+ "(-h --help)"{-h,--help}"[Show help]" \
+ ':branch name:__repo_branch' \
+ ': :__repo_projects'\
+ && ret=0
+ ;;
+ (checkout)
+ # TODO : list available projects and add them in list to feed compadd with
+ _arguments : \
+ "(-h --help)"{-h,--help}"[Show help]" \
+ ':branch name:__repo_branch' \
+ ': :__repo_projects'\
+ && ret=0
+ ;;
+ (init)
+ _arguments : \
+ "(-h --help)"{-h,--help}"[Show help]" \
+ "(-q --quiet)"{-q,--quiet}"[be quiet]" \
+ "(-u --manifest-url)"{-u,--manifest-url=}"[manifest repository location]":url:__repo_url_prompt \
+ "(-b --manifest-branch)"{-b,--manifest-branch=}"[manifest branch or revision]":branch:__repo_branch\
+ "(-m --manifest-name)"{-m,--manifest-name=}"[initial manifest file]":manifest_name:__repo_manifest_name\
+ "(--mirror)--mirror[mirror the forrest]"\
+ "(--reference)--reference=[location of mirror directory]":dir:_dirs\
+ "(--depth)--depth=[create a shallow clone with given depth; see git clone]":depth:__repo_depth_prompt\
+ "(-g --group=)"{-g,--group=}"[restrict manifest projects to ones with a specified group]":group:_group\
+ "(-p --platform=)"{-p,--platform=}"[restrict manifest projects to ones with a specified platform group(auto|all|none|linux|darwin|...)]":platform:"(auto all none linux darwin)"\
+ "(--repo-url)--repo-url=[repo repository location]":url:__repo_url_prompt\
+ "(--repo-branch)--repo-branch[repo branch or revision]":branch_or_rev:__repo__repo_branch_or_rev\
+ "(--no-repo-verify)--no-repo-verify[do not verify repo source code]"\
+ "(--config-name)--config-name[Always prompt for name/e-mail]"\
+ && ret=0
+ ;;
+ (start)
+ _arguments : \
+ "(-h --help)"{-h,--help}"[Show help]" \
+ "(--all)--all=[begin branch in all projects]"\
+ ':branch name:__repo_new__repo_branch_name' \
+ ':projects:__repo_projects_or_all' \
+ && ret=0
+ ;;
+ (rebase)
+ _arguments : \
+ "(-h --help)"{-h,--help}"[Show help]" \
+ "(-i --interactive)"{-i,--interactive}"[interactive rebase (single project only)]: :__repo_projects" \
+ "(-f --force-rebase)"{-f,--force-rebase}"[Pass --force-rebase to git rebase]" \
+ "(--no-ff)--no-ff=[Pass --no-ff to git rebase]"\
+ "(-q --quiet)"{-q,--quiet}"[Pass --quiet to git rebase]" \
+ "(--autosquash)--no-ff[Pass --autosquash to git rebase]"\
+ "(--whitespace=)--whitespace=[Pass --whitespace to git rebase]: :__git_apply_whitespace_strategies"\
+ "(--auto-stash)--auto-stash[Stash local modifications before starting]"\
+ && ret=0
+ ;;
+ (checkout)
+ _arguments : \
+ "(-h --help)"{-h,--help}"[Show help]" \
+ ':branch name:__git_branch_names' \
+ ':projects:__repo_projects' \
+ && ret=0
+ ;;
+ (list)
+ _arguments : \
+ "(-h --help)"{-h,--help}"[Show help]" \
+ && ret=0
+ ;;
+ (status)
+ _arguments : \
+ "(-h --help)"{-h,--help}"[Show help]" \
+ "(-j --jobs)"{-j,--jobs}"[number of projects to check simultaneously]" \
+ ':projects:__repo_projects' \
+ && ret=0
+ ;;
+ (sync)
+ _arguments : \
+ "(-h --help)"{-h,--help}"[Show help]" \
+ "(--no-force-broken)--no-force-broken[stop sync if a project fails to sync (probably because of permissions)]" \
+ "(-l --local-only)"{-l,--local-only}"[only update working tree, don't fetch]" \
+ "(-n --network-only)"{-n,--network-branch}"[fetch only, don't update working tree]" \
+ "(-d --detach)"{-d,--detach}"[detach projects back to manifest revision]" \
+ "(-c --current-branch)"{-c,--current-branch}"[fetch only current branch from server]" \
+ "(-q --quiet)"{-q,--quiet}"[be more quiet]" \
+ "(-j --jobs=)"{-j,--jobs=}"[projects to fetch simultaneously (default 1) (limited to 5)]:projects to fetch simultaneously (default 1) (limited to 5)" \
+ "(-m --manifest-name=)"{-m,--manifest-name=}"[temporary manifest to use for this sync]:manifest xml file:_files -g *.xml" \
+ "(--no-clone-bundle)--no-clone-bundle[disable use of /clone.bundle on HTTP/HTTPS]" \
+ "(-s --smart-sync)"{-s,--smart-sync=}"[smart sync using manifest from a known tag]:tag:" \
+ '(--no-repo-verify)--no-repo-verify[do not verify repo source code]' \
+ ': :__repo_projects' \
+ && ret=0
+ ;;
+ (upload)
+ _arguments : \
+ "(-h --help)"{-h,--help}"[Show help]" \
+ "(-t)-t[Send local branch name to Gerrit Code Review]" \
+ "(--re= --reviewers=)"{--re=,--reviewers=}"[Request reviews from these people]:Request reviews from these people:" \
+ "(--cc=)--cc=[Also send email to these email addresses.]:email addresses:_email_addresses" \
+ "(--br=)--br=[Branch to upload.]:branch:__repo_branch" \
+ "(--cbr --current-branch)"{--cbr,--current-branch}"[Upload current git branch]" \
+ "(-d --draft)"{-d,--draft}"[If specified, upload as a draft.]" \
+ "(--verify --no-verify)--no-verify[Do not run the upload hook.]" \
+ '(--verify --no-verify)--verify[Run the upload hook without prompting]' \
+ ': :__repo_projects' \
+ && ret=0
+ ;;
+ (forall)
+ _arguments : \
+ "(-h --help)"{-h,--help}"[Show help]" \
+ "(-v --verbose)"{-v,--verbose}"[Show command error messages]" \
+ '(-p)-p[Show project headers before output]' \
+ ': :__repo_projects_mandatory' \
+ "(-c --command -h --help -v --verbose -p)"{-c,--command}"[Command (and arguments) to execute]" \
+ && ret=0
+ ;;
+ *)
+ ret=0
+ esac
+ ;;
+ esac
+
+ return $ret
+}
+
+__repo_reviewers()
+{
+ # _message -e url 'reviewers'
+}
+
+__repo_url_prompt()
+{
+ _message -e url 'url'
+}
+
+__repo_manifest_name()
+{
+ _message -e manifest_name 'manifest name'
+}
+
+_group()
+{
+ _message -e group 'group'
+}
+
+__repo_branch()
+{
+ #_message -e branch 'Repo branch'
+ branches=($(repo branches| cut -c4- | grep '|' | cut -d' ' -f1))
+ _describe -t branches 'Select repo branch' branches
+}
+
+__repo__repo_branch_or_rev()
+{
+ _message -e branch_or_rev 'repo branch or revision'
+}
+
+__repo_depth_prompt()
+{
+ _message -e depth 'depth'
+}
+
+__repo_projects()
+{
+ _message -e depth 'Optional option : <projects>...'
+ projects=($(repo list | cut -d' ' -f1))
+ _describe -t projects 'Select projects (keep empty for selecting all projects)' projects
+}
+
+__repo_projects_mandatory()
+{
+ projects=($(repo list | cut -d' ' -f1))
+ #_describe -t projects 'Select projects to apply commands' projects
+ _values -s ' ' "Select projects to apply commands" $projects
+}
+
+__repo_new__repo_branch_name()
+{
+ branches=($(repo branches| cut -c4- | grep '|' | cut -d' ' -f1))
+ _describe "" branches
+ _message -e "branch name" 'Enter new branch name or select an existing repo branch'
+}
+
+__repo_projects_or_all()
+{
+ #_message -e depth '[--all | <project>...]'
+
+ projects=(--all $(repo list | cut -d' ' -f1))
+ _describe -t projects 'Select projects or --all' projects
+ _describe -t --all 'All projects'
+}
+
+_repo "$@"
+return $?
+
View
2 plugins/repo/repo.plugin.zsh
@@ -0,0 +1,2 @@
+# Aliases
+alias r='repo'
View
7 plugins/rvm/rvm.plugin.zsh
@@ -3,9 +3,9 @@ fpath=($rvm_path/scripts/zsh/Completion $fpath)
alias rubies='rvm list rubies'
alias gemsets='rvm gemset list'
-local ruby18='ruby-1.8.7-p371'
-local ruby19='ruby-1.9.3-p392'
-local ruby20='ruby-2.0.0-p0'
+local ruby18='ruby-1.8.7'
+local ruby19='ruby-1.9.3'
+local ruby20='ruby-2.0.0'
function rb18 {
if [ -z "$1" ]; then
@@ -42,7 +42,6 @@ compdef _rb20 rb20
function rvm-update {
rvm get head
- rvm reload # TODO: Reload rvm completion?
}
# TODO: Make this usable w/o rvm.
View
2 plugins/ssh-agent/ssh-agent.plugin.zsh
@@ -9,7 +9,7 @@
# To load multiple identities use the identities style, For
# example:
#
-# zstyle :omz:plugins:ssh-agent id_rsa id_rsa2 id_github
+# zstyle :omz:plugins:ssh-agent identities id_rsa id_rsa2 id_github
#
# To set the maximum lifetime of the identities, use the
# lifetime style. The lifetime may be specified in seconds
View
2 plugins/symfony/symfony.plugin.zsh
@@ -1,7 +1,7 @@
# symfony basic command completion
_symfony_get_command_list () {
- ./symfony | sed "1,/Available tasks/d" | awk 'BEGIN { cat=null; } /^[A-Za-z]+$/ { cat = $1; } /^ :[a-z]+/ { print cat $1; }'
+ php symfony | sed "1,/Available tasks/d" | awk 'BEGIN { cat=null; } /^[A-Za-z]+$/ { cat = $1; } /^ :[a-z]+/ { print cat $1; }'
}
_symfony () {
View
8 plugins/tmux/tmux.plugin.zsh
@@ -14,6 +14,8 @@ if which tmux &> /dev/null
[[ -n "$ZSH_TMUX_AUTOQUIT" ]] || ZSH_TMUX_AUTOQUIT=$ZSH_TMUX_AUTOSTART
# Set term to screen or screen-256color based on current terminal support
[[ -n "$ZSH_TMUX_FIXTERM" ]] || ZSH_TMUX_FIXTERM=true
+ # Set '-CC' option for iTerm2 tmux integration
+ [[ -n "$ZSH_TMUX_ITERM2" ]] || ZSH_TMUX_ITERM2=false
# The TERM to use for non-256 color terminals.
# Tmux states this should be screen, but you may need to change it on
# systems without the proper terminfo
@@ -36,7 +38,7 @@ if which tmux &> /dev/null
fi
# Set the correct local config file to use.
- if [[ -f $HOME/.tmux.conf || -h $HOME/.tmux.conf ]]
+ if [[ "$ZSH_TMUX_ITERM2" == "false" ]] && (( [[ -f $HOME/.tmux.conf ]] || -h $HOME/.tmux.conf ]] ))
then
#use this when they have a ~/.tmux.conf
export _ZSH_TMUX_FIXED_CONFIG="$zsh_tmux_plugin_path/tmux.extra.conf"
@@ -55,11 +57,11 @@ if which tmux &> /dev/null
# Try to connect to an existing session.
elif [[ "$ZSH_TMUX_AUTOCONNECT" == "true" ]]
then
- \tmux attach || \tmux `[[ "$ZSH_TMUX_FIXTERM" == "true" ]] && echo '-f '$_ZSH_TMUX_FIXED_CONFIG` new-session
+ \tmux `[[ "$ZSH_TMUX_ITERM2" == "true" ]] && echo '-CC '` attach || \tmux `[[ "$ZSH_TMUX_ITERM2" == "true" ]] && echo '-CC '` `[[ "$ZSH_TMUX_FIXTERM" == "true" ]] && echo '-f '$_ZSH_TMUX_FIXED_CONFIG` new-session
[[ "$ZSH_TMUX_AUTOQUIT" == "true" ]] && exit
# Just run tmux, fixing the TERM variable if requested.
else
- \tmux `[[ "$ZSH_TMUX_FIXTERM" == "true" ]] && echo '-f '$_ZSH_TMUX_FIXED_CONFIG`
+ \tmux `[[ "$ZSH_TMUX_ITERM2" == "true" ]] && echo '-CC '` `[[ "$ZSH_TMUX_FIXTERM" == "true" ]] && echo '-f '$_ZSH_TMUX_FIXED_CONFIG`
[[ "$ZSH_TMUX_AUTOQUIT" == "true" ]] && exit
fi
}
View
7 plugins/virtualenv/virtualenv.plugin.zsh
@@ -1,9 +1,8 @@
function virtualenv_prompt_info(){
- local virtualenv_path="$VIRTUAL_ENV"
- if [[ -n $virtualenv_path ]]; then
- local virtualenv_name=`basename $virtualenv_path`
- printf "%s[%s] " "%{${fg[yellow]}%}" $virtualenv_name
+ if [[ -n $VIRTUAL_ENV ]]; then
+ printf "%s[%s] " "%{${fg[yellow]}%}" ${${VIRTUAL_ENV}:t}
fi
}
+# disables prompt mangling in virtual_env/bin/activate
export VIRTUAL_ENV_DISABLE_PROMPT=1
View
61 plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh
@@ -1,40 +1,55 @@
-wrapsource=`which virtualenvwrapper_lazy.sh`
-
-if [[ -f "$wrapsource" ]]; then
- source $wrapsource
+virtualenvwrapper='virtualenvwrapper_lazy.sh'
+if (( $+commands[$virtualenvwrapper] )); then
+ source ${${virtualenvwrapper}:c}
if [[ ! $DISABLE_VENV_CD -eq 1 ]]; then
- # Automatically activate Git projects' virtual environments based on the
+ # Automatically activate Git projects's virtual environments based on the
# directory name of the project. Virtual environment name can be overridden
# by placing a .venv file in the project root with a virtualenv name in it
function workon_cwd {
- # Check that this is a Git repo
- PROJECT_ROOT=`git rev-parse --show-toplevel 2> /dev/null`
- if (( $? == 0 )); then
+ if [ ! $WORKON_CWD ]; then
+ WORKON_CWD=1
+ # Check if this is a Git repo
+ PROJECT_ROOT=`git rev-parse --show-toplevel 2> /dev/null`
+ if (( $? != 0 )); then
+ PROJECT_ROOT="."
+ fi
# Check for virtualenv name override
- ENV_NAME=`basename "$PROJECT_ROOT"`
if [[ -f "$PROJECT_ROOT/.venv" ]]; then
ENV_NAME=`cat "$PROJECT_ROOT/.venv"`
+ elif [[ "$PROJECT_ROOT" != "." ]]; then
+ ENV_NAME=`basename "$PROJECT_ROOT"`
+ else
+ ENV_NAME=""
fi
- # Activate the environment only if it is not already active
- if [[ "$VIRTUAL_ENV" != "$WORKON_HOME/$ENV_NAME" ]]; then
- if [[ -e "$WORKON_HOME/$ENV_NAME/bin/activate" ]]; then
- workon "$ENV_NAME" && export CD_VIRTUAL_ENV="$ENV_NAME"
+ if [[ "$ENV_NAME" != "" ]]; then
+ # Activate the environment only if it is not already active
+ if [[ "$VIRTUAL_ENV" != "$WORKON_HOME/$ENV_NAME" ]]; then
+ if [[ -e "$WORKON_HOME/$ENV_NAME/bin/activate" ]]; then
+ workon "$ENV_NAME" && export CD_VIRTUAL_ENV="$ENV_NAME"
+ fi
fi
+ elif [ $CD_VIRTUAL_ENV ]; then
+ # We've just left the repo, deactivate the environment
+ # Note: this only happens if the virtualenv was activated automatically
+ deactivate && unset CD_VIRTUAL_ENV
fi
- elif [ $CD_VIRTUAL_ENV ]; then
- # We've just left the repo, deactivate the environment
- # Note: this only happens if the virtualenv was activated automatically
- deactivate && unset CD_VIRTUAL_ENV
+ unset PROJECT_ROOT
+ unset WORKON_CWD
fi
- unset PROJECT_ROOT
}
- # New cd function that does the virtualenv magic
- function cd {
- builtin cd "$@" && workon_cwd
- }
+ # Append workon_cwd to the chpwd_functions array, so it will be called on cd
+ # http://zsh.sourceforge.net/Doc/Release/Functions.html
+ # TODO: replace with 'add-zsh-hook chpwd workon_cwd' when oh-my-zsh min version is raised above 4.3.4
+ if (( ${+chpwd_functions} )); then
+ if (( $chpwd_functions[(I)workon_cwd] == 0 )); then
+ set -A chpwd_functions $chpwd_functions workon_cwd
+ fi
+ else
+ set -A chpwd_functions workon_cwd
+ fi
fi
else
- print "zsh virtualenvwrapper plugin: Cannot find virtualenvwrapper_lazy.sh. Please install with \`pip install virtualenvwrapper\`."
+ print "zsh virtualenvwrapper plugin: Cannot find ${virtualenvwrapper}. Please install with \`pip install virtualenvwrapper\`."
fi
View
43 plugins/web-search/web-search.plugin.zsh
@@ -0,0 +1,43 @@
+# web_search from terminal
+
+function web_search() {
+
+ # get the open command
+ local open_cmd
+ if [[ $(