mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-12-29 16:52:31 +08:00
Merge remote-tracking branch 'robbyrussell/master'
This commit is contained in:
commit
67b2781f62
@ -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).
|
||||
|
@ -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
|
||||
|
32
lib/git.zsh
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
|
||||
|
@ -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
|
||||
|
@ -2,37 +2,80 @@ alias bi="bower install"
|
||||
alias bl="bower list"
|
||||
alias bs="bower search"
|
||||
|
||||
bower_package_list=''
|
||||
|
||||
_bower_installed_packages () {
|
||||
bower_package_list=$(bower ls --no-color 2>/dev/null| awk 'NR>3{print p}{p=$0}'| cut -d ' ' -f 2|sed 's/#.*//')
|
||||
}
|
||||
_bower ()
|
||||
{
|
||||
local curcontext="$curcontext" state line
|
||||
typeset -A opt_args
|
||||
local -a _1st_arguments _no_color _dopts _save_dev _force_lastest _production
|
||||
local expl
|
||||
typeset -A opt_args
|
||||
|
||||
_arguments -C \
|
||||
':command:->command' \
|
||||
'*::options:->options'
|
||||
_no_color=('--no-color[Do not print colors (available in all commands)]')
|
||||
|
||||
case $state in
|
||||
(command)
|
||||
_dopts=(
|
||||
'(--save)--save[Save installed packages into the project"s bower.json dependencies]'
|
||||
'(--force)--force[Force fetching remote resources even if a local copy exists on disk]'
|
||||
)
|
||||
|
||||
local -a subcommands
|
||||
subcommands=(${=$(bower help | grep help | sed -e 's/,//g')})
|
||||
_describe -t commands 'bower' subcommands
|
||||
;;
|
||||
_save_dev=('(--save-dev)--save-dev[Save installed packages into the project"s bower.json devDependencies]')
|
||||
|
||||
(options)
|
||||
case $line[1] in
|
||||
_force_lastest=('(--force-latest)--force-latest[Force latest version on conflict]')
|
||||
|
||||
_production=('(--production)--production[Do not install project devDependencies]')
|
||||
|
||||
_1st_arguments=(
|
||||
'cache-clean:Clean the Bower cache, or the specified package caches' \
|
||||
'help:Display help information about Bower' \
|
||||
'info:Version info and description of a particular package' \
|
||||
'init:Interactively create a bower.json file' \
|
||||
'install:Install a package locally' \
|
||||
'link:Symlink a package folder' \
|
||||
'lookup:Look up a package URL by name' \
|
||||
'register:Register a package' \
|
||||
'search:Search for a package by name' \
|
||||
'uninstall:Remove a package' \
|
||||
'update:Update a package' \
|
||||
{ls,list}:'[List all installed packages]'
|
||||
)
|
||||
_arguments \
|
||||
$_no_color \
|
||||
'*:: :->subcmds' && return 0
|
||||
|
||||
if (( CURRENT == 1 )); then
|
||||
_describe -t commands "bower subcommand" _1st_arguments
|
||||
return
|
||||
fi
|
||||
|
||||
case "$words[1]" in
|
||||
install)
|
||||
_arguments \
|
||||
$_dopts \
|
||||
$_save_dev \
|
||||
$_force_lastest \
|
||||
$_no_color \
|
||||
$_production
|
||||
;;
|
||||
update)
|
||||
_arguments \
|
||||
$_dopts \
|
||||
$_no_color \
|
||||
$_force_lastest
|
||||
_bower_installed_packages
|
||||
compadd "$@" $(echo $bower_package_list)
|
||||
;;
|
||||
uninstall)
|
||||
_arguments \
|
||||
$_no_color \
|
||||
$_dopts
|
||||
_bower_installed_packages
|
||||
compadd "$@" $(echo $bower_package_list)
|
||||
;;
|
||||
*)
|
||||
$_no_color \
|
||||
;;
|
||||
esac
|
||||
|
||||
(install)
|
||||
if [ -z "$bower_package_list" ];then
|
||||
bower_package_list=$(bower search | awk 'NR > 2' | cut -d '-' -f 2 | cut -d ' ' -f 2 | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g")
|
||||
fi
|
||||
compadd "$@" $(echo $bower_package_list)
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
compdef _bower bower
|
||||
|
@ -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
|
||||
|
||||
|
36
plugins/cabal/cabal.plugin.zsh
Normal file
36
plugins/cabal/cabal.plugin.zsh
Normal file
@ -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
|
129
plugins/celery/_celery
Normal file
129
plugins/celery/_celery
Normal file
@ -0,0 +1,129 @@
|
||||
#compdef celery
|
||||
#autoload
|
||||
|
||||
#celery zsh completion
|
||||
|
||||
_celery () {
|
||||
local -a _1st_arguments ifargs dopts controlargs
|
||||
|
||||
typeset -A opt_args
|
||||
|
||||
_1st_arguments=('worker' 'events' 'beat' 'shell' 'multi' 'amqp' 'status' 'inspect' \
|
||||
'control' 'purge' 'list' 'migrate' 'call' 'result' 'report')
|
||||
ifargs=('--app=' '--broker=' '--loader=' '--config=' '--version')
|
||||
dopts=('--detach' '--umask=' '--gid=' '--uid=' '--pidfile=' '--logfile=' '--loglevel=')
|
||||
controlargs=('--timeout' '--destination')
|
||||
_arguments \
|
||||
'(-A --app=)'{-A,--app}'[app instance to use (e.g. module.attr_name):APP]' \
|
||||
'(-b --broker=)'{-b,--broker}'[url to broker. default is "amqp://guest@localhost//":BROKER]' \
|
||||
'(--loader)--loader[name of custom loader class to use.:LOADER]' \
|
||||
'(--config)--config[Name of the configuration module:CONFIG]' \
|
||||
'(--workdir)--workdir[Optional directory to change to after detaching.:WORKING_DIRECTORY]' \
|
||||
'(-q --quiet)'{-q,--quiet}'[Don"t show as much output.]' \
|
||||
'(-C --no-color)'{-C,--no-color}'[Don"t display colors.]' \
|
||||
'(--version)--version[show program"s version number and exit]' \
|
||||
'(- : *)'{-h,--help}'[show this help message and exit]' \
|
||||
'*:: :->subcmds' && return 0
|
||||
|
||||
if (( CURRENT == 1 )); then
|
||||
_describe -t commands "celery subcommand" _1st_arguments
|
||||
return
|
||||
fi
|
||||
|
||||
case "$words[1]" in
|
||||
worker)
|
||||
_arguments \
|
||||
'(-C --concurrency=)'{-C,--concurrency=}'[Number of child processes processing the queue. The default is the number of CPUs.]' \
|
||||
'(--pool)--pool=:::(processes eventlet gevent threads solo)' \
|
||||
'(--purge --discard)'{--discard,--purge}'[Purges all waiting tasks before the daemon is started.]' \
|
||||
'(-f --logfile=)'{-f,--logfile=}'[Path to log file. If no logfile is specified, stderr is used.]' \
|
||||
'(--loglevel=)--loglevel=:::(critical error warning info debug)' \
|
||||
'(-N --hostname=)'{-N,--hostname=}'[Set custom hostname, e.g. "foo.example.com".]' \
|
||||
'(-B --beat)'{-B,--beat}'[Also run the celerybeat periodic task scheduler.]' \
|
||||
'(-s --schedule=)'{-s,--schedule=}'[Path to the schedule database if running with the -B option. Defaults to celerybeat-schedule.]' \
|
||||
'(-S --statedb=)'{-S,--statedb=}'[Path to the state database.Default: None]' \
|
||||
'(-E --events)'{-E,--events}'[Send events that can be captured by monitors like celeryev, celerymon, and others.]' \
|
||||
'(--time-limit=)--time-limit=[nables a hard time limit (in seconds int/float) for tasks]' \
|
||||
'(--soft-time-limit=)--soft-time-limit=[Enables a soft time limit (in seconds int/float) for tasks]' \
|
||||
'(--maxtasksperchild=)--maxtasksperchild=[Maximum number of tasks a pool worker can execute before it"s terminated and replaced by a new worker.]' \
|
||||
'(-Q --queues=)'{-Q,--queues=}'[List of queues to enable for this worker, separated by comma. By default all configured queues are enabled.]' \
|
||||
'(-I --include=)'{-I,--include=}'[Comma separated list of additional modules to import.]' \
|
||||
'(--pidfile=)--pidfile=[Optional file used to store the process pid.]' \
|
||||
'(--autoscale=)--autoscale=[Enable autoscaling by providing max_concurrency, min_concurrency.]' \
|
||||
'(--autoreload)--autoreload[Enable autoreloading.]' \
|
||||
'(--no-execv)--no-execv[Don"t do execv after multiprocessing child fork.]'
|
||||
compadd -a ifargs
|
||||
;;
|
||||
inspect)
|
||||
_values -s \
|
||||
'active[dump active tasks (being processed)]' \
|
||||
'active_queues[dump queues being consumed from]' \
|
||||
'ping[ping worker(s)]' \
|
||||
'registered[dump of registered tasks]' \
|
||||
'report[get bugreport info]' \
|
||||
'reserved[dump reserved tasks (waiting to be processed)]' \
|
||||
'revoked[dump of revoked task ids]' \
|
||||
'scheduled[dump scheduled tasks (eta/countdown/retry)]' \
|
||||
'stats[dump worker statistics]'
|
||||
compadd -a controlargs ifargs
|
||||
;;
|
||||
control)
|
||||
_values -s \
|
||||
'add_consumer[tell worker(s) to start consuming a queue]' \
|
||||
'autoscale[change autoscale settings]' \
|
||||
'cancel_consumer[tell worker(s) to stop consuming a queue]' \
|
||||
'disable_events[tell worker(s) to disable events]' \
|
||||
'enable_events[tell worker(s) to enable events]' \
|
||||
'pool_grow[start more pool processes]' \
|
||||
'pool_shrink[use less pool processes]' \
|
||||
'rate_limit[tell worker(s) to modify the rate limit for a task type]' \
|
||||
'time_limit[tell worker(s) to modify the time limit for a task type.]'
|
||||
compadd -a controlargs ifargs
|
||||
;;
|
||||
multi)
|
||||
_values -s \
|
||||
'--nosplash[Don"t display program info.]' \
|
||||
'--verbose[Show more output.]' \
|
||||
'--no-color[Don"t display colors.]' \
|
||||
'--quiet[Don"t show as much output.]' \
|
||||
'start' 'restart' 'stopwait' 'stop' 'show' \
|
||||
'names' 'expand' 'get' 'kill'
|
||||
compadd -a ifargs
|
||||
;;
|
||||
amqp)
|
||||
_values -s \
|
||||
'queue.declare' 'queue.purge' 'exchange.delete' 'basic.publish' \
|
||||
'exchange.declare' 'queue.delete' 'queue.bind' 'basic.get'
|
||||
;;
|
||||
list)
|
||||
_values -s, 'bindings'
|
||||
;;
|
||||
shell)
|
||||
_values -s \
|
||||
'--ipython[force iPython.]' \
|
||||
'--bpython[force bpython.]' \
|
||||
'--python[force default Python shell.]' \
|
||||
'--without-tasks[don"t add tasks to locals.]' \
|
||||
'--eventlet[use eventlet.]' \
|
||||
'--gevent[use gevent.]'
|
||||
compadd -a ifargs
|
||||
;;
|
||||
beat)
|
||||
_arguments \
|
||||
'(-s --schedule=)'{-s,--schedule=}'[Path to the schedule database. Defaults to celerybeat-schedule.]' \
|
||||
'(-S --scheduler=)'{-S,--scheduler=}'[Scheduler class to use. Default is celery.beat.PersistentScheduler.]' \
|
||||
'(--max-interval)--max-interval[]'
|
||||
compadd -a dopts fargs
|
||||
;;
|
||||
events)
|
||||
_arguments \
|
||||
'(-d --dump)'{-d,--dump}'[Dump events to stdout.]' \
|
||||
'(-c --camera=)'{-c,--camera=}'[Take snapshots of events using this camera.]' \
|
||||
'(-F --frequency=)'{-F,--frequency=}'[Camera: Shutter frequency. Default is every 1.0 seconds.]' \
|
||||
'(-r --maxrate=)'{-r,--maxrate=}'[Camera: Optional shutter rate limit (e.g. 10/m).]'
|
||||
compadd -a dopts fargs
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
}
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
4
plugins/git/README.md
Normal file
4
plugins/git/README.md
Normal file
@ -0,0 +1,4 @@
|
||||
## git
|
||||
**Maintainer:** [Stibbons](https://github.com/Stibbons)
|
||||
|
||||
This plugin adds several git aliases and increase the completion function provided by zsh
|
62
plugins/git/_git-branch
Normal file
62
plugins/git/_git-branch
Normal file
@ -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
|
||||
}
|
74
plugins/git/_git-remote
Normal file
74
plugins/git/_git-remote
Normal file
@ -0,0 +1,74 @@
|
||||
#compdef git-remote
|
||||
|
||||
# NOTE: --track is undocumented.
|
||||
# TODO: --track, -t, --master, and -m should take remote branches, I guess.
|
||||
# NOTE: --master is undocumented.
|
||||
# NOTE: --fetch is undocumented.
|
||||
_git-remote () {
|
||||
local curcontext=$curcontext state line
|
||||
declare -A opt_args
|
||||
|
||||
_arguments -C \
|
||||
':command:->command' \
|
||||
'*::options:->options' && ret=0
|
||||
|
||||
case $state in
|
||||
(command)
|
||||
declare -a commands
|
||||
|
||||
commands=(
|
||||
'add:add a new remote'
|
||||
'show:show information about a given remote'
|
||||
'prune:delete all stale tracking branches for a given remote'
|
||||
'update:fetch updates for a set of remotes'
|
||||
'rm:remove a remote from .git/config and all associated tracking branches'
|
||||
'rename:rename a remote from .git/config and update all associated tracking branches'
|
||||
'set-head:sets or deletes the default branch'
|
||||
'set-branches:changes the list of branches tracked by the named remote.'
|
||||
'set-url:changes URL remote points to.'
|
||||
)
|
||||
|
||||
_describe -t commands 'sub-command' commands && ret=0
|
||||
;;
|
||||
(options)
|
||||
case $line[1] in
|
||||
(add)
|
||||
_arguments \
|
||||
'*'{--track,-t}'[track given branch instead of default glob refspec]:branch:__git_branch_names' \
|
||||
'(--master -m)'{--master,-m}'[set the remote'\''s HEAD to point to given master branch]:branch:__git_branch_names' \
|
||||
'(--fetch -f)'{--fetch,-f}'[run git-fetch on the new remote after it has been created]' \
|
||||
':branch name:__git_remotes' \
|
||||
':url:_urls' && ret=0
|
||||
;;
|
||||
(show)
|
||||
_arguments \
|
||||
'-n[do not contact the remote for a list of branches]' \
|
||||
':remote:__git_remotes' && ret=0
|
||||
;;
|
||||
(prune)
|
||||
_arguments \
|
||||
'(--dry-run -n)'{-n,--dry-run}'[do not actually prune, only list what would be done]' \
|
||||
':remote:__git_remotes' && ret=0
|
||||
;;
|
||||
(update)
|
||||
__git_remote-groups && ret=0
|
||||
;;
|
||||
(rm)
|
||||
__git_remotes && ret=0
|
||||
;;
|
||||
(rename)
|
||||
__git_remotes && ret=0
|
||||
;;
|
||||
(set-url)
|
||||
_arguments \
|
||||
'*--push[manipulate push URLs]' \
|
||||
'(--add)--add[add URL]' \
|
||||
'(--delete)--delete[delete URLs]' \
|
||||
':branch name:__git_remotes' \
|
||||
':url:_urls' && ret=0
|
||||
;;
|
||||
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
}
|
@ -37,6 +37,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,12 +68,20 @@ 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'
|
||||
|
||||
#remove the gf alias
|
||||
#alias gf='git ls-files | grep'
|
||||
|
||||
alias gpoat='git push origin --all && git push origin --tags'
|
||||
alias gmt='git mergetool --no-prompt'
|
||||
compdef _git gm=git-mergetool
|
||||
|
||||
alias gg='git gui citool'
|
||||
alias gga='git gui citool --amend'
|
||||
alias gk='gitk --all --branches'
|
||||
alias gsts='git stash show --text'
|
||||
|
||||
# Will cd into the top of the current repository
|
||||
# or submodule.
|
||||
@ -98,6 +112,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)'
|
||||
|
@ -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)
|
||||
|
@ -3,7 +3,7 @@
|
||||
# .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
|
||||
@ -11,6 +11,13 @@
|
||||
# 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
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
|
6
plugins/postgres/postgres.plugin.zsh
Normal file
6
plugins/postgres/postgres.plugin.zsh
Normal file
@ -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'
|
@ -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'
|
||||
|
56
plugins/rails3/_rails3
Normal file
56
plugins/rails3/_rails3
Normal file
@ -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
|
@ -19,6 +19,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'
|
||||
|
@ -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'
|
||||
|
17
plugins/rand-quote/rand-quote.plugin.zsh
Normal file
17
plugins/rand-quote/rand-quote.plugin.zsh
Normal file
@ -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
|
7
plugins/repo/README.md
Normal file
7
plugins/repo/README.md
Normal file
@ -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`
|
272
plugins/repo/_repo
Normal file
272
plugins/repo/_repo
Normal file
@ -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 $?
|
||||
|
2
plugins/repo/repo.plugin.zsh
Normal file
2
plugins/repo/repo.plugin.zsh
Normal file
@ -0,0 +1,2 @@
|
||||
# Aliases
|
||||
alias r='repo'
|
@ -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.
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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
|
||||
|
43
plugins/web-search/web-search.plugin.zsh
Normal file
43
plugins/web-search/web-search.plugin.zsh
Normal file
@ -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'
|
@ -26,7 +26,7 @@
|
||||
# A few utility functions to make it easy and re-usable to draw segmented prompts
|
||||
|
||||
CURRENT_BG='NONE'
|
||||
SEGMENT_SEPARATOR='⮀'
|
||||
SEGMENT_SEPARATOR=''
|
||||
|
||||
# Begin a segment
|
||||
# Takes two arguments, background and foreground. Both can be omitted,
|
||||
@ -90,7 +90,7 @@ prompt_git() {
|
||||
zstyle ':vcs_info:*' formats ' %u%c'
|
||||
zstyle ':vcs_info:*' actionformats '%u%c'
|
||||
vcs_info
|
||||
echo -n "${ref/refs\/heads\//⭠ }${vcs_info_msg_0_}"
|
||||
echo -n "${ref/refs\/heads\// }${vcs_info_msg_0_}"
|
||||
fi
|
||||
}
|
||||
|
||||
@ -110,7 +110,7 @@ prompt_hg() {
|
||||
# if working copy is clean
|
||||
prompt_segment green black
|
||||
fi
|
||||
echo -n $(hg prompt "⭠ {rev}@{branch}") $st
|
||||
echo -n $(hg prompt " {rev}@{branch}") $st
|
||||
else
|
||||
st=""
|
||||
rev=$(hg id -n 2>/dev/null | sed 's/[^-0-9]//g')
|
||||
@ -124,7 +124,7 @@ prompt_hg() {
|
||||
else
|
||||
prompt_segment green black
|
||||
fi
|
||||
echo -n "⭠ $rev@$branch" $st
|
||||
echo -n " $rev@$branch" $st
|
||||
fi
|
||||
fi
|
||||
}
|
||||
@ -134,6 +134,14 @@ prompt_dir() {
|
||||
prompt_segment blue black '%~'
|
||||
}
|
||||
|
||||
# Virtualenv: current working virtualenv
|
||||
prompt_virtualenv() {
|
||||
local virtualenv_path="$VIRTUAL_ENV"
|
||||
if [[ -n $virtualenv_path ]]; then
|
||||
prompt_segment blue black "(`basename $virtualenv_path`)"
|
||||
fi
|
||||
}
|
||||
|
||||
# Status:
|
||||
# - was there an error
|
||||
# - am I root
|
||||
@ -152,6 +160,7 @@ prompt_status() {
|
||||
build_prompt() {
|
||||
RETVAL=$?
|
||||
prompt_status
|
||||
prompt_virtualenv
|
||||
prompt_context
|
||||
prompt_dir
|
||||
prompt_git
|
||||
|
@ -22,6 +22,8 @@ function mygit() {
|
||||
echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$( git_prompt_status )%{$reset_color%}$ZSH_THEME_GIT_PROMPT_SUFFIX"
|
||||
}
|
||||
|
||||
function retcode() {}
|
||||
|
||||
# alternate prompt with git & hg
|
||||
PROMPT=$'%{\e[0;34m%}%B┌─[%b%{\e[0m%}%{\e[1;32m%}%n%{\e[1;30m%}@%{\e[0m%}%{\e[0;36m%}%m%{\e[0;34m%}%B]%b%{\e[0m%} - %b%{\e[0;34m%}%B[%b%{\e[1;37m%}%~%{\e[0;34m%}%B]%b%{\e[0m%} - %{\e[0;34m%}%B[%b%{\e[0;33m%}'%D{"%Y-%m-%d %I:%M:%S"}%b$'%{\e[0;34m%}%B]%b%{\e[0m%}
|
||||
%{\e[0;34m%}%B└─%B[%{\e[1;35m%}%?$(retcode)%{\e[0;34m%}%B] <$(mygit)$(hg_prompt_info)>%{\e[0m%}%b '
|
||||
|
@ -2,7 +2,8 @@
|
||||
# on two lines for easier vgrepping
|
||||
# entry in a nice long thread on the Arch Linux forums: http://bbs.archlinux.org/viewtopic.php?pid=521888#p521888
|
||||
|
||||
function retcode() {}
|
||||
|
||||
PROMPT=$'%{\e[0;34m%}%B┌─[%b%{\e[0m%}%{\e[1;32m%}%n%{\e[1;30m%}@%{\e[0m%}%{\e[0;36m%}%m%{\e[0;34m%}%B]%b%{\e[0m%} - %b%{\e[0;34m%}%B[%b%{\e[1;37m%}%~%{\e[0;34m%}%B]%b%{\e[0m%} - %{\e[0;34m%}%B[%b%{\e[0;33m%}'%D{"%Y-%m-%d %I:%M:%S"}%b$'%{\e[0;34m%}%B]%b%{\e[0m%}
|
||||
%{\e[0;34m%}%B└─%B[%{\e[1;35m%}%?$(retcode)%{\e[0;34m%}%B]%{\e[0m%}%b '
|
||||
|
||||
|
||||
|
@ -11,13 +11,13 @@ fi
|
||||
# Append the current git branch, if in a git repository
|
||||
JARIN_CURRENT_LOCA_="%{$fg_bold[cyan]%}%~\$(git_prompt_info)%{$reset_color%}"
|
||||
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[white]%} <%{$fg[magenta]%}"
|
||||
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}"
|
||||
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$fg[white]%}"
|
||||
|
||||
# Do nothing if the branch is clean (no changes).
|
||||
ZSH_THEME_GIT_PROMPT_CLEAN="%{$reset_color%}>"
|
||||
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[white]%}>"
|
||||
|
||||
# Add a yellow ✗ if the branch is dirty
|
||||
ZSH_THEME_GIT_PROMPT_DIRTY="%{$reset_color%}> %{$fg[yellow]%}✗"
|
||||
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[white]%}> %{$fg[yellow]%}✗"
|
||||
|
||||
# Put it all together!
|
||||
PROMPT="$JARIN_CURRENT_RUBY_ $JARIN_CURRENT_LOCA_ "
|
||||
|
@ -1,9 +1,6 @@
|
||||
current_path=`pwd`
|
||||
current_path=${current_path/ /\\ }
|
||||
printf '\033[0;34m%s\033[0m\n' "Upgrading Oh My Zsh"
|
||||
cd "$ZSH"
|
||||
|
||||
if git pull origin master
|
||||
if git pull --rebase origin master
|
||||
then
|
||||
printf '\033[0;32m%s\033[0m\n' ' __ __ '
|
||||
printf '\033[0;32m%s\033[0m\n' ' ____ / /_ ____ ___ __ __ ____ _____/ /_ '
|
||||
@ -17,4 +14,3 @@ else
|
||||
printf '\033[0;31m%s\033[0m\n' 'There was an error updating. Try again later?'
|
||||
fi
|
||||
|
||||
cd "$current_path"
|
||||
|
Loading…
Reference in New Issue
Block a user