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=$' |
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%} ' |
%{$fg_bold[black]%}>%{$reset_color%} ' |
||||||
|
|
||||||
PROMPT2="%{$fg_blod[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_SUFFIX="]%{$reset_color%} " |
||||||
ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}*%{$fg[green]%}" |
ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}*%{$fg[green]%}" |
||||||
ZSH_THEME_GIT_PROMPT_CLEAN="" |
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_PREFIX="%{$reset_color%}%{$fg[white]%}[" |
||||||
ZSH_THEME_GIT_PROMPT_SUFFIX="]%{$reset_color%}" |
ZSH_THEME_GIT_PROMPT_SUFFIX="" |
||||||
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}●%{$reset_color%}" |
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}●%{$reset_color%}]%{$reset_color%} " |
||||||
ZSH_THEME_GIT_PROMPT_CLEAN="" |
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 |
vcs_status() { |
||||||
git_custom_status() { |
if [[ ( $(whence in_svn) != "" ) && ( $(in_svn) == 1 ) ]]; then |
||||||
local cb=$(current_branch) |
svn_prompt_info |
||||||
if [ -n "$cb" ]; then |
else |
||||||
echo "- $ZSH_THEME_GIT_PROMPT_PREFIX$(current_branch)$(parse_git_dirty)$ZSH_THEME_GIT_PROMPT_SUFFIX" |
git_prompt_info |
||||||
fi |
fi |
||||||
} |
} |
||||||
|
|
||||||
|
PROMPT='%2~ $(vcs_status)»%b ' |
||||||
PROMPT='%2~ $(git_custom_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