Commit 93b4a6c0 authored by Andrew Janke's avatar Andrew Janke
Browse files

Merge branch 'master' into osx-fix-tab-for-iterm

Conflicts:
	plugins/osx/osx.plugin.zsh
parents 689b5ab3 0532860c
...@@ -43,6 +43,7 @@ The search content are ...@@ -43,6 +43,7 @@ The search content are
* `reactjs <google.com/search?as_q=<search-term>&as_sitesearch=facebook.github.io/react>` * `reactjs <google.com/search?as_q=<search-term>&as_sitesearch=facebook.github.io/react>`
* `emberjs <emberjs.com>` * `emberjs <emberjs.com>`
* `stackoverflow <stackoverflow.com>` * `stackoverflow <stackoverflow.com>`
* `npmjs <npmjs.com>`
## Aliases ## ## Aliases ##
...@@ -69,6 +70,7 @@ There are a few aliases presented as well: ...@@ -69,6 +70,7 @@ There are a few aliases presented as well:
* `reactjs` A shorthand for `frontend reactjs` * `reactjs` A shorthand for `frontend reactjs`
* `emberjs` A shorthand for `frontend emberjs` * `emberjs` A shorthand for `frontend emberjs`
* `stackoverflow` A shorthand for `frontend stackoverflow` * `stackoverflow` A shorthand for `frontend stackoverflow`
* `npmjs` A shorthand for `frontend npmjs`
## Author ## Author
......
...@@ -37,6 +37,7 @@ function _frontend() { ...@@ -37,6 +37,7 @@ function _frontend() {
'reactjs: Search in React website' 'reactjs: Search in React website'
'emberjs: Search in Ember website' 'emberjs: Search in Ember website'
'stackoverflow: Search in StackOverflow website' 'stackoverflow: Search in StackOverflow website'
'npmjs: Search in NPMJS website'
) )
_arguments -C \ _arguments -C \
...@@ -110,6 +111,9 @@ function _frontend() { ...@@ -110,6 +111,9 @@ function _frontend() {
stackoverflow) stackoverflow)
_describe -t points "Warp points" frontend_points && ret=0 _describe -t points "Warp points" frontend_points && ret=0
;; ;;
npmjs)
_describe -t points "Warp points" frontend_points && ret=0
;;
esac esac
;; ;;
esac esac
......
...@@ -2,14 +2,6 @@ ...@@ -2,14 +2,6 @@
function frontend() { function frontend() {
# get the open command
local open_cmd
if [[ $(uname -s) == 'Darwin' ]]; then
open_cmd='open'
else
open_cmd='xdg-open'
fi
# no keyword provided, simply show how call methods # no keyword provided, simply show how call methods
if [[ $# -le 1 ]]; then if [[ $# -le 1 ]]; then
echo "Please provide a search-content and a search-term for app.\nEx:\nfrontend <search-content> <search-term>\n" echo "Please provide a search-content and a search-term for app.\nEx:\nfrontend <search-content> <search-term>\n"
...@@ -17,7 +9,7 @@ function frontend() { ...@@ -17,7 +9,7 @@ function frontend() {
fi fi
# check whether the search engine is supported # check whether the search engine is supported
if [[ ! $1 =~ '(jquery|mdn|compass|html5please|caniuse|aurajs|dartlang|qunit|fontello|bootsnipp|cssflow|codepen|unheap|bem|smacss|angularjs|reactjs|emberjs|stackoverflow)' ]]; if [[ ! $1 =~ '(jquery|mdn|compass|html5please|caniuse|aurajs|dartlang|qunit|fontello|bootsnipp|cssflow|codepen|unheap|bem|smacss|angularjs|reactjs|emberjs|stackoverflow|npmjs)' ]];
then then
echo "Search valid search content $1 not supported." echo "Search valid search content $1 not supported."
echo "Valid contents: (formats 'frontend <search-content>' or '<search-content>')" echo "Valid contents: (formats 'frontend <search-content>' or '<search-content>')"
...@@ -41,6 +33,7 @@ function frontend() { ...@@ -41,6 +33,7 @@ function frontend() {
echo "* reactjs" echo "* reactjs"
echo "* emberjs" echo "* emberjs"
echo "* stackoverflow" echo "* stackoverflow"
echo "* npmjs"
echo "" echo ""
return 1 return 1
...@@ -107,13 +100,16 @@ function frontend() { ...@@ -107,13 +100,16 @@ function frontend() {
"stackoverflow") "stackoverflow")
url="${url}stackoverflow.com" url="${url}stackoverflow.com"
url="${url}/search?q=$2" ;; url="${url}/search?q=$2" ;;
"npmjs")
url="${url}www.npmjs.com"
url="${url}/search?q=$2" ;;
*) echo "INVALID PARAM!" *) echo "INVALID PARAM!"
return ;; return ;;
esac esac
echo "$url" echo "$url"
$open_cmd "$url" open_command "$url"
} }
...@@ -156,3 +152,4 @@ alias emberjs='frontend emberjs' ...@@ -156,3 +152,4 @@ alias emberjs='frontend emberjs'
# search websites # search websites
alias stackoverflow='frontend stackoverflow' alias stackoverflow='frontend stackoverflow'
alias npmjs='frontend npmjs'
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
# #
#Alias #Alias
alias gf='git flow' alias gfl='git flow'
alias gcd='git checkout develop' alias gcd='git checkout develop'
alias gch='git checkout hotfix' alias gch='git checkout hotfix'
alias gcr='git checkout release' alias gcr='git checkout release'
......
# ZSH Git Prompt Plugin from: # ZSH Git Prompt Plugin from:
# http://github.com/olivierverdier/zsh-git-prompt # http://github.com/olivierverdier/zsh-git-prompt
#
export __GIT_PROMPT_DIR=$ZSH/plugins/git-prompt
# Allow for functions in the prompt. __GIT_PROMPT_DIR="${0:A:h}"
setopt PROMPT_SUBST
## Enable auto-execution of functions. ## Hook function definitions
typeset -ga preexec_functions function chpwd_update_git_vars() {
typeset -ga precmd_functions update_current_git_vars
typeset -ga chpwd_functions }
# Append git functions needed for prompt.
preexec_functions+='preexec_update_git_vars'
precmd_functions+='precmd_update_git_vars'
chpwd_functions+='chpwd_update_git_vars'
## Function definitions
function preexec_update_git_vars() { function preexec_update_git_vars() {
case "$2" in case "$2" in
git*) git*|hub*|gh*|stg*)
__EXECUTED_GIT_COMMAND=1 __EXECUTED_GIT_COMMAND=1
;; ;;
esac esac
} }
function precmd_update_git_vars() { function precmd_update_git_vars() {
if [ -n "$__EXECUTED_GIT_COMMAND" ]; then if [ -n "$__EXECUTED_GIT_COMMAND" ] || [ ! -n "$ZSH_THEME_GIT_PROMPT_CACHE" ]; then
update_current_git_vars update_current_git_vars
unset __EXECUTED_GIT_COMMAND unset __EXECUTED_GIT_COMMAND
fi fi
} }
function chpwd_update_git_vars() { chpwd_functions+=(chpwd_update_git_vars)
update_current_git_vars precmd_functions+=(precmd_update_git_vars)
} preexec_functions+=(preexec_update_git_vars)
## Function definitions
function update_current_git_vars() { function update_current_git_vars() {
unset __CURRENT_GIT_STATUS unset __CURRENT_GIT_STATUS
local gitstatus="$__GIT_PROMPT_DIR/gitstatus.py" local gitstatus="$__GIT_PROMPT_DIR/gitstatus.py"
_GIT_STATUS=`python ${gitstatus}` _GIT_STATUS=$(python ${gitstatus} 2>/dev/null)
__CURRENT_GIT_STATUS=("${(f)_GIT_STATUS}") __CURRENT_GIT_STATUS=("${(@s: :)_GIT_STATUS}")
GIT_BRANCH=$__CURRENT_GIT_STATUS[1]
GIT_AHEAD=$__CURRENT_GIT_STATUS[2]
GIT_BEHIND=$__CURRENT_GIT_STATUS[3]
GIT_STAGED=$__CURRENT_GIT_STATUS[4]
GIT_CONFLICTS=$__CURRENT_GIT_STATUS[5]
GIT_CHANGED=$__CURRENT_GIT_STATUS[6]
GIT_UNTRACKED=$__CURRENT_GIT_STATUS[7]
} }
function prompt_git_info() { git_super_status() {
precmd_update_git_vars
if [ -n "$__CURRENT_GIT_STATUS" ]; then if [ -n "$__CURRENT_GIT_STATUS" ]; then
echo "(%{${fg[red]}%}$__CURRENT_GIT_STATUS[1]%{${fg[default]}%}$__CURRENT_GIT_STATUS[2]%{${fg[magenta]}%}$__CURRENT_GIT_STATUS[3]%{${fg[default]}%})" STATUS="$ZSH_THEME_GIT_PROMPT_PREFIX$ZSH_THEME_GIT_PROMPT_BRANCH$GIT_BRANCH%{${reset_color}%}"
if [ "$GIT_BEHIND" -ne "0" ]; then
STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_BEHIND$GIT_BEHIND%{${reset_color}%}"
fi
if [ "$GIT_AHEAD" -ne "0" ]; then
STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_AHEAD$GIT_AHEAD%{${reset_color}%}"
fi
STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_SEPARATOR"
if [ "$GIT_STAGED" -ne "0" ]; then
STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_STAGED$GIT_STAGED%{${reset_color}%}"
fi
if [ "$GIT_CONFLICTS" -ne "0" ]; then
STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_CONFLICTS$GIT_CONFLICTS%{${reset_color}%}"
fi
if [ "$GIT_CHANGED" -ne "0" ]; then
STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_CHANGED$GIT_CHANGED%{${reset_color}%}"
fi
if [ "$GIT_UNTRACKED" -ne "0" ]; then
STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_UNTRACKED%{${reset_color}%}"
fi
if [ "$GIT_CHANGED" -eq "0" ] && [ "$GIT_CONFLICTS" -eq "0" ] && [ "$GIT_STAGED" -eq "0" ] && [ "$GIT_UNTRACKED" -eq "0" ]; then
STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_CLEAN"
fi
STATUS="$STATUS%{${reset_color}%}$ZSH_THEME_GIT_PROMPT_SUFFIX"
echo "$STATUS"
fi fi
} }
# Default values for the appearance of the prompt.
ZSH_THEME_GIT_PROMPT_PREFIX="("
ZSH_THEME_GIT_PROMPT_SUFFIX=")"
ZSH_THEME_GIT_PROMPT_SEPARATOR="|"
ZSH_THEME_GIT_PROMPT_BRANCH="%{$fg_bold[magenta]%}"
ZSH_THEME_GIT_PROMPT_STAGED="%{$fg[red]%}%{●%G%}"
ZSH_THEME_GIT_PROMPT_CONFLICTS="%{$fg[red]%}%{✖%G%}"
ZSH_THEME_GIT_PROMPT_CHANGED="%{$fg[blue]%}%{✚%G%}"
ZSH_THEME_GIT_PROMPT_BEHIND="%{↓%G%}"
ZSH_THEME_GIT_PROMPT_AHEAD="%{↑%G%}"
ZSH_THEME_GIT_PROMPT_UNTRACKED="%{…%G%}"
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg_bold[green]%}%{✔%G%}"
# Set the prompt. # Set the prompt.
#PROMPT='%B%m%~%b$(prompt_git_info) %# ' RPROMPT='$(git_super_status)'
# for a right prompt:
#RPROMPT='%b$(prompt_git_info)'
RPROMPT='$(prompt_git_info)'
#!/usr/bin/env python #!/usr/bin/env python
# -*- coding: UTF-8 -*- from __future__ import print_function
from subprocess import Popen, PIPE
import re
# change those symbols to whatever you prefer import sys
symbols = { import re
'ahead of': '↑', import shlex
'behind': '↓', from subprocess import Popen, PIPE, check_output
'staged': '♦',
'changed': '‣',
'untracked': '…',
'clean': '⚡',
'unmerged': '≠',
'sha1': ':'
}
output, error = Popen(
['git', 'status'], stdout=PIPE, stderr=PIPE, universal_newlines=True).communicate()
if error: def get_tagname_or_hash():
import sys """return tagname if exists else hash"""
sys.exit(0) cmd = 'git log -1 --format="%h%d"'
lines = output.splitlines() output = check_output(shlex.split(cmd)).decode('utf-8').strip()
hash_, tagname = None, None
# get hash
m = re.search('\(.*\)$', output)
if m:
hash_ = output[:m.start()-1]
# get tagname
m = re.search('tag: .*[,\)]', output)
if m:
tagname = 'tags/' + output[m.start()+len('tag: '): m.end()-1]
behead_re = re.compile( if tagname:
r"^# Your branch is (ahead of|behind) '(.*)' by (\d+) commit") return tagname
diverge_re = re.compile(r"^# and have (\d+) and (\d+) different") elif hash_:
return hash_
return None
status = ''
staged = re.compile(r'^# Changes to be committed:$', re.MULTILINE)
changed = re.compile(r'^# Changed but not updated:$', re.MULTILINE)
untracked = re.compile(r'^# Untracked files:$', re.MULTILINE)
unmerged = re.compile(r'^# Unmerged paths:$', re.MULTILINE)
# `git status --porcelain --branch` can collect all information
# branch, remote_branch, untracked, staged, changed, conflicts, ahead, behind
po = Popen(['git', 'status', '--porcelain', '--branch'], stdout=PIPE, stderr=PIPE)
stdout, sterr = po.communicate()
if po.returncode != 0:
sys.exit(0) # Not a git repository
def execute(*command): # collect git status information
out, err = Popen(stdout=PIPE, stderr=PIPE, *command).communicate() untracked, staged, changed, conflicts = [], [], [], []
if not err: ahead, behind = 0, 0
nb = len(out.splitlines()) status = [(line[0], line[1], line[2:]) for line in stdout.decode('utf-8').splitlines()]
for st in status:
if st[0] == '#' and st[1] == '#':
if re.search('Initial commit on', st[2]):
branch = st[2].split(' ')[-1]
elif re.search('no branch', st[2]): # detached status
branch = get_tagname_or_hash()
elif len(st[2].strip().split('...')) == 1:
branch = st[2].strip()
else: else:
nb = '?' # current and remote branch info
return nb branch, rest = st[2].strip().split('...')
if len(rest.split(' ')) == 1:
if staged.search(output): # remote_branch = rest.split(' ')[0]
nb = execute( pass
['git', 'diff', '--staged', '--name-only', '--diff-filter=ACDMRT']) else:
status += '%s%s' % (symbols['staged'], nb) # ahead or behind
if unmerged.search(output): divergence = ' '.join(rest.split(' ')[1:])
nb = execute(['git', 'diff', '--staged', '--name-only', '--diff-filter=U']) divergence = divergence.lstrip('[').rstrip(']')
status += '%s%s' % (symbols['unmerged'], nb) for div in divergence.split(', '):
if changed.search(output): if 'ahead' in div:
nb = execute(['git', 'diff', '--name-only', '--diff-filter=ACDMRT']) ahead = int(div[len('ahead '):].strip())
status += '%s%s' % (symbols['changed'], nb) elif 'behind' in div:
if untracked.search(output): behind = int(div[len('behind '):].strip())
status += symbols['untracked'] elif st[0] == '?' and st[1] == '?':
if status == '': untracked.append(st)
status = symbols['clean'] else:
if st[1] == 'M':
remote = '' changed.append(st)
if st[0] == 'U':
bline = lines[0] conflicts.append(st)
if bline.find('Not currently on any branch') != -1: elif st[0] != ' ':
branch = symbols['sha1'] + Popen([ staged.append(st)
'git',
'rev-parse',
'--short',
'HEAD'], stdout=PIPE).communicate()[0][:-1]
else:
branch = bline.split(' ')[-1]
bstatusline = lines[1]
match = behead_re.match(bstatusline)
if match:
remote = symbols[match.groups()[0]]
remote += match.groups()[2]
elif lines[2:]:
div_match = diverge_re.match(lines[2])
if div_match:
remote = "{behind}{1}{ahead of}{0}".format(
*div_match.groups(), **symbols)
print('\n'.join([branch, remote, status])) out = ' '.join([
branch,
str(ahead),
str(behind),
str(len(staged)),
str(len(conflicts)),
str(len(changed)),
str(len(untracked)),
])
print(out, end='')
...@@ -68,10 +68,12 @@ alias gc!='git commit -v --amend' ...@@ -68,10 +68,12 @@ alias gc!='git commit -v --amend'
alias gca='git commit -v -a' alias gca='git commit -v -a'
alias gca!='git commit -v -a --amend' alias gca!='git commit -v -a --amend'
alias gcan!='git commit -v -a -s --no-edit --amend' alias gcan!='git commit -v -a -s --no-edit --amend'
alias gcam='git commit -a -m'
alias gcb='git checkout -b' alias gcb='git checkout -b'
alias gcf='git config --list' alias gcf='git config --list'
alias gcl='git clone --recursive' alias gcl='git clone --recursive'
alias gclean='git reset --hard && git clean -dfx' alias gclean='git clean -fd'
alias gpristine='git reset --hard && git clean -dfx'
alias gcm='git checkout master' alias gcm='git checkout master'
alias gcmsg='git commit -m' alias gcmsg='git commit -m'
alias gco='git checkout' alias gco='git checkout'
......
...@@ -143,5 +143,6 @@ _arguments \ ...@@ -143,5 +143,6 @@ _arguments \
$_command_args \ $_command_args \
'(--app)--app[the app name]' \ '(--app)--app[the app name]' \
'(--remote)--remote[the remote name]' \ '(--remote)--remote[the remote name]' \
'(--help)--help[help about the current command]' \
&& return 0 && return 0
#compdef jira
#autoload
local -a _1st_arguments
_1st_arguments=(
'new:create a new issue'
'dashboard:open the dashboard'
'reported:search for issues reported by a user'
'assigned:search for issues assigned to a user'
)
_arguments -C \
':command:->command' \
'*::options:->options'
case $state in
(command)
_describe -t commands "jira subcommand" _1st_arguments
return
;;
esac
# To use: add a .jira-url file in the base of your project # CLI support for JIRA interaction
# You can also set JIRA_URL in your .zshrc or put .jira-url in your home directory
# .jira-url in the current directory takes precedence
# #
# If you use Rapid Board, set: # Setup:
#JIRA_RAPID_BOARD="true" # Add a .jira-url file in the base of your project
# in you .zshrc # You can also set $JIRA_URL in your .zshrc or put .jira-url in your home directory
# A .jira-url in the current directory takes precedence.
# The same goes with .jira-prefix and $JIRA_PREFIX.
# #
# Setup: cd to/my/project # For example:
# cd to/my/project
# echo "https://name.jira.com" >> .jira-url # echo "https://name.jira.com" >> .jira-url
# Usage: jira # opens a new issue #
# Variables:
# $JIRA_RAPID_BOARD - set to "true" if you use Rapid Board
# $JIRA_DEFAULT_ACTION - action to do when `jira` is called witn no args
# defaults to "new"
# $JIRA_NAME - Your JIRA username. Used as default for assigned/reported
# $JIRA_PREFIX - Prefix added to issue ID arguments
#
#
# Usage:
# jira # Performs the default action
# jira new # opens a new issue
# jira reported [username]
# jira assigned [username]
# jira dashboard
# jira ABC-123 # Opens an existing issue # jira ABC-123 # Opens an existing issue
open_jira_issue () { # jira ABC-123 m # Opens an existing issue for adding a comment
local open_cmd
if [[ "$OSTYPE" = darwin* ]]; then
open_cmd='open'
else
open_cmd='xdg-open'
fi
if [ -f .jira-url ]; then : ${JIRA_DEFAULT_ACTION:=new}
function jira() {
local action=${1:=$JIRA_DEFAULT_ACTION}
local jira_url jira_prefix
if [[ -f .jira-url ]]; then
jira_url=$(cat .jira-url) jira_url=$(cat .jira-url)
elif [ -f ~/.jira-url ]; then elif [[ -f ~/.jira-url ]]; then
jira_url=$(cat ~/.jira-url) jira_url=$(cat ~/.jira-url)
elif [[ "x$JIRA_URL" != "x" ]]; then elif [[ -n "${JIRA_URL}" ]]; then
jira_url=$JIRA_URL jira_url=${JIRA_URL}
else else
echo "JIRA url is not specified anywhere." _jira_url_help
return 1 return 1
fi fi
if [ -f .jira-prefix ]; then if [[ -f .jira-prefix ]]; then
jira_prefix=$(cat .jira-prefix) jira_prefix=$(cat .jira-prefix)
elif [ -f ~/.jira-prefix ]; then elif [[ -f ~/.jira-prefix ]]; then
jira_prefix=$(cat ~/.jira-prefix) jira_prefix=$(cat ~/.jira-prefix)
elif [[ -n "${JIRA_PREFIX}" ]]; then
jira_prefix=${JIRA_PREFIX}
else else
jira_prefix="" jira_prefix=""
fi fi
if [ -z "$1" ]; then
if [[ $action == "new" ]]; then
echo "Opening new issue" echo "Opening new issue"
$open_cmd "${jira_url}/secure/CreateIssue!default.jspa" open_command "${jira_url}/secure/CreateIssue!default.jspa"
elif [[ "$1" = "assigned" || "$1" = "reported" ]]; then elif [[ "$action" == "assigned" || "$action" == "reported" ]]; then
jira_query $@ _jira_query $@
elif [[ "$action" == "dashboard" ]]; then
echo "Opening dashboard"
open_command "${jira_url}/secure/Dashboard.jspa"
else else
echo "Opening issue #$1" # Anything that doesn't match a special action is considered an issue name
if [[ "x$JIRA_RAPID_BOARD" = "xtrue" ]]; then local issue_arg=$action
$open_cmd "$jira_url/issues/$jira_prefix$1" local issue="${jira_prefix}${issue_arg}"
else local url_fragment=''
$open_cmd "$jira_url/browse/$jira_prefix$1"
fi
else
local addcomment=''
if [[ "$2" == "m" ]]; then if [[ "$2" == "m" ]]; then
addcomment="#add-comment" url_fragment="#add-comment"
echo "Add comment to issue #$1" echo "Add comment to issue #$issue"
else else
echo "Opening issue #$1" echo "Opening issue #$issue"
fi fi
if [[ "$JIRA_RAPID_BOARD" == "true" ]]; then
if [[ "x$JIRA_RAPID_BOARD" = "xtrue" ]]; then open_command "${jira_url}/issues/${issue}${url_fragment}"
$open_cmd "$jira_url/issues/$1$addcomment"
else else
$open_cmd "$jira_url/browse/$1$addcomment" open_command "${jira_url}/browse/${issue}${url_fragment}"
fi fi
fi fi
} }
jira_name () { function _jira_url_help() {
if [[ -z "$1" ]]; then cat << EOF
if [[ "x${JIRA_NAME}" != "x" ]]; then JIRA url is not specified anywhere.
jira_name=${JIRA_NAME} Valid options, in order of precedence:
else .jira-url file
echo "JIRA_NAME not specified" \$HOME/.jira-url file
return 1 JIRA_URL environment variable
fi EOF
else
jira_name=$@
fi
} }
jira_query () { function _jira_query() {
verb="$1" local verb="$1"
if [[ "${verb}" = "reported" ]]; then local jira_name lookup preposition query
if [[ "${verb}" == "reported" ]]; then
lookup=reporter lookup=reporter
preposition=by preposition=by
elif [[ "${verb}" = "assigned" ]]; then elif [[ "${verb}" == "assigned" ]]; then
lookup=assignee lookup=assignee
preposition=to preposition=to
else else
echo "not a valid lookup $verb" echo "not a valid lookup: $verb" >&2
return 1 return 1
fi fi
shift 1 jira_name=${2:=$JIRA_NAME}
jira_name $@ if [[ -z $jira_name ]]; then
if [[ $? = 1 ]]; then echo "JIRA_NAME not specified" >&2
return 1 return 1
fi fi
echo "Browsing issues ${verb} ${preposition} ${jira_name}" echo "Browsing issues ${verb} ${preposition} ${jira_name}"
$open_cmd "${jira_url}/secure/IssueNavigator.jspa?reset=true&jqlQuery=${lookup}+%3D+%22${jira_name}%22+AND+resolution+%3D+unresolved+ORDER+BY+priority+DESC%2C+created+ASC" query="${lookup}+%3D+%22${jira_name}%22+AND+resolution+%3D+unresolved+ORDER+BY+priority+DESC%2C+created+ASC"
open_command "${jira_url}/secure/IssueNavigator.jspa?reset=true&jqlQuery=${query}"
} }
alias jira='open_jira_issue'
...@@ -8,7 +8,8 @@ mkdir -p $ZSH_CACHE_DIR ...@@ -8,7 +8,8 @@ mkdir -p $ZSH_CACHE_DIR
cache_file="$ZSH_CACHE_DIR/last-working-dir" cache_file="$ZSH_CACHE_DIR/last-working-dir"
# Updates the last directory once directory is changed. # Updates the last directory once directory is changed.
function chpwd() { chpwd_functions+=(chpwd_last_working_dir)
function chpwd_last_working_dir() {
# Use >| in case noclobber is set to avoid "file exists" error # Use >| in case noclobber is set to avoid "file exists" error
pwd >| "$cache_file" pwd >| "$cache_file"
} }
......
...@@ -9,7 +9,7 @@ open_lighthouse_ticket () { ...@@ -9,7 +9,7 @@ open_lighthouse_ticket () {
else else
lighthouse_url=$(cat .lighthouse-url); lighthouse_url=$(cat .lighthouse-url);
echo "Opening ticket #$1"; echo "Opening ticket #$1";
`open $lighthouse_url/tickets/$1`; open_command "$lighthouse_url/tickets/$1";
fi fi
} }
......
# ------------------------------------------------------------------------------
# Author
# ------
#
# * Jerry Ling<jerryling315@gmail.com>
#
# ------------------------------------------------------------------------------
# Usgae
# -----
#
# man will be inserted before the command
#
# ------------------------------------------------------------------------------
man-command-line() {
[[ -z $BUFFER ]] && zle up-history
[[ $BUFFER != man\ * ]] && LBUFFER="man $LBUFFER"
}
zle -N man-command-line
# Defined shortcut keys: [Esc]man
bindkey "\e"man man-command-line
# ------------------------------------------------------------------------------
# Also, you might want to use man-preview included in 'osx' plugin
# just substitute "man" in the function with "man-preview" after you included OS X in
# the .zshrc
\ No newline at end of file
# ------------------------------------------------------------------------------
# FILE: n98-magerun.plugin.zsh
# DESCRIPTION: oh-my-zsh n98-magerun plugin file. Adapted from composer plugin
# AUTHOR: Andrew Dwyer (andrewrdwyer at gmail dot com)
# VERSION: 1.0.0
# ------------------------------------------------------------------------------
# n98-magerun basic command completion
_n98_magerun_get_command_list () {
$_comp_command1 --no-ansi | sed "1,/Available commands/d" | awk '/^ +[a-z\-:]+/ { print $1 }'
}
_n98_magerun () {
_arguments '1: :->command' '*:optional arg:_files'
case $state in
command)
compadd $(_n98_magerun_get_command_list)
;;
*)
esac
}
compdef _n98_magerun n98-magerun.phar
compdef _n98_magerun n98-magerun
# Aliases
alias n98='n98-magerun.phar'
alias mage='n98-magerun.phar'
alias magefl='n98-magerun.phar cache:flush'
# Install n98-magerun into the current directory
alias mage-get='wget https://raw.github.com/netz98/n98-magerun/master/n98-magerun.phar'
# Open the node api for your current version to the optional section. # Open the node api for your current version to the optional section.
# TODO: Make the section part easier to use. # TODO: Make the section part easier to use.
function node-docs { function node-docs {
# get the open command open_command "http://nodejs.org/docs/$(node --version)/api/all.html#all_$1"
local open_cmd
if [[ "$OSTYPE" = darwin* ]]; then
open_cmd='open'
else
open_cmd='xdg-open'
fi
$open_cmd "http://nodejs.org/docs/$(node --version)/api/all.html#all_$1"
} }
...@@ -18,8 +18,6 @@ if [[ -x `which curl` ]]; then ...@@ -18,8 +18,6 @@ if [[ -x `which curl` ]]; then
W=$(echo "$Q" | sed -e 's/.*\/quotes\///g' -e 's/<.*//g' -e 's/.*">//g') W=$(echo "$Q" | sed -e 's/.*\/quotes\///g' -e 's/<.*//g' -e 's/.*">//g')
if [ "$W" -a "$TXT" ]; then if [ "$W" -a "$TXT" ]; then
echo "${WHO_COLOR}${W}${COLON_COLOR}: ${TEXT_COLOR}${TXT}${END_COLOR}" echo "${WHO_COLOR}${W}${COLON_COLOR}: ${TEXT_COLOR}${TXT}${END_COLOR}"
else
quote
fi fi
} }
#quote #quote
......
...@@ -2,14 +2,11 @@ _homebrew-installed() { ...@@ -2,14 +2,11 @@ _homebrew-installed() {
type brew &> /dev/null type brew &> /dev/null
} }
_rbenv-from-homebrew-installed() {
brew --prefix rbenv &> /dev/null
}
FOUND_RBENV=0 FOUND_RBENV=0
rbenvdirs=("$HOME/.rbenv" "/usr/local/rbenv" "/opt/rbenv" "/usr/local/opt/rbenv") rbenvdirs=("$HOME/.rbenv" "/usr/local/rbenv" "/opt/rbenv" "/usr/local/opt/rbenv")
if _homebrew-installed && _rbenv-from-homebrew-installed ; then if _homebrew-installed && rbenv_homebrew_path=$(brew --prefix rbenv 2>/dev/null); then
rbenvdirs=($(brew --prefix rbenv) "${rbenvdirs[@]}") rbenvdirs=($rbenv_homebrew_path "${rbenvdirs[@]}")
unset rbenv_homebrew_path
fi fi
for rbenvdir in "${rbenvdirs[@]}" ; do for rbenvdir in "${rbenvdirs[@]}" ; do
......
...@@ -61,11 +61,11 @@ function gems { ...@@ -61,11 +61,11 @@ function gems {
local current_ruby=`rvm-prompt i v p` local current_ruby=`rvm-prompt i v p`
local current_gemset=`rvm-prompt g` local current_gemset=`rvm-prompt g`
gem list $@ | sed \ gem list $@ | sed -E \
-Ee "s/\([0-9, \.]+( .+)?\)/$fg[blue]&$reset_color/g" \ -e "s/\([0-9, \.]+( .+)?\)/$fg[blue]&$reset_color/g" \
-Ee "s|$(echo $rvm_path)|$fg[magenta]\$rvm_path$reset_color|g" \ -e "s|$(echo $rvm_path)|$fg[magenta]\$rvm_path$reset_color|g" \
-Ee "s/$current_ruby@global/$fg[yellow]&$reset_color/g" \ -e "s/$current_ruby@global/$fg[yellow]&$reset_color/g" \
-Ee "s/$current_ruby$current_gemset$/$fg[green]&$reset_color/g" -e "s/$current_ruby$current_gemset$/$fg[green]&$reset_color/g"
} }
function _rvm_completion { function _rvm_completion {
......
# Spring Boot oh-my-zsh plugin
oh-my-zsh Spring Boot plugin
## Spring Boot autocomplete plugin
- Adds autocomplete options for all spring boot commands.
## Manual Install
$ cd ~/.oh-my-zsh/plugins
$ git clone git@github.com:linux-china/oh-my-zsh-spring-boot-plugin.git spring
Adjust your .zshrc file and add spring to plugins=(...)
## Tips
* Install Spring Cloud plugin: spring install org.springframework.cloud:spring-cloud-cli:1.0.2.RELEASE
## Reference
* Spring Boot: http://projects.spring.io/spring-boot/
* Spring Boot CLI: http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#cli
Maintainer : linux_china ([@linux_china](https://twitter.com/linux_china))
#compdef spring 'spring'
#autoload
_spring() {
local cword
let cword=CURRENT-1
local hints
hints=()
local reply
while read -r line; do
reply=`echo "$line" | awk '{printf $1 ":"; for (i=2; i<NF; i++) printf $i " "; print $NF}'`
hints+=("$reply")
done < <(spring hint ${cword} ${words[*]})
if ((cword == 1)) {
_describe -t commands 'commands' hints
return 0
}
_describe -t options 'options' hints
_files
return 0
}
_spring "$@"
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment