commit
56f094860b
27 changed files with 732 additions and 184 deletions
@ -0,0 +1,71 @@ |
||||
#compdef coffee |
||||
# ------------------------------------------------------------------------------ |
||||
# Copyright (c) 2011 Github zsh-users - http://github.com/zsh-users |
||||
# All rights reserved. |
||||
# |
||||
# Redistribution and use in source and binary forms, with or without |
||||
# modification, are permitted provided that the following conditions are met: |
||||
# * Redistributions of source code must retain the above copyright |
||||
# notice, this list of conditions and the following disclaimer. |
||||
# * Redistributions in binary form must reproduce the above copyright |
||||
# notice, this list of conditions and the following disclaimer in the |
||||
# documentation and/or other materials provided with the distribution. |
||||
# * Neither the name of the zsh-users nor the |
||||
# names of its contributors may be used to endorse or promote products |
||||
# derived from this software without specific prior written permission. |
||||
# |
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND |
||||
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
||||
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
||||
# DISCLAIMED. IN NO EVENT SHALL ZSH-USERS BE LIABLE FOR ANY |
||||
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
||||
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
||||
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
||||
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
||||
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
||||
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
||||
# ------------------------------------------------------------------------------ |
||||
# Description |
||||
# ----------- |
||||
# |
||||
# Completion script for Coffee.js v0.6.11 (http://coffeejs.org) |
||||
# |
||||
# ------------------------------------------------------------------------------ |
||||
# Authors |
||||
# ------- |
||||
# |
||||
# * Mario Fernandez (https://github.com/sirech) |
||||
# |
||||
# ------------------------------------------------------------------------------ |
||||
|
||||
local curcontext="$curcontext" state line ret=1 |
||||
typeset -A opt_args |
||||
|
||||
_arguments -C \ |
||||
'(- *)'{-h,--help}'[display this help message]' \ |
||||
'(- *)'{-v,--version}'[display the version number]' \ |
||||
'(-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 |
||||
|
||||
return ret |
||||
|
||||
# Local Variables: |
||||
# mode: Shell-Script |
||||
# sh-indentation: 2 |
||||
# indent-tabs-mode: nil |
||||
# sh-basic-offset: 2 |
||||
# End: |
||||
# vim: ft=zsh sw=2 ts=2 et |
||||
@ -0,0 +1,348 @@ |
||||
#!zsh |
||||
# |
||||
# Installation |
||||
# ------------ |
||||
# |
||||
# To achieve git-hubflow completion nirvana: |
||||
# |
||||
# 0. Update your zsh's git-completion module to the newest verion. |
||||
# From here. http://zsh.git.sourceforge.net/git/gitweb.cgi?p=zsh/zsh;a=blob_plain;f=Completion/Unix/Command/_git;hb=HEAD |
||||
# |
||||
# 1. Install this file. Either: |
||||
# |
||||
# a. Place it in your .zshrc: |
||||
# |
||||
# b. Or, copy it somewhere (e.g. ~/.git-hubflow-completion.zsh) and put the following line in |
||||
# your .zshrc: |
||||
# |
||||
# source ~/.git-hubflow-completion.zsh |
||||
# |
||||
# c. Or, use this file as a oh-my-zsh plugin. |
||||
# |
||||
|
||||
_git-hf () |
||||
{ |
||||
local curcontext="$curcontext" state line |
||||
typeset -A opt_args |
||||
|
||||
_arguments -C \ |
||||
':command:->command' \ |
||||
'*::options:->options' |
||||
|
||||
case $state in |
||||
(command) |
||||
|
||||
local -a subcommands |
||||
subcommands=( |
||||
'init:Initialize a new git repo with support for the branching model.' |
||||
'feature:Manage your feature branches.' |
||||
'release:Manage your release branches.' |
||||
'hotfix:Manage your hotfix branches.' |
||||
'support:Manage your support branches.' |
||||
'update:Pull upstream changes down into your master and develop branches.' |
||||
'version:Shows version information.' |
||||
) |
||||
_describe -t commands 'git hf' subcommands |
||||
;; |
||||
|
||||
(options) |
||||
case $line[1] in |
||||
|
||||
(init) |
||||
_arguments \ |
||||
-f'[Force setting of gitflow branches, even if already configured]' |
||||
;; |
||||
|
||||
(version) |
||||
;; |
||||
|
||||
(hotfix) |
||||
__git-hf-hotfix |
||||
;; |
||||
|
||||
(release) |
||||
__git-hf-release |
||||
;; |
||||
|
||||
(feature) |
||||
__git-hf-feature |
||||
;; |
||||
esac |
||||
;; |
||||
esac |
||||
} |
||||
|
||||
__git-hf-release () |
||||
{ |
||||
local curcontext="$curcontext" state line |
||||
typeset -A opt_args |
||||
|
||||
_arguments -C \ |
||||
':command:->command' \ |
||||
'*::options:->options' |
||||
|
||||
case $state in |
||||
(command) |
||||
|
||||
local -a subcommands |
||||
subcommands=( |
||||
'start:Start a new release branch.' |
||||
'finish:Finish a release branch.' |
||||
'list:List all your release branches. (Alias to `git hf release`)' |
||||
'cancel:Cancel release' |
||||
'push:Push release to github' |
||||
'pull:Pull release from github' |
||||
'track:Track release' |
||||
) |
||||
_describe -t commands 'git hf release' subcommands |
||||
_arguments \ |
||||
-v'[Verbose (more) output]' |
||||
;; |
||||
|
||||
(options) |
||||
case $line[1] in |
||||
|
||||
(start) |
||||
_arguments \ |
||||
-F'[Fetch from origin before performing finish]'\ |
||||
':version:__git_hf_version_list' |
||||
;; |
||||
|
||||
(finish) |
||||
_arguments \ |
||||
-F'[Fetch from origin before performing finish]' \ |
||||
-s'[Sign the release tag cryptographically]'\ |
||||
-u'[Use the given GPG-key for the digital signature (implies -s)]'\ |
||||
-m'[Use the given tag message]'\ |
||||
-p'[Push to $ORIGIN after performing finish]'\ |
||||
-k'[Keep branch after performing finish]'\ |
||||
-n"[Don't tag this release]"\ |
||||
':version:__git_hf_version_list' |
||||
;; |
||||
|
||||
*) |
||||
_arguments \ |
||||
-v'[Verbose (more) output]' |
||||
;; |
||||
esac |
||||
;; |
||||
esac |
||||
} |
||||
|
||||
__git-hf-hotfix () |
||||
{ |
||||
local curcontext="$curcontext" state line |
||||
typeset -A opt_args |
||||
|
||||
_arguments -C \ |
||||
':command:->command' \ |
||||
'*::options:->options' |
||||
|
||||
case $state in |
||||
(command) |
||||
|
||||
local -a subcommands |
||||
subcommands=( |
||||
'start:Start a new hotfix branch.' |
||||
'finish:Finish a hotfix branch.' |
||||
'list:List all your hotfix branches. (Alias to `git hf hotfix`)' |
||||
'publish:Publish the hotfix branch.' |
||||
'track:Track the hotfix branch.' |
||||
'pull:Pull the hotfix from github.' |
||||
'push:Push the hotfix to github.' |
||||
'cancel:Cancel the hotfix.' |
||||
) |
||||
_describe -t commands 'git hf hotfix' subcommands |
||||
_arguments \ |
||||
-v'[Verbose (more) output]' |
||||
;; |
||||
|
||||
(options) |
||||
case $line[1] in |
||||
|
||||
(start) |
||||
_arguments \ |
||||
-F'[Fetch from origin before performing finish]'\ |
||||
':hotfix:__git_hf_version_list'\ |
||||
':branch-name:__git_branch_names' |
||||
;; |
||||
|
||||
(finish) |
||||
_arguments \ |
||||
-F'[Fetch from origin before performing finish]' \ |
||||
-s'[Sign the release tag cryptographically]'\ |
||||
-u'[Use the given GPG-key for the digital signature (implies -s)]'\ |
||||
-m'[Use the given tag message]'\ |
||||
-p'[Push to $ORIGIN after performing finish]'\ |
||||
-k'[Keep branch after performing finish]'\ |
||||
-n"[Don't tag this release]"\ |
||||
':hotfix:__git_hf_hotfix_list' |
||||
;; |
||||
|
||||
*) |
||||
_arguments \ |
||||
-v'[Verbose (more) output]' |
||||
;; |
||||
esac |
||||
;; |
||||
esac |
||||
} |
||||
|
||||
__git-hf-feature () |
||||
{ |
||||
local curcontext="$curcontext" state line |
||||
typeset -A opt_args |
||||
|
||||
_arguments -C \ |
||||
':command:->command' \ |
||||
'*::options:->options' |
||||
|
||||
case $state in |
||||
(command) |
||||
|
||||
local -a subcommands |
||||
subcommands=( |
||||
'list:List all your feature branches. (Alias to `git hf feature`)' |
||||
'start:Start a new feature branch' |
||||
'finish:Finish a feature branch' |
||||
'submit:submit' |
||||
'track:track' |
||||
'diff:Diff' |
||||
'rebase:Rebase feature branch against develop' |
||||
'checkout:Checkout feature' |
||||
'pull:Pull feature branch from github' |
||||
'push:Push feature branch to github' |
||||
'cancel:Cancel feature' |
||||
) |
||||
_describe -t commands 'git hf feature' subcommands |
||||
_arguments \ |
||||
-v'[Verbose (more) output]' |
||||
;; |
||||
|
||||
(options) |
||||
case $line[1] in |
||||
|
||||
(start) |
||||
_arguments \ |
||||
-F'[Fetch from origin before performing finish]'\ |
||||
':feature:__git_hf_feature_list'\ |
||||
':branch-name:__git_branch_names' |
||||
;; |
||||
|
||||
(finish) |
||||
_arguments \ |
||||
-F'[Fetch from origin before performing finish]' \ |
||||
-r'[Rebase instead of merge]'\ |
||||
':feature:__git_hf_feature_list' |
||||
;; |
||||
|
||||
(publish) |
||||
_arguments \ |
||||
':feature:__git_hf_feature_list'\ |
||||
;; |
||||
|
||||
(track) |
||||
_arguments \ |
||||
':feature:__git_hf_feature_list'\ |
||||
;; |
||||
|
||||
(diff) |
||||
_arguments \ |
||||
':branch:__git_branch_names'\ |
||||
;; |
||||
|
||||
(rebase) |
||||
_arguments \ |
||||
-i'[Do an interactive rebase]' \ |
||||
':branch:__git_branch_names' |
||||
;; |
||||
|
||||
(checkout) |
||||
_arguments \ |
||||
':branch:__git_hf_feature_list'\ |
||||
;; |
||||
|
||||
(pull) |
||||
_arguments \ |
||||
':remote:__git_remotes'\ |
||||
':branch:__git_branch_names' |
||||
;; |
||||
|
||||
*) |
||||
_arguments \ |
||||
-v'[Verbose (more) output]' |
||||
;; |
||||
esac |
||||
;; |
||||
esac |
||||
} |
||||
|
||||
__git_hf_version_list () |
||||
{ |
||||
local expl |
||||
declare -a versions |
||||
|
||||
versions=(${${(f)"$(_call_program versions git hf release list 2> /dev/null | tr -d ' |*')"}}) |
||||
__git_command_successful || return |
||||
|
||||
_wanted versions expl 'version' compadd $versions |
||||
} |
||||
|
||||
__git_hf_feature_list () |
||||
{ |
||||
local expl |
||||
declare -a features |
||||
|
||||
features=(${${(f)"$(_call_program features git hf feature list 2> /dev/null | tr -d ' |*')"}}) |
||||
__git_command_successful || return |
||||
|
||||
_wanted features expl 'feature' compadd $features |
||||
} |
||||
|
||||
__git_remotes () { |
||||
local expl gitdir remotes |
||||
|
||||
gitdir=$(_call_program gitdir git rev-parse --git-dir 2>/dev/null) |
||||
__git_command_successful || return |
||||
|
||||
remotes=(${${(f)"$(_call_program remotes git config --get-regexp '"^remote\..*\.url$"')"}//#(#b)remote.(*).url */$match[1]}) |
||||
__git_command_successful || return |
||||
|
||||
# TODO: Should combine the two instead of either or. |
||||
if (( $#remotes > 0 )); then |
||||
_wanted remotes expl remote compadd $* - $remotes |
||||
else |
||||
_wanted remotes expl remote _files $* - -W "($gitdir/remotes)" -g "$gitdir/remotes/*" |
||||
fi |
||||
} |
||||
|
||||
__git_hf_hotfix_list () |
||||
{ |
||||
local expl |
||||
declare -a hotfixes |
||||
|
||||
hotfixes=(${${(f)"$(_call_program hotfixes git hf hotfix list 2> /dev/null | tr -d ' |*')"}}) |
||||
__git_command_successful || return |
||||
|
||||
_wanted hotfixes expl 'hotfix' compadd $hotfixes |
||||
} |
||||
|
||||
__git_branch_names () { |
||||
local expl |
||||
declare -a branch_names |
||||
|
||||
branch_names=(${${(f)"$(_call_program branchrefs git for-each-ref --format='"%(refname)"' refs/heads 2>/dev/null)"}#refs/heads/}) |
||||
__git_command_successful || return |
||||
|
||||
_wanted branch-names expl branch-name compadd $* - $branch_names |
||||
} |
||||
|
||||
__git_command_successful () { |
||||
if (( ${#pipestatus:#0} > 0 )); then |
||||
_message 'not a git repository' |
||||
return 1 |
||||
fi |
||||
return 0 |
||||
} |
||||
|
||||
zstyle ':completion:*:*:git:*' user-commands flow:'description for foo' |
||||
@ -0,0 +1,23 @@ |
||||
#!/usr/bin/env zsh |
||||
# Keeps track of the last used working directory and automatically jumps |
||||
# into it for new shells. |
||||
|
||||
# Flag indicating if we've previously jumped to last directory. |
||||
typeset -g ZSH_LAST_WORKING_DIRECTORY |
||||
local cache_file="$ZSH/cache/last-working-dir" |
||||
|
||||
# Updates the last directory once directory is changed. |
||||
function chpwd() { |
||||
echo "$PWD" > "$cache_file" |
||||
} |
||||
|
||||
# Changes directory to the last working directory. |
||||
function lwd() { |
||||
[[ ! -r "$cache_file" ]] || cd `cat "$cache_file"` |
||||
} |
||||
|
||||
# Automatically jump to last working directory unless this isn't the first time |
||||
# this plugin has been loaded. |
||||
if [[ -z "$ZSH_LAST_WORKING_DIRECTORY" ]]; then |
||||
lwd 2>/dev/null && ZSH_LAST_WORKING_DIRECTORY=1 || true |
||||
fi |
||||
@ -0,0 +1,119 @@ |
||||
#compdef pass |
||||
#autoload |
||||
|
||||
# Copyright (C) 2012: |
||||
# Johan Venant <jvenant@invicem.pro> |
||||
# Brian Mattern <rephorm@rephorm.com> |
||||
# Jason A. Donenfeld <Jason@zx2c4.com>. |
||||
# Santiago Borrazás <sanbor@gmail.com> |
||||
# All Rights Reserved. |
||||
# This file is licensed under the GPLv2+. Please see COPYING for more information. |
||||
|
||||
|
||||
_pass () { |
||||
local cmd |
||||
if (( CURRENT > 2)); then |
||||
cmd=${words[2]} |
||||
# Set the context for the subcommand. |
||||
curcontext="${curcontext%:*:*}:pass-$cmd" |
||||
# Narrow the range of words we are looking at to exclude `pass' |
||||
(( CURRENT-- )) |
||||
shift words |
||||
# Run the completion for the subcommand |
||||
case "${cmd}" in |
||||
init) |
||||
_arguments : \ |
||||
"-r[re-encrypt existing passwords]" \ |
||||
"--reencrypt[re-encrypt existing passwords]" |
||||
_pass_complete_keys |
||||
;; |
||||
ls|list|edit) |
||||
_pass_complete_entries_with_subdirs |
||||
;; |
||||
insert) |
||||
_arguments : \ |
||||
"-e[echo password to console]" \ |
||||
"--echo[echo password to console]" \ |
||||
"-m[multiline]" \ |
||||
"--multiline[multiline]" |
||||
_pass_complete_entries_with_subdirs |
||||
;; |
||||
generate) |
||||
_arguments : \ |
||||
"-n[don't include symbols in password]" \ |
||||
"--no-symbols[don't include symbols in password]" \ |
||||
"-c[copy password to the clipboard]" \ |
||||
"--clip[copy password to the clipboard]" |
||||
_pass_complete_entries_with_subdirs |
||||
;; |
||||
rm) |
||||
_arguments : \ |
||||
"-f[force deletion]" \ |
||||
"--force[force deletion]" \ |
||||
"-r[recursively delete]" \ |
||||
"--recursive[recursively delete]" |
||||
_pass_complete_entries_with_subdirs |
||||
;; |
||||
git) |
||||
local -a subcommands |
||||
subcommands=( |
||||
"init:Initialize git repository" |
||||
"push:Push to remote repository" |
||||
"pull:Pull from remote repository" |
||||
"config:Show git config" |
||||
"log:Show git log" |
||||
"reflog:Show git reflog" |
||||
) |
||||
_describe -t commands 'pass git' subcommands |
||||
;; |
||||
show|*) |
||||
_pass_cmd_show |
||||
;; |
||||
esac |
||||
else |
||||
local -a subcommands |
||||
subcommands=( |
||||
"init:Initialize new password storage" |
||||
"ls:List passwords" |
||||
"show:Decrypt and print a password" |
||||
"insert:Insert a new password" |
||||
"generate:Generate a new password using pwgen" |
||||
"edit:Edit a password with \$EDITOR" |
||||
"rm:Remove the password" |
||||
"git:Call git on the password store" |
||||
"version:Output version information" |
||||
"help:Output help message" |
||||
) |
||||
_describe -t commands 'pass' subcommands |
||||
_arguments : \ |
||||
"--version[Output version information]" \ |
||||
"--help[Output help message]" |
||||
_pass_cmd_show |
||||
fi |
||||
} |
||||
|
||||
_pass_cmd_show () { |
||||
_arguments : \ |
||||
"-c[put it on the clipboard]" \ |
||||
"--clip[put it on the clipboard]" |
||||
_pass_complete_entries |
||||
} |
||||
_pass_complete_entries_helper () { |
||||
local IFS=$'\n' |
||||
local prefix="${PASSWORD_STORE_DIR:-$HOME/.password-store}" |
||||
_values -C 'passwords' $(find "$prefix" \( -name .git -o -name .gpg-id \) -prune -o $@ -print | sed -e "s#${prefix}.##" -e 's#\.gpg##' | sort) |
||||
} |
||||
|
||||
_pass_complete_entries_with_subdirs () { |
||||
_pass_complete_entries_helper |
||||
} |
||||
|
||||
_pass_complete_entries () { |
||||
_pass_complete_entries_helper -type f |
||||
} |
||||
|
||||
_pass_complete_keys () { |
||||
local IFS=$'\n' |
||||
# Extract names and email addresses from gpg --list-keys |
||||
_values 'gpg keys' $(gpg2 --list-secret-keys --with-colons | cut -d : -f 10 | sort -u | sed '/^$/d') |
||||
} |
||||
@ -1,147 +0,0 @@ |
||||
#compdef rvm |
||||
|
||||
local curcontext="$curcontext" state line cmds ret=1 |
||||
|
||||
_arguments -C \ |
||||
'(- 1 *)'{-v,--version}'[display version information]' \ |
||||
'(-l|--level)'{-l,--level}'+[patch level to use with rvm use / install]:number' \ |
||||
'(--prefix)--prefix[path for all rvm files (~/.rvm/), with trailing slash!]:path:_files' \ |
||||
'(--bin)--bin[path for binaries to be placed (~/.rvm/bin/)]:path:_files' \ |
||||
'(--source)--source[src directory to use (~/.rvm/src/)]:path:_files' \ |
||||
'(--archives)--archives[directory for downladed files (~/.rvm/archives/)]:path:_files' \ |
||||
'-S[Specify a script file to attempt to load and run (rubydo)]:file:_files' \ |
||||
'-e[Execute code from the command line]:code' \ |
||||
'(-G)-G[root gem path to use]:path:_files' \ |
||||
'(--gems)--gems[Used to set the gems_flag, use with remove to remove gems]' \ |
||||
'(--archive)--archive[Used to set the archive_flag, use with remove to remove archive]' \ |
||||
'(--patch)--patch[With MRI Rubies you may specify one or more full paths to patches]' \ |
||||
'(-C|--configure)'{-C,--configure}'=[custom configure options]' \ |
||||
'(--nice)--nice[process niceness (for slow computers, default 0)]:number' \ |
||||
'(--ree)--ree-options[Options passed directly to ree ./installer on the command line]:options' \ |
||||
'(--head)--head[with update, updates rvm to git head version]' \ |
||||
'(--rubygems)--rubygems[with update, updates rubygems for selected ruby]' \ |
||||
'(--default)--default[with ruby select, sets a default ruby for new shells]' \ |
||||
'(--debug)--debug[Toggle debug mode on for very verbose output]' \ |
||||
'(--trace)--trace[Toggle trace mode on to see EVERYTHING rvm is doing]' \ |
||||
'(--force)--force[Force install, removes old install & source before install]' \ |
||||
'(--summary)--summary[Used with rubydo to print out a summary of the commands run]' \ |
||||
'(--latest)--latest[with gemset --dump skips version strings for latest gem]' \ |
||||
'(--gems)--gems[with uninstall/remove removes gems with the interpreter]' \ |
||||
'(--docs)--docs[with install, attempt to generate ri after installation]' \ |
||||
'(--reconfigure)--reconfigure[Force ./configure on install even if Makefile already exists]' \ |
||||
'1: :->cmds' \ |
||||
'*: :->args' && ret=0 |
||||
|
||||
case $state in |
||||
cmds) |
||||
cmds=( |
||||
"version:show the rvm version installed in rvm_path" |
||||
"use:setup current shell to use a specific ruby version" |
||||
"reload:reload rvm source itself (useful after changing rvm source)" |
||||
"implode:(seppuku) removes the rvm installation completely. This means everything in $rvm_path (~/.rvm)." |
||||
"update:upgrades rvm to the latest version." |
||||
"reset:remove current and stored default & system settings." |
||||
"info :show the *current* environment information for current ruby" |
||||
"current:print the *current* ruby version and the name of any gemset being used." |
||||
"debug:show info plus additional information for common issues" |
||||
"install:install one or many ruby versions" |
||||
"uninstall:uninstall one or many ruby versions, leaves their sources" |
||||
"remove:uninstall one or many ruby versions and remove their sources" |
||||
"migrate:Lets you migrate all gemsets from one ruby to another." |
||||
"upgrade:Lets you upgrade from one version of a ruby to another, including migrating your gemsets semi-automatically." |
||||
"wrapper:generates a set of wrapper executables for a given ruby with the specified ruby and gemset combination. Used under the hood for passenger support and the like." |
||||
"cleanup:Lets you remove stale source folders / archives and other miscellaneous data associated with rvm." |
||||
"repair:Lets you repair parts of your environment e.g. wrappers, env files and and similar files (e.g. general maintenance)." |
||||
"snapshot:Lets your backup / restore an rvm installation in a lightweight manner." |
||||
"disk-usage:Tells you how much disk space rvm install is using." |
||||
"tools:Provides general information about the ruby environment, primarily useful when scripting rvm." |
||||
"docs:Tools to make installing ri and rdoc documentation easier." |
||||
"rvmrc:Tools related to managing rvmrc trust and loading." |
||||
"exec:runs an arbitrary command as a set operation." |
||||
"ruby:runs a named ruby file against specified and/or all rubies" |
||||
"gem:runs a gem command using selected ruby's 'gem'" |
||||
"rake:runs a rake task against specified and/or all rubies" |
||||
"tests:runs 'rake test' across selected ruby versions" |
||||
"specs:runs 'rake spec' across selected ruby versions" |
||||
"monitor:Monitor cwd for testing, run rake {spec,test} on changes." |
||||
"gemset:gemsets: http://rvm.beginrescueend.com/gemsets/" |
||||
"rubygems:Switches the installed version of rubygems for the current ruby." |
||||
"gemdir:display the path to the current gem directory (GEM_HOME)." |
||||
"srcdir:display the path to rvm source directory (may be yanked)" |
||||
"fetch:Performs an archive / src fetch only of the selected ruby." |
||||
"list:show currently installed rubies, interactive output." |
||||
"package:Install a dependency package {readline,iconv,zlib,openssl}" |
||||
"notes:Display notes, with operating system specifics." |
||||
"export:Temporarily set an environment variable in the current shell." |
||||
"unexport:Undo changes made to the environment by 'rvm export'." |
||||
) |
||||
_describe -t commands 'rvm command' cmds && ret=0 |
||||
;; |
||||
args) |
||||
case $line[1] in |
||||
(use|uninstall|remove|list) |
||||
_values -S , 'rubies' $(rvm list strings | sed -e 's/ruby-\([^) ]*\)-\([^) ]*\)/ruby-\1-\2 \1-\2 \1/g') default system && ret=0 |
||||
;; |
||||
(install|fetch) |
||||
_values -S , 'rubies' $(rvm list known_strings) && ret=0 |
||||
;; |
||||
gemset) |
||||
if (( CURRENT == 3 )); then |
||||
_values 'gemset_commands' \ |
||||
'import' \ |
||||
'export' \ |
||||
'create' \ |
||||
'copy' \ |
||||
'rename' \ |
||||
'empty' \ |
||||
'delete' \ |
||||
'name' \ |
||||
'dir' \ |
||||
'list' \ |
||||
'list_all' \ |
||||
'gemdir' \ |
||||
'install' \ |
||||
'pristine' \ |
||||
'clear' \ |
||||
'use' \ |
||||
'update' \ |
||||
'unpack' \ |
||||
'globalcache' |
||||
else |
||||
_values -S , 'gemsets' $(rvm gemset list | grep -v gemset 2>/dev/null) |
||||
fi |
||||
ret=0 |
||||
;; |
||||
package) |
||||
if (( CURRENT == 3 )); then |
||||
_values 'package_commands' \ |
||||
'install' \ |
||||
'uninstall' |
||||
else |
||||
_values 'packages' \ |
||||
'readline' \ |
||||
'iconv' \ |
||||
'curl' \ |
||||
'openssl' \ |
||||
'zlib' \ |
||||
'autoconf' \ |
||||
'ncurses' \ |
||||
'pkgconfig' \ |
||||
'gettext' \ |
||||
'glib' \ |
||||
'mono' \ |
||||
'llvm' \ |
||||
'libxml2' \ |
||||
'libxslt' \ |
||||
'libyaml' |
||||
fi |
||||
ret=0 |
||||
;; |
||||
*) |
||||
(( ret )) && _message 'no more arguments' |
||||
;; |
||||
esac |
||||
;; |
||||
esac |
||||
|
||||
return ret |
||||
@ -0,0 +1,26 @@ |
||||
#!/usr/bin/env zsh |
||||
local USER_HOST='%{$terminfo[bold]$fg[yellow]%}%n@%m%{$reset_color%}' |
||||
local RETURN_CODE="%(?..%{$fg[red]%}%? ↵%{$reset_color%})" |
||||
local GIT_BRANCH='%{$terminfo[bold]$fg[red]%}$(git_prompt_info)%{$reset_color%}' |
||||
local CURRENT_DIR='%{$terminfo[bold]$fg[green]%} %~%{$reset_color%}' |
||||
local RUBY_RVM='%{$fg[gray]%}‹$(rvm-prompt i v g)›%{$reset_color%}' |
||||
local COMMAND_TIP='%{$terminfo[bold]$fg[blue]%}$(wget -qO - http://www.commandlinefu.com/commands/random/plaintext | sed 1d | sed '/^$/d' | sed 's/^/║/g')%{$reset_color%}' |
||||
######### PROMPT ######### |
||||
PROMPT="%{$terminfo[bold]$fg[blue]%}╔═ %{$reset_color%}${USER_HOST} ${CURRENT_DIR} ${RUBY_RVM} ${GIT_BRANCH} |
||||
${COMMAND_TIP} |
||||
%{$terminfo[bold]$fg[blue]%}╚═ %{$reset_color%}%B%{$terminfo[bold]$fg[white]%}$%b%{$reset_color%} " |
||||
RPS1='${RETURN_CODE}' |
||||
RPROMPT='%{$fg[green]%}[%*]%{$reset_color%}' |
||||
######### PROMPT ######### |
||||
########## GIT ########### |
||||
ZSH_THEME_GIT_PROMPT_PREFIX="‹" |
||||
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$GIT_PROMPT_INFO%}›" |
||||
ZSH_THEME_GIT_PROMPT_DIRTY=" %{$GIT_DIRTY_COLOR%}✘" |
||||
ZSH_THEME_GIT_PROMPT_CLEAN=" %{$GIT_CLEAN_COLOR%}✔" |
||||
ZSH_THEME_GIT_PROMPT_ADDED="%{$FG[082]%}✚%{$reset_color%}" |
||||
ZSH_THEME_GIT_PROMPT_MODIFIED="%{$FG[166]%}✹%{$reset_color%}" |
||||
ZSH_THEME_GIT_PROMPT_DELETED="%{$FG[160]%}✖%{$reset_color%}" |
||||
ZSH_THEME_GIT_PROMPT_RENAMED="%{$FG[220]%}➜%{$reset_color%}" |
||||
ZSH_THEME_GIT_PROMPT_UNMERGED="%{$FG[082]%}═%{$reset_color%}" |
||||
ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$FG[190]%}✭%{$reset_color%}" |
||||
########## GIT ########### |
||||
@ -1,10 +1,22 @@ |
||||
PROMPT=$' |
||||
%{$fg[blue]%}%/%{$reset_color%} $(git_prompt_info)%{$fg[white]%}[%n@%m]%{$reset_color%} %{$fg[white]%}[%T]%{$reset_color%} |
||||
%{$fg[blue]%}%/%{$reset_color%} $(git_prompt_info)$(bzr_prompt_info)%{$fg[white]%}[%n@%m]%{$reset_color%} %{$fg[white]%}[%T]%{$reset_color%} |
||||
%{$fg_bold[black]%}>%{$reset_color%} ' |
||||
|
||||
PROMPT2="%{$fg_blod[black]%}%_> %{$reset_color%}" |
||||
|
||||
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[green]%}[" |
||||
GIT_CB="git::" |
||||
ZSH_THEME_SCM_PROMPT_PREFIX="%{$fg[green]%}[" |
||||
ZSH_THEME_GIT_PROMPT_PREFIX=$ZSH_THEME_SCM_PROMPT_PREFIX$GIT_CB |
||||
ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%} " |
||||
ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}*%{$fg[green]%}" |
||||
ZSH_THEME_GIT_PROMPT_CLEAN="" |
||||
|
||||
## Bazaar integration |
||||
bzr_prompt_info() { |
||||
BZR_CB=`bzr nick 2> /dev/null | grep -v "ERROR" | cut -d ":" -f2 | awk -F / '{print "bzr::"$1}'` |
||||
if [ -n "$BZR_CB" ]; then |
||||
BZR_DIRTY="" |
||||
[[ -n `bzr status` ]] && BZR_DIRTY="%{$fg[red]%} *%{$reset_color%}" |
||||
echo "$ZSH_THEME_SCM_PROMPT_PREFIX$BZR_CB$BZR_DIRTY$ZSH_THEME_GIT_PROMPT_SUFFIX" |
||||
fi |
||||
} |
||||
|
||||
@ -0,0 +1,12 @@ |
||||
local rvm="%{$fg[green]%}[$(rvm-prompt i v g)]%{$reset_color%}" |
||||
|
||||
PROMPT=' |
||||
%{$fg_bold[gray]%}%~%{$fg_bold[blue]%}%{$fg_bold[blue]%} % %{$reset_color%} |
||||
%{$fg[green]%}➞ %{$reset_color%' |
||||
|
||||
RPROMPT='$(git_prompt_info) $(rvm)' |
||||
|
||||
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}[git:" |
||||
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" |
||||
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}] %{$fg[red]%}✖ %{$reset_color%}" |
||||
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%}] %{$fg[green]%}✔%{$reset_color%}" |
||||
@ -0,0 +1,24 @@ |
||||
# ZSH theme by James Smith (http://loopj.com) |
||||
# A multiline prompt with username, hostname, full path, return status, git branch, git dirty status, git remote status |
||||
|
||||
local return_status="%{$fg[red]%}%(?..⏎)%{$reset_color%}" |
||||
|
||||
local host_color="green" |
||||
if [ -n "$SSH_CLIENT" ]; then |
||||
local host_color="red" |
||||
fi |
||||
|
||||
PROMPT=' |
||||
%{$fg_bold[grey]%}[%{$reset_color%}%{$fg_bold[${host_color}]%}%n@%m%{$reset_color%}%{$fg_bold[grey]%}]%{$reset_color%} %{$fg_bold[blue]%}%10c%{$reset_color%} $(git_prompt_info) $(git_remote_status) |
||||
%{$fg_bold[cyan]%}❯%{$reset_color%} ' |
||||
|
||||
|
||||
RPROMPT='${return_status}%{$reset_color%}' |
||||
|
||||
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[grey]%}(%{$fg[red]%}" |
||||
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" |
||||
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[grey]%}) %{$fg[yellow]%}⚡%{$reset_color%}" |
||||
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[grey]%})" |
||||
ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE="%{$fg_bold[magenta]%}↓%{$reset_color%}" |
||||
ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE="%{$fg_bold[magenta]%}↑%{$reset_color%}" |
||||
ZSH_THEME_GIT_PROMPT_DIVERGED_REMOTE="%{$fg_bold[magenta]%}↕%{$reset_color%}" |
||||
@ -1,15 +1,18 @@ |
||||
ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[white]%}[" |
||||
ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%}" |
||||
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}●%{$reset_color%}" |
||||
ZSH_THEME_GIT_PROMPT_CLEAN="" |
||||
ZSH_THEME_GIT_PROMPT_SUFFIX="" |
||||
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}●%{$reset_color%}]%{$reset_color%} " |
||||
ZSH_THEME_GIT_PROMPT_CLEAN="]%{$reset_color%} " |
||||
ZSH_THEME_SVN_PROMPT_PREFIX=$ZSH_THEME_GIT_PROMPT_PREFIX |
||||
ZSH_THEME_SVN_PROMPT_SUFFIX=$ZSH_THEME_GIT_PROMPT_SUFFIX |
||||
ZSH_THEME_SVN_PROMPT_DIRTY=$ZSH_THEME_GIT_PROMPT_DIRTY |
||||
ZSH_THEME_SVN_PROMPT_CLEAN=$ZSH_THEME_GIT_PROMPT_CLEAN |
||||
|
||||
#Customized git status, oh-my-zsh currently does not allow render dirty status before branch |
||||
git_custom_status() { |
||||
local cb=$(current_branch) |
||||
if [ -n "$cb" ]; then |
||||
echo "- $ZSH_THEME_GIT_PROMPT_PREFIX$(current_branch)$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX" |
||||
vcs_status() { |
||||
if [[ ( $(whence in_svn) != "" ) && ( $(in_svn) == 1 ) ]]; then |
||||
svn_prompt_info |
||||
else |
||||
git_prompt_info |
||||
fi |
||||
} |
||||
|
||||
|
||||
PROMPT='%2~ $(git_custom_status) »%b ' |
||||
PROMPT='%2~ $(vcs_status)»%b ' |
||||
@ -0,0 +1,13 @@ |
||||
ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[green]%}" |
||||
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" |
||||
ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}⚡" |
||||
ZSH_THEME_GIT_PROMPT_CLEAN="" |
||||
|
||||
function prompt_char { |
||||
if [ $UID -eq 0 ]; then echo "%{$fg[red]%}#%{$reset_color%}"; else echo $; fi |
||||
} |
||||
|
||||
PROMPT='%(?,,%{$fg[red]%}FAIL: $?%{$reset_color%} |
||||
)%{$fg[magenta]%}%n%{$reset_color%}@%{$fg[yellow]%}%m%{$reset_color%}: %{$fg_bold[blue]%}%~%{$reset_color%}$(git_prompt_info) %_$(prompt_char) ' |
||||
|
||||
RPROMPT='%{$fg[green]%}[%*]%{$reset_color%}' |
||||
Loading…
Reference in new issue