commit
67b2781f62
38 changed files with 1000 additions and 120 deletions
@ -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 |
||||
@ -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 |
||||
} |
||||
@ -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 |
||||
@ -0,0 +1,62 @@ |
||||
#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 |
||||
} |
||||
@ -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 |
||||
} |
||||
@ -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' |
||||
@ -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 |
||||
@ -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 |
||||
@ -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` |
||||
@ -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 $? |
||||
|
||||
@ -0,0 +1,2 @@ |
||||
# Aliases |
||||
alias r='repo' |
||||
@ -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 |
||||
|
||||
@ -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 |
||||
|
||||
@ -0,0 +1,43 @@ |
||||
# web_search from terminal |
||||
|
||||
function web_search() { |
||||
|
||||
# get the open command |
||||
local open_cmd |
||||
if [[ $(uname -s) == 'Darwin' ]]; then |
||||
open_cmd='open' |
||||
else |
||||
open_cmd='xdg-open' |
||||
fi |
||||
|
||||
# check whether the search engine is supported |
||||
if [[ ! $1 =~ '(google|bing|yahoo)' ]]; |
||||
then |
||||
echo "Search engine $1 not supported." |
||||
return 1 |
||||
fi |
||||
|
||||
local url="http://www.$1.com" |
||||
|
||||
# no keyword provided, simply open the search engine homepage |
||||
if [[ $# -le 1 ]]; then |
||||
$open_cmd "$url" |
||||
return |
||||
fi |
||||
|
||||
url="${url}/search?q=" |
||||
shift # shift out $1 |
||||
|
||||
while [[ $# -gt 0 ]]; do |
||||
url="${url}$1+" |
||||
shift |
||||
done |
||||
|
||||
url="${url%?}" # remove the last '+' |
||||
|
||||
$open_cmd "$url" |
||||
} |
||||
|
||||
alias bing='web_search bing' |
||||
alias google='web_search google' |
||||
alias yahoo='web_search yahoo' |
||||
Loading…
Reference in new issue