From fdb3c0e68d36d20d1b75163755d568d42def5ac1 Mon Sep 17 00:00:00 2001 From: Anton Eicher Date: Wed, 19 Dec 2012 07:22:03 -0800 Subject: [PATCH 0001/1175] Added check for .git directory in current, before wasting time querying git. This saves seconds on my pc. --- plugins/git/git.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 154aa6db1..79300a166 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -73,12 +73,14 @@ alias gsd='git svn dcommit' # Usage example: git pull origin $(current_branch) # function current_branch() { + if [ ! -d .git ]; then return; fi ref=$(git symbolic-ref HEAD 2> /dev/null) || \ ref=$(git rev-parse --short HEAD 2> /dev/null) || return echo ${ref#refs/heads/} } function current_repository() { + if [ ! -d .git ]; then return; fi ref=$(git symbolic-ref HEAD 2> /dev/null) || \ ref=$(git rev-parse --short HEAD 2> /dev/null) || return echo $(git remote -v | cut -d':' -f 2) From 9674a96b5bc296a767c2560757626bf2bc3a9ad3 Mon Sep 17 00:00:00 2001 From: Frank Louwers Date: Wed, 13 Feb 2013 12:02:36 +0100 Subject: [PATCH 0002/1175] [pj-plugin] delete ugly ls -l | awk print $9 thing to use something not depending on date format + add support for projects with spaces in them --- plugins/pj/pj.plugin.zsh | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/plugins/pj/pj.plugin.zsh b/plugins/pj/pj.plugin.zsh index ba3765b83..b98bfec34 100644 --- a/plugins/pj/pj.plugin.zsh +++ b/plugins/pj/pj.plugin.zsh @@ -18,8 +18,11 @@ function pj() { file=$1 if [[ "open" == "$file" ]] then - file=$2 + shift + file=$* cmd=(${(s: :)EDITOR}) + else + file=$* fi for project in $PROJECT_PATHS; do @@ -36,7 +39,14 @@ function pj() { alias pjo="pj open" function _pj () { - compadd `/bin/ls -l $PROJECT_PATHS 2>/dev/null | awk '{ print $9 }'` + # might be possible to improve this using glob, without the basename trick + typeset -a projects + foreach i ($PROJECT_PATHS/*) + do + projects+=`basename $i` + done + + _arguments '*:file:($projects)' } compdef _pj pj From df67f2ee30dbad61117e1886b0a4de326cb6daf7 Mon Sep 17 00:00:00 2001 From: Frank Louwers Date: Wed, 13 Feb 2013 13:39:47 +0100 Subject: [PATCH 0003/1175] [pj-plugin] avoid using basename. migth be (a lot?) faster --- plugins/pj/pj.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/pj/pj.plugin.zsh b/plugins/pj/pj.plugin.zsh index b98bfec34..dac561189 100644 --- a/plugins/pj/pj.plugin.zsh +++ b/plugins/pj/pj.plugin.zsh @@ -43,7 +43,7 @@ function _pj () { typeset -a projects foreach i ($PROJECT_PATHS/*) do - projects+=`basename $i` + projects+=(${i##*/}) done _arguments '*:file:($projects)' From 7fb17127c7ef2ff11240af5c42430ae3ae1c0369 Mon Sep 17 00:00:00 2001 From: Dmitri Akatov Date: Wed, 24 Jul 2013 14:30:12 -0700 Subject: [PATCH 0004/1175] carton completion plugin --- plugins/carton/carton.plugin.zsh | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 plugins/carton/carton.plugin.zsh diff --git a/plugins/carton/carton.plugin.zsh b/plugins/carton/carton.plugin.zsh new file mode 100644 index 000000000..23868b09c --- /dev/null +++ b/plugins/carton/carton.plugin.zsh @@ -0,0 +1,6 @@ +if which carton &> /dev/null +then + source $(dirname $(which carton))/../etc/carton_completion.zsh +else + print "zsh carton plugin: carton not found" +fi From 55c90b1d6cbda581f9ccd41ea1c8da15da98d5ee Mon Sep 17 00:00:00 2001 From: Dmitri Akatov Date: Fri, 26 Jul 2013 20:00:45 -0700 Subject: [PATCH 0005/1175] grunt completion courtesy of @yonchu: https://github.com/yonchu/grunt-zsh-completion --- plugins/grunt/grunt.plugin.zsh | 253 +++++++++++++++++++++++++++++++++ 1 file changed, 253 insertions(+) create mode 100644 plugins/grunt/grunt.plugin.zsh diff --git a/plugins/grunt/grunt.plugin.zsh b/plugins/grunt/grunt.plugin.zsh new file mode 100644 index 000000000..48f6cb5a2 --- /dev/null +++ b/plugins/grunt/grunt.plugin.zsh @@ -0,0 +1,253 @@ +#compdef grunt +# ----------------------------------------------------------------------------- +# _grunt +# +# Completion script for grunt. +# - https://github.com/gruntjs/grunt +# - https://github.com/gruntjs/grunt-cli +# +# ----------------------------------------------------------------------------- +# +# Version : 0.1.0 +# Author : Yonchu +# License : MIT License +# Repository : https://github.com/yonchu/grunt-zsh-completion +# Last Change : 22 Jul 2013. +# +# Copyright (c) 2013 Yonchu. +# +# ----------------------------------------------------------------------------- +# USAGE +# ----- +# +# Enable caching: +# +# If you want to use the cache, set the followings in your .zshrc: +# +# zstyle ':completion:*' use-cache yes +# +# +# Settings: +# +# - Show grunt file path: +# zstyle ':completion::complete:grunt::options:' show_grunt_path yes +# +# - Cache expiration days (default: 7): +# zstyle ':completion::complete:grunt::options:' expire 1 +# +# - Not update options cache if target gruntfile is changed. +# zstyle ':completion::complete:grunt::options:' no_update_options yes +# +# Note that if you change the zstyle settings, +# you should delete the cache file and restart zsh. +# +# $ rm ~/.zcompcache/grunt +# $ exec zsh +# +# ----------------------------------------------------------------------------- + +function _grunt() { + local curcontext="$curcontext" update_policy state + local show_grunt_path update_msg gruntfile opts tasks + + # Setup cache-policy. + zstyle -s ":completion:${curcontext}:" cache-policy update_policy + if [[ -z $update_policy ]]; then + zstyle ":completion:${curcontext}:" cache-policy __grunt_caching_policy + fi + + # Check show_path option. + zstyle -b ":completion:${curcontext}:options:" show_grunt_path show_grunt_path + + # Get current gruntfile. + gruntfile=$(__grunt_get_gruntfile) + + # Initialize opts and tasks. + opts=() + tasks=() + + # Add help options. + opts+=('(- 1 *)'{-h,--help}'[Display this help text.]') + + ## Complete without gruntfile. + if [[ ! -f $gruntfile ]]; then + _arguments "${opts[@]}" + return + fi + + ## Complete with gruntfile. + # Retrieve cache. + if ! __grunt_update_cache "$gruntfile"; then + update_msg=' (cache updated)' + fi + + # Make optioins completion. + if [[ ${#__grunt_opts} -gt 0 ]]; then + opts+=("${__grunt_opts[@]}") + fi + + # Complete arguments. + _arguments \ + "${opts[@]}" \ + '*: :->tasks' \ + && return + + case $state in + tasks) + if [[ $show_grunt_path == 'yes' ]]; then + update_msg="$update_msg: ${${gruntfile/#$HOME/~}%/}" + fi + # Make tasks completion. + if [[ ${#__grunt_tasks} -gt 0 ]]; then + tasks+=("${__grunt_tasks[@]}") + _describe -t grunt-task "$verbose grunt task$update_msg" tasks || return 1 + fi + ;; + esac + + return 0 +} + +# Cache policy: +# The cache file name: grunt +# The cache variable name: __grunt_version __grunt_gruntfile __grunt_opts __grunt_tasks +function __grunt_update_cache() { + # TODO + local version='0.1.0' + local is_updating=0 + local gruntfile="$1" + local grunt_info no_update_options cache_path + + # Check no_update_options option. + zstyle -b ":completion:${curcontext}:options:" no_update_options no_update_options + + + if ! ( (( $+__grunt_gruntfile )) \ + && (( $+__grunt_opts )) \ + && (( $+__grunt_tasks )) ) \ + && ! _retrieve_cache 'grunt'; then + is_updating=1 + fi + + if [[ $gruntfile != $__grunt_gruntfile ]]; then + # Except for --help options. + __grunt_gruntfile=$gruntfile + if [[ $no_update_options == 'yes' ]]; then + if [[ $PREFIX == ${PREFIX#-} ]]; then + # Not options completions. + is_updating=1 + elif [[ ${#__grunt_opts} -lt 2 ]]; then + is_updating=1 + else + unset __grunt_gruntfile + fi + else + is_updating=1 + fi + else + if [[ $PREFIX != ${PREFIX#-} && ${#__grunt_opts} -gt 1 ]]; then + unset __grunt_gruntfile + fi + fi + + if _cache_invalid 'grunt'; then + is_updating=1 + fi + + # Check _grunt version. + if [[ $__grunt_version != $version ]]; then + is_updating=1 + fi + + if [[ $is_updating -ne 0 ]]; then + # Update caceh. + __grunt_version=$version + __grunt_gruntfile=$gruntfile + is_updating=1 + grunt_info=$(grunt --help --no-color --gruntfile "$__grunt_gruntfile" 2>/dev/null) + __grunt_opts=(${(f)"$(__grunt_get_opts "$grunt_info")"}) + __grunt_tasks=(${(f)"$(__grunt_get_tasks "$grunt_info")"}) + _store_cache 'grunt' __grunt_version __grunt_gruntfile __grunt_opts __grunt_tasks + fi + return $is_updating +} + +function __grunt_get_tasks() { + echo -E "$1" \ + | grep 'Available tasks' -A 100 \ + | grep '^ ' \ + | sed -e 's/^[[:blank:]]*//' -e 's/[[:blank:]]*$//' \ + | sed -e 's/ /:/' +} + +function __grunt_get_opts() { + local opt_hunk opt_sep opt_num line opt + opt_hunk=$(echo -E "$1" \ + | grep 'Options$' -A 100 \ + | sed '1 d' \ + | sed -e 's/[[:blank:]]*$//' \ + ) + + opt_sep=() + opt_hunk=(${(f)opt_hunk}) + opt_num=0 + for line in "$opt_hunk[@]"; do + opt=$(echo -E "$line" | sed -e 's/^[[:blank:]]*//') + if [[ $line == $opt ]]; then + break + fi + if [[ $opt != ${opt#-} ]]; then + # Start with - + (( opt_num++ )) + opt=$(echo -E "$opt" | sed 's/^\(\(--[^ ]*\)\(, \(-[^ ]*\)\)*\) */\2\\t\4\\\t/') + fi + opt_sep[$opt_num]=("${opt_sep[$opt_num]}${opt}") + done + + for line in "$opt_sep[@]"; do + opt=(${(s:\t:)line}) + if [[ ${opt[1]} == '--help' ]]; then + continue + fi + if [[ ${#opt} -eq 2 ]]; then + echo -E "(${opt[1]})${opt[1]}[${opt[2]}]" + else + echo -E "(${opt[1]},${opt[2]})${opt[1]}[${opt[3]}]" + echo -E "(${opt[1]},${opt[2]})${opt[2]}[${opt[3]}]" + fi + done +} + +function __grunt_get_gruntfile() { + local gruntfile + local curpath="$PWD" + while [ "$curpath" ]; do + for gruntfile in "$curpath/"{G,g}runtfile.{js,coffee}; do + if [[ -e "$gruntfile" ]]; then + echo "$gruntfile" + return + fi + done + curpath=${curpath%/*} + done + return 1 +} + +function __grunt_caching_policy() { + # Returns status zero if the completions cache needs rebuilding. + + # Rebuild if .agignore more recent than cache. + if [[ -f $__grunt_gruntfile && $__grunt_gruntfile -nt $1 ]]; then + # Invalid cache because gruntfile is old. + return 0 + fi + + local -a oldp + local expire + zstyle -s ":completion:${curcontext}:options:" expire expire || expire=7 + # Rebuild if cache is more than $expire days. + oldp=( "$1"(Nm+$expire) ) + (( $#oldp )) +} + +compdef _grunt grunt From 1af012d4991a36bfb0e2def3e67f5a0e56fc49e4 Mon Sep 17 00:00:00 2001 From: Dmitri Akatov Date: Tue, 6 Aug 2013 13:28:52 -0700 Subject: [PATCH 0006/1175] carton was renamed to cask --- plugins/carton/carton.plugin.zsh | 6 ------ plugins/cask/cask.plugin.zsh | 5 +++++ 2 files changed, 5 insertions(+), 6 deletions(-) delete mode 100644 plugins/carton/carton.plugin.zsh create mode 100644 plugins/cask/cask.plugin.zsh diff --git a/plugins/carton/carton.plugin.zsh b/plugins/carton/carton.plugin.zsh deleted file mode 100644 index 23868b09c..000000000 --- a/plugins/carton/carton.plugin.zsh +++ /dev/null @@ -1,6 +0,0 @@ -if which carton &> /dev/null -then - source $(dirname $(which carton))/../etc/carton_completion.zsh -else - print "zsh carton plugin: carton not found" -fi diff --git a/plugins/cask/cask.plugin.zsh b/plugins/cask/cask.plugin.zsh new file mode 100644 index 000000000..c55862924 --- /dev/null +++ b/plugins/cask/cask.plugin.zsh @@ -0,0 +1,5 @@ +if which cask &> /dev/null; then + source $(dirname $(which cask))/../etc/cask_completion.zsh +else + print "zsh cask plugin: cask not found" +fi From a7c88c988a4be02b8883c06e57c6eb290c8fcb21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A4ntz=20Miccoli?= Date: Sun, 15 Sep 2013 23:16:11 +0200 Subject: [PATCH 0007/1175] Removed comments and other elements that might appear in the phing -l output. The current version doesn't work at all on my environment (OSX 10.7) --- plugins/phing/phing.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/phing/phing.plugin.zsh b/plugins/phing/phing.plugin.zsh index 795f1db85..9af03af24 100644 --- a/plugins/phing/phing.plugin.zsh +++ b/plugins/phing/phing.plugin.zsh @@ -7,7 +7,7 @@ _phing_does_target_list_need_generating () { _phing () { if [ -f build.xml ]; then if _phing_does_target_list_need_generating; then - phing -l |grep -v ":$" |grep -v "^-*$" > .phing_targets + phing -l|grep -v "\[property\]"|grep -v "Buildfile"|sed 1d|grep -v ":$" |grep -v "^\-*$"|awk '{print $1}' > .phing_targets fi compadd `cat .phing_targets` fi From d608fbfc7fcabf9994f8064e67670e69130d2ee1 Mon Sep 17 00:00:00 2001 From: Riyad Preukschas Date: Tue, 15 Oct 2013 14:34:03 +0200 Subject: [PATCH 0008/1175] Make the virtualenv plugin themable --- plugins/virtualenv/virtualenv.plugin.zsh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/plugins/virtualenv/virtualenv.plugin.zsh b/plugins/virtualenv/virtualenv.plugin.zsh index 8e06450b1..e250eb63e 100644 --- a/plugins/virtualenv/virtualenv.plugin.zsh +++ b/plugins/virtualenv/virtualenv.plugin.zsh @@ -1,7 +1,6 @@ function virtualenv_prompt_info(){ - if [[ -n $VIRTUAL_ENV ]]; then - printf "%s[%s] " "%{${fg[yellow]}%}" ${${VIRTUAL_ENV}:t} - fi + [[ -n ${VIRTUAL_ENV} ]] || return + echo "${ZSH_THEME_VIRTUALENV_PREFIX:=[}${VIRTUAL_ENV:t}${ZSH_THEME_VIRTUALENV_SUFFIX:=]}" } # disables prompt mangling in virtual_env/bin/activate From 9b811fb625c03c30a766191cdf65a1c7c1fd96b2 Mon Sep 17 00:00:00 2001 From: Michael Orr Date: Fri, 6 Dec 2013 17:31:35 -0500 Subject: [PATCH 0009/1175] accidentally blew away a git config setting used for another purpose, renaming in order to distinguish --- lib/git.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/git.zsh b/lib/git.zsh index 305a77aff..a1396653b 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -13,7 +13,7 @@ parse_git_dirty() { local SUBMODULE_SYNTAX='' local GIT_STATUS='' local CLEAN_MESSAGE='nothing to commit (working directory clean)' - if [[ "$(command git config --get oh-my-zsh.hide-status)" != "1" ]]; then + if [[ "$(command git config --get oh-my-zsh.hide-dirty)" != "1" ]]; then if [[ $POST_1_7_2_GIT -gt 0 ]]; then SUBMODULE_SYNTAX="--ignore-submodules=dirty" fi From 00b2cc653421c1465f7596f22c19d21f42aa0396 Mon Sep 17 00:00:00 2001 From: Andrew Dwyer Date: Sat, 21 Dec 2013 11:17:05 +1030 Subject: [PATCH 0010/1175] New plugin for the n98-magerun Magento command line tool --- plugins/n98-magerun/n98-magerun.plugin.zsh | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100755 plugins/n98-magerun/n98-magerun.plugin.zsh diff --git a/plugins/n98-magerun/n98-magerun.plugin.zsh b/plugins/n98-magerun/n98-magerun.plugin.zsh new file mode 100755 index 000000000..e4b0d6885 --- /dev/null +++ b/plugins/n98-magerun/n98-magerun.plugin.zsh @@ -0,0 +1,25 @@ +# ------------------------------------------------------------------------------ +# 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 () { + n98-magerun.phar --no-ansi | sed "1,/Available commands/d" | awk '/^\s+[a-z]+/ { print $1 }' +} + +_n98_magerun () { + compadd `_n98_magerun_get_command_list` +} + +compdef _n98_magerun n98-magerun.phar + +# Aliases +alias n98-magerun='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' From e585904e1040acedd2fc3092ef99a3a9aaa0d661 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1n=20Ko=C5=A1=C4=8Do?= <3k.stanley@gmail.com> Date: Thu, 2 Jan 2014 00:35:19 +0100 Subject: [PATCH 0011/1175] Geeknote autocomplete and alias --- plugins/geeknote/_geeknote | 135 +++++++++++++++++++++++++++ plugins/geeknote/geeknote.plugin.zsh | 2 + 2 files changed, 137 insertions(+) create mode 100644 plugins/geeknote/_geeknote create mode 100644 plugins/geeknote/geeknote.plugin.zsh diff --git a/plugins/geeknote/_geeknote b/plugins/geeknote/_geeknote new file mode 100644 index 000000000..4d5339f2b --- /dev/null +++ b/plugins/geeknote/_geeknote @@ -0,0 +1,135 @@ +#compdef geeknote +# --------------- ------------------------------------------------------------ +# Name : _geeknote +# Synopsis : zsh completion for geeknote +# Author : Ján Koščo <3k.stanley@gmail.com> +# HomePage : http://www.geeknote.me +# Version : 0.1 +# Tag : [ shell, zsh, completion, evernote ] +# Copyright : © 2014 by Ján Koščo, +# Released under current GPL license. +# --------------- ------------------------------------------------------------ + +local -a _1st_arguments +_1st_arguments=( + 'login' + 'logout' + 'settings' + 'create' + 'edit' + 'find' + 'show' + 'remove' + 'notebook-list' + 'notebook-create' + 'notebook-edit' + 'tag-list' + 'tag-create' + 'tag-edit' + 'gnsync' + 'user' +) + +_arguments '*:: :->command' + +if (( CURRENT == 1 )); then + _describe -t commands "geeknote command" _1st_arguments + return +fi + +local -a _command_args +case "$words[1]" in + user) + _command_args=( + '(--full)--full' \ + ) + ;; + logout) + _command_args=( + '(--force)--force' \ + ) + ;; + settings) + _command_args=( + '(--editor)--editor' \ + ) + ;; + create) + _command_args=( + '(-t|--title)'{-t,--title}'[note title]' \ + '(-c|--content)'{-c,--content}'[note content]' \ + '(-tg|--tags)'{-tg,--tags}'[one tag or the list of tags which will be added to the note]' \ + '(-nb|--notebook)'{-nb,--notebook}'[name of notebook where to save note]' \ + ) + ;; + edit) + _command_args=( + '(-n|--note)'{-n,--note}'[name or ID from the previous search of a note to edit]' \ + '(-t|--title)'{-t,--title}'[note title]' \ + '(-c|--content)'{-c,--content}'[note content]' \ + '(-tg|--tags)'{-tg,--tags}'[one tag or the list of tags which will be added to the note]' \ + '(-nb|--notebook)'{-nb,--notebook}'[name of notebook where to save note]' \ + ) + ;; + remove) + _command_args=( + '(-n|--note)'{-n,--note}'[name or ID from the previous search of a note to edit]' \ + '(--force)--force' \ + ) + ;; + show) + _command_args=( + '(-n|--note)'{-n,--note}'[name or ID from the previous search of a note to edit]' \ + ) + ;; + find) + _command_args=( + '(-s|--search)'{-s,--search}'[text to search]' \ + '(-tg|--tags)'{-tg,--tags}'[notes with which tag/tags to search]' \ + '(-nb|--notebook)'{-nb,--notebook}'[in which notebook search the note]' \ + '(-d|--date)'{-d,--date}'[date in format dd.mm.yyyy or date range dd.mm.yyyy-dd.mm.yyyy]' \ + '(-cn|--count)'{-cn,--count}'[how many notes show in the result list]' \ + '(-wu|--with-url)'{-wu,--with-url}'[add direct url of each note in results to Evernote web-version]' \ + '(-ee|--exact-entry)'{-ee,--exact-entry}'[search for exact entry of the request]' \ + '(-cs|--content-search)'{-cs,--content-search}'[search by content, not by title]' \ + ) + ;; + notebook-create) + _command_args=( + '(-t|--title)'{-t,--title}'[notebook title]' \ + ) + ;; + notebook-edit) + _command_args=( + '(-nb|--notebook)'{-nb,--notebook}'[name of notebook to rename]' \ + '(-t|--title)'{-t,--title}'[new notebook title]' \ + ) + ;; + notebook-remove) + _command_args=( + '(-nb|--notebook)'{-nb,--notebook}'[name of notebook to remove]' \ + '(--force)--force' \ + ) + ;; + tag-create) + _command_args=( + '(-t|--title)'{-t,--title}'[title of tag]' \ + ) + ;; + tag-create) + _command_args=( + '(-tgn|--tagname)'{-tgn,--tagname}'[tag to edit]' \ + '(-t|--title)'{-t,--title}'[new tag name]' \ + ) + ;; + tag-remove) + _command_args=( + '(-tgn|--tagname)'{-tgn,--tagname}'[tag to remove]' \ + '(--force)--force' \ + ) + ;; + esac + +_arguments \ + $_command_args \ + && return 0 diff --git a/plugins/geeknote/geeknote.plugin.zsh b/plugins/geeknote/geeknote.plugin.zsh new file mode 100644 index 000000000..8126d26b3 --- /dev/null +++ b/plugins/geeknote/geeknote.plugin.zsh @@ -0,0 +1,2 @@ +#Alias +alias gn='geeknote' From 16ae4e127f6af2f8f3332025ce46d45ab5bcadac Mon Sep 17 00:00:00 2001 From: Pablo Cantero Date: Sun, 26 Jan 2014 10:18:04 -0200 Subject: [PATCH 0012/1175] Adds support capistrano multistage completion --- plugins/capistrano/_capistrano | 53 ++++++++++++++++++++---- plugins/capistrano/capistrano.plugin.zsh | 11 +++++ 2 files changed, 57 insertions(+), 7 deletions(-) create mode 100644 plugins/capistrano/capistrano.plugin.zsh diff --git a/plugins/capistrano/_capistrano b/plugins/capistrano/_capistrano index 3cadf3d54..7a74b3732 100644 --- a/plugins/capistrano/_capistrano +++ b/plugins/capistrano/_capistrano @@ -1,10 +1,49 @@ -#compdef cap +#compdef xcap cap #autoload -if [[ -f config/deploy.rb || -f Capfile ]]; then - if [[ ! -f .cap_tasks~ || config/deploy.rb -nt .cap_tasks~ ]]; then - echo "\nGenerating .cap_tasks~..." > /dev/stderr - cap -v --tasks | grep '#' | cut -d " " -f 2 > .cap_tasks~ +# Added `xcap` because `cap` is a reserved word. `cap` completion doesn't work. +# http://zsh.sourceforge.net/Doc/Release/Zsh-Modules.html#The-zsh_002fcap-Module + +local curcontext="$curcontext" state line ret=1 +local -a _configs + +_arguments -C \ + '1: :->cmds' \ + '2:: :->args' && ret=0 + +_cap_tasks() { + if [[ -f config/deploy.rb || -f Capfile ]]; then + if [[ ! -f .cap_tasks~ ]]; then + xcap -v --tasks | awk '{command=$2; $1=$2=$3=""; gsub(/^[ \t\r\n]+/, "", $0); gsub(":", "\\:", command); print command"["$0"]"}' > .cap_tasks~ + fi + + OLD_IFS=$IFS + IFS=$'\n' + _values 'cap commands' $(< .cap_tasks~) + IFS=$OLD_IFS + # zmodload zsh/mapfile + # _values ${(f)mapfile[.cap_tasks~]} fi - compadd `cat .cap_tasks~` -fi +} + +_cap_stages() { + compadd $(find config/deploy -name \*.rb | cut -d/ -f3 | sed s:.rb::g) +} + +case $state in + cmds) + # check if it uses multistage + if [[ -d config/deploy ]]; then + _cap_stages + else + _cap_tasks + fi + ret=0 + ;; + args) + _cap_tasks + ret=0 + ;; +esac + +return ret diff --git a/plugins/capistrano/capistrano.plugin.zsh b/plugins/capistrano/capistrano.plugin.zsh new file mode 100644 index 000000000..9a4a2cc34 --- /dev/null +++ b/plugins/capistrano/capistrano.plugin.zsh @@ -0,0 +1,11 @@ +# Added `xcap` because `cap` is a reserved word. `cap` completion doesn't work. +# http://zsh.sourceforge.net/Doc/Release/Zsh-Modules.html#The-zsh_002fcap-Module + +func xcap() { + if [ -f Gemfile ] + then + bundle exec cap $* + else + cap $* + fi +} From 3976b93f3931a7ebc913576015ff395dcd495d95 Mon Sep 17 00:00:00 2001 From: Daniel Farrell Date: Sun, 23 Mar 2014 15:59:35 -0400 Subject: [PATCH 0013/1175] Fixed which output at each new shell creation --- themes/gallois.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/gallois.zsh-theme b/themes/gallois.zsh-theme index f1057a9a9..f31d21958 100644 --- a/themes/gallois.zsh-theme +++ b/themes/gallois.zsh-theme @@ -18,7 +18,7 @@ else if which rbenv &> /dev/null; then RPS1='$(git_custom_status)%{$fg[red]%}[`rbenv version | sed -e "s/ (set.*$//"`]%{$reset_color%} $EPS1' else - if [[ -n `which chruby_prompt_info` && -n `chruby_prompt_info` ]]; then + if [[ -n `which chruby_prompt_info &> /dev/null` && -n `chruby_prompt_info` ]]; then RPS1='$(git_custom_status)%{$fg[red]%}[`chruby_prompt_info`]%{$reset_color%} $EPS1' else RPS1='$(git_custom_status) $EPS1' From b2ce306c4f49ebb1ef2bde5b86d553ce6ea674aa Mon Sep 17 00:00:00 2001 From: Daniel Farrell Date: Tue, 25 Mar 2014 23:37:28 -0400 Subject: [PATCH 0014/1175] Simplified gallois RPS1 setup using some helpful scripts --- themes/gallois.zsh-theme | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/themes/gallois.zsh-theme b/themes/gallois.zsh-theme index f31d21958..d383ed583 100644 --- a/themes/gallois.zsh-theme +++ b/themes/gallois.zsh-theme @@ -11,19 +11,11 @@ git_custom_status() { fi } -#RVM and git settings -if [[ -s ~/.rvm/scripts/rvm ]] ; then - RPS1='$(git_custom_status)%{$fg[red]%}[`~/.rvm/bin/rvm-prompt`]%{$reset_color%} $EPS1' -else - if which rbenv &> /dev/null; then - RPS1='$(git_custom_status)%{$fg[red]%}[`rbenv version | sed -e "s/ (set.*$//"`]%{$reset_color%} $EPS1' - else - if [[ -n `which chruby_prompt_info &> /dev/null` && -n `chruby_prompt_info` ]]; then - RPS1='$(git_custom_status)%{$fg[red]%}[`chruby_prompt_info`]%{$reset_color%} $EPS1' - else - RPS1='$(git_custom_status) $EPS1' - fi - fi -fi +# RVM component of prompt +ZSH_THEME_RVM_PROMPT_PREFIX="%{$fg[red]%}[" +ZSH_THEME_RVM_PROMPT_SUFFIX="]%{$reset_color%}" + +# Combine it all into a final right-side prompt +RPS1='$(git_custom_status)$(ruby_prompt_info) $EPS1' PROMPT='%{$fg[cyan]%}[%~% ]%(?.%{$fg[green]%}.%{$fg[red]%})%B$%b ' From c9fbfc9f48b25c724265e06f0bce8d737c7ea13b Mon Sep 17 00:00:00 2001 From: Pablo Cantero Date: Fri, 4 Apr 2014 21:20:01 -0300 Subject: [PATCH 0015/1175] Uses `shipit` instead of `xcap` --- plugins/capistrano/_capistrano | 6 +++--- plugins/capistrano/capistrano.plugin.zsh | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/capistrano/_capistrano b/plugins/capistrano/_capistrano index 7a74b3732..c181b55ca 100644 --- a/plugins/capistrano/_capistrano +++ b/plugins/capistrano/_capistrano @@ -1,7 +1,7 @@ -#compdef xcap cap +#compdef shipit #autoload -# Added `xcap` because `cap` is a reserved word. `cap` completion doesn't work. +# Added `shipit` because `cap` is a reserved word. `cap` completion doesn't work. # http://zsh.sourceforge.net/Doc/Release/Zsh-Modules.html#The-zsh_002fcap-Module local curcontext="$curcontext" state line ret=1 @@ -14,7 +14,7 @@ _arguments -C \ _cap_tasks() { if [[ -f config/deploy.rb || -f Capfile ]]; then if [[ ! -f .cap_tasks~ ]]; then - xcap -v --tasks | awk '{command=$2; $1=$2=$3=""; gsub(/^[ \t\r\n]+/, "", $0); gsub(":", "\\:", command); print command"["$0"]"}' > .cap_tasks~ + shipit -v --tasks | awk '{command=$2; $1=$2=$3=""; gsub(/^[ \t\r\n]+/, "", $0); gsub(":", "\\:", command); print command"["$0"]"}' > .cap_tasks~ fi OLD_IFS=$IFS diff --git a/plugins/capistrano/capistrano.plugin.zsh b/plugins/capistrano/capistrano.plugin.zsh index 9a4a2cc34..c85eb474c 100644 --- a/plugins/capistrano/capistrano.plugin.zsh +++ b/plugins/capistrano/capistrano.plugin.zsh @@ -1,7 +1,7 @@ -# Added `xcap` because `cap` is a reserved word. `cap` completion doesn't work. +# Added `shipit` because `cap` is a reserved word. `cap` completion doesn't work. # http://zsh.sourceforge.net/Doc/Release/Zsh-Modules.html#The-zsh_002fcap-Module -func xcap() { +func shipit() { if [ -f Gemfile ] then bundle exec cap $* From 6a5c8fb81b369566ed0f5e408dab7a7213354ade Mon Sep 17 00:00:00 2001 From: Felipe Contreras Date: Mon, 21 Apr 2014 21:11:49 -0500 Subject: [PATCH 0016/1175] gitfast: update to upstream v1.9.2 Signed-off-by: Felipe Contreras --- plugins/gitfast/_git | 10 +++++- plugins/gitfast/git-completion.bash | 47 ++++++++++++++++++++--------- plugins/gitfast/git-prompt.sh | 15 +++++++-- 3 files changed, 53 insertions(+), 19 deletions(-) diff --git a/plugins/gitfast/_git b/plugins/gitfast/_git index fac5e711e..6b7796857 100644 --- a/plugins/gitfast/_git +++ b/plugins/gitfast/_git @@ -30,10 +30,10 @@ if [ -z "$script" ]; then local -a locations local e locations=( + $(dirname ${funcsourcetrace[1]%:*})/git-completion.bash '/etc/bash_completion.d/git' # fedora, old debian '/usr/share/bash-completion/completions/git' # arch, ubuntu, new debian '/usr/share/bash-completion/git' # gentoo - $(dirname ${funcsourcetrace[1]%:*})/git-completion.bash ) for e in $locations; do test -f $e && script="$e" && break @@ -76,6 +76,14 @@ __gitcomp_nl () compadd -Q -S "${4- }" -p "${2-}" -- ${=1} && _ret=0 } +__gitcomp_nl_append () +{ + emulate -L zsh + + local IFS=$'\n' + compadd -Q -S "${4- }" -p "${2-}" -- ${=1} && _ret=0 +} + __gitcomp_file () { emulate -L zsh diff --git a/plugins/gitfast/git-completion.bash b/plugins/gitfast/git-completion.bash index 5da920ecd..9525343fc 100644 --- a/plugins/gitfast/git-completion.bash +++ b/plugins/gitfast/git-completion.bash @@ -1,5 +1,3 @@ -#!bash -# # bash/zsh completion support for core Git. # # Copyright (C) 2006,2007 Shawn O. Pearce @@ -180,9 +178,9 @@ _get_comp_words_by_ref () } fi -__gitcompadd () +__gitcompappend () { - local i=0 + local i=${#COMPREPLY[@]} for x in $1; do if [[ "$x" == "$3"* ]]; then COMPREPLY[i++]="$2$x$4" @@ -190,6 +188,12 @@ __gitcompadd () done } +__gitcompadd () +{ + COMPREPLY=() + __gitcompappend "$@" +} + # Generates completion reply, appending a space to possible completion words, # if necessary. # It accepts 1 to 4 arguments: @@ -220,6 +224,14 @@ __gitcomp () esac } +# Variation of __gitcomp_nl () that appends to the existing list of +# completion candidates, COMPREPLY. +__gitcomp_nl_append () +{ + local IFS=$'\n' + __gitcompappend "$1" "${2-}" "${3-$cur}" "${4- }" +} + # Generates completion reply from newline-separated possible completion words # by appending a space to all of them. # It accepts 1 to 4 arguments: @@ -231,8 +243,8 @@ __gitcomp () # appended. __gitcomp_nl () { - local IFS=$'\n' - __gitcompadd "$1" "${2-}" "${3-$cur}" "${4- }" + COMPREPLY=() + __gitcomp_nl_append "$@" } # Generates completion reply with compgen from newline-separated possible @@ -673,7 +685,6 @@ __git_list_porcelain_commands () index-pack) : plumbing;; init-db) : deprecated;; local-fetch) : plumbing;; - lost-found) : infrequent;; ls-files) : plumbing;; ls-remote) : plumbing;; ls-tree) : plumbing;; @@ -687,14 +698,12 @@ __git_list_porcelain_commands () pack-refs) : plumbing;; parse-remote) : plumbing;; patch-id) : plumbing;; - peek-remote) : plumbing;; prune) : plumbing;; prune-packed) : plumbing;; quiltimport) : import;; read-tree) : plumbing;; receive-pack) : plumbing;; remote-*) : transport;; - repo-config) : deprecated;; rerere) : plumbing;; rev-list) : plumbing;; rev-parse) : plumbing;; @@ -707,7 +716,6 @@ __git_list_porcelain_commands () ssh-*) : transport;; stripspace) : plumbing;; symbolic-ref) : plumbing;; - tar-tree) : deprecated;; unpack-file) : plumbing;; unpack-objects) : plumbing;; update-index) : plumbing;; @@ -901,7 +909,7 @@ _git_add () esac # XXX should we check for --update and --all options ? - __git_complete_index_file "--others --modified" + __git_complete_index_file "--others --modified --directory --no-empty-directory" } _git_archive () @@ -1063,7 +1071,7 @@ _git_clean () esac # XXX should we check for -x option ? - __git_complete_index_file "--others" + __git_complete_index_file "--others --directory" } _git_clone () @@ -1188,7 +1196,7 @@ _git_diff () __git_complete_revlist_file } -__git_mergetools_common="diffuse ecmerge emerge kdiff3 meld opendiff +__git_mergetools_common="diffuse diffmerge ecmerge emerge kdiff3 meld opendiff tkdiff vimdiff gvimdiff xxdiff araxis p4merge bc3 codecompare " @@ -1491,6 +1499,12 @@ _git_mergetool () _git_merge_base () { + case "$cur" in + --*) + __gitcomp "--octopus --independent --is-ancestor --fork-point" + return + ;; + esac __gitcomp_nl "$(__git_refs)" } @@ -1623,7 +1637,7 @@ _git_rebase () --preserve-merges --stat --no-stat --committer-date-is-author-date --ignore-date --ignore-whitespace --whitespace= - --autosquash + --autosquash --fork-point --no-fork-point " return @@ -1833,6 +1847,7 @@ _git_config () branch.*) local pfx="${cur%.*}." cur_="${cur#*.}" __gitcomp_nl "$(__git_heads)" "$pfx" "$cur_" "." + __gitcomp_nl_append $'autosetupmerge\nautosetuprebase\n' "$pfx" "$cur_" return ;; guitool.*.*) @@ -1875,6 +1890,7 @@ _git_config () remote.*) local pfx="${cur%.*}." cur_="${cur#*.}" __gitcomp_nl "$(__git_remotes)" "$pfx" "$cur_" "." + __gitcomp_nl_append "pushdefault" "$pfx" "$cur_" return ;; url.*.*) @@ -1997,6 +2013,7 @@ _git_config () fetch.unpackLimit format.attach format.cc + format.coverLetter format.headers format.numbered format.pretty @@ -2580,7 +2597,7 @@ if [[ -n ${ZSH_VERSION-} ]]; then --*=*|*.) ;; *) c="$c " ;; esac - array[$#array+1]="$c" + array[${#array[@]}+1]="$c" done compset -P '*[=:]' compadd -Q -S '' -p "${2-}" -a -- array && _ret=0 diff --git a/plugins/gitfast/git-prompt.sh b/plugins/gitfast/git-prompt.sh index a81ef5a48..7b732d2ae 100644 --- a/plugins/gitfast/git-prompt.sh +++ b/plugins/gitfast/git-prompt.sh @@ -60,6 +60,7 @@ # of values: # # verbose show number of commits ahead/behind (+/-) upstream +# name if verbose, then also show the upstream abbrev name # legacy don't use the '--count' option available in recent # versions of git-rev-list # git always compare HEAD to @{upstream} @@ -84,13 +85,17 @@ # the colored output of "git status -sb" and are available only when # using __git_ps1 for PROMPT_COMMAND or precmd. +# check whether printf supports -v +__git_printf_supports_v= +printf -v __git_printf_supports_v -- '%s' yes >/dev/null 2>&1 + # stores the divergence from upstream in $p # used by GIT_PS1_SHOWUPSTREAM __git_ps1_show_upstream () { local key value local svn_remote svn_url_pattern count n - local upstream=git legacy="" verbose="" + local upstream=git legacy="" verbose="" name="" svn_remote=() # get some config options from git-config @@ -106,7 +111,7 @@ __git_ps1_show_upstream () ;; svn-remote.*.url) svn_remote[$((${#svn_remote[@]} + 1))]="$value" - svn_url_pattern+="\\|$value" + svn_url_pattern="$svn_url_pattern\\|$value" upstream=svn+git # default upstream is SVN if available, else git ;; esac @@ -118,6 +123,7 @@ __git_ps1_show_upstream () git|svn) upstream="$option" ;; verbose) verbose=1 ;; legacy) legacy=1 ;; + name) name=1 ;; esac done @@ -200,6 +206,9 @@ __git_ps1_show_upstream () *) # diverged from upstream p=" u+${count#* }-${count% *}" ;; esac + if [[ -n "$count" && -n "$name" ]]; then + p="$p $(git rev-parse --abbrev-ref "$upstream" 2>/dev/null)" + fi fi } @@ -433,7 +442,7 @@ __git_ps1 () local gitstring="$c${b##refs/heads/}${f:+$z$f}$r$p" if [ $pcmode = yes ]; then - if [[ -n ${ZSH_VERSION-} ]]; then + if [ "${__git_printf_supports_v-}" != yes ]; then gitstring=$(printf -- "$printf_format" "$gitstring") else printf -v gitstring -- "$printf_format" "$gitstring" From 5918d9100b294beb490cbd5f1f15fe2b064d9e62 Mon Sep 17 00:00:00 2001 From: Felipe Contreras Date: Mon, 21 Apr 2014 21:13:06 -0500 Subject: [PATCH 0017/1175] gitfast: back-port prompt fix Signed-off-by: Felipe Contreras --- plugins/gitfast/git-prompt.sh | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/plugins/gitfast/git-prompt.sh b/plugins/gitfast/git-prompt.sh index 7b732d2ae..54489080f 100644 --- a/plugins/gitfast/git-prompt.sh +++ b/plugins/gitfast/git-prompt.sh @@ -259,6 +259,13 @@ __git_ps1_colorize_gitstring () r="$c_clear$r" } +eread () +{ + f="$1" + shift + test -r "$f" && read "$@" <"$f" +} + # __git_ps1 accepts 0 or 1 arguments (i.e., format string) # when called from PS1 using command substitution # in this mode it prints text to add to bash PS1 prompt (includes branch name) @@ -321,9 +328,9 @@ __git_ps1 () local step="" local total="" if [ -d "$g/rebase-merge" ]; then - read b 2>/dev/null <"$g/rebase-merge/head-name" - read step 2>/dev/null <"$g/rebase-merge/msgnum" - read total 2>/dev/null <"$g/rebase-merge/end" + eread "$g/rebase-merge/head-name" b + eread "$g/rebase-merge/msgnum" step + eread "$g/rebase-merge/end" total if [ -f "$g/rebase-merge/interactive" ]; then r="|REBASE-i" else @@ -331,10 +338,10 @@ __git_ps1 () fi else if [ -d "$g/rebase-apply" ]; then - read step 2>/dev/null <"$g/rebase-apply/next" - read total 2>/dev/null <"$g/rebase-apply/last" + eread "$g/rebase-apply/next" step + eread "$g/rebase-apply/last" total if [ -f "$g/rebase-apply/rebasing" ]; then - read b 2>/dev/null <"$g/rebase-apply/head-name" + eread "$g/rebase-apply/head-name" b r="|REBASE" elif [ -f "$g/rebase-apply/applying" ]; then r="|AM" @@ -358,7 +365,7 @@ __git_ps1 () b="$(git symbolic-ref HEAD 2>/dev/null)" else local head="" - if ! read head 2>/dev/null <"$g/HEAD"; then + if ! eread "$g/HEAD" head; then if [ $pcmode = yes ]; then PS1="$ps1pc_start$ps1pc_end" fi From f516b7c7f5e630ab04d31e5f7da5f443b21f173f Mon Sep 17 00:00:00 2001 From: drm00 Date: Fri, 25 Apr 2014 14:15:14 +0200 Subject: [PATCH 0018/1175] add check for colored ls on openbsd. (retry of #2225) --- lib/theme-and-appearance.zsh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/theme-and-appearance.zsh b/lib/theme-and-appearance.zsh index 0353f9db4..2c6d4912c 100644 --- a/lib/theme-and-appearance.zsh +++ b/lib/theme-and-appearance.zsh @@ -12,8 +12,11 @@ then # otherwise, leave ls as is, because NetBSD's ls doesn't support -G gls --color -d . &>/dev/null 2>&1 && alias ls='gls --color=tty' elif [[ "$(uname -s)" == "OpenBSD" ]]; then - # On OpenBSD, test if "colorls" is installed (this one supports colors); - # otherwise, leave ls as is, because OpenBSD's ls doesn't support -G + # On OpenBSD, "gls" (ls from GNU coreutils) and "colorls" (ls from base, + # with color and multibyte support) are available from ports. "colorls" + # will be installed on purpose and can't be pulled in by installing + # coreutils, so prefer it to "gls". + gls --color -d . &>/dev/null 2>&1 && alias ls='gls --color=tty' colorls -G -d . &>/dev/null 2>&1 && alias ls='colorls -G' else ls --color -d . &>/dev/null 2>&1 && alias ls='ls --color=tty' || alias ls='ls -G' From 33ef34baa5f703ee7fcc502eabed4f1ab968127e Mon Sep 17 00:00:00 2001 From: Mitchel Humpherys Date: Tue, 7 Jan 2014 12:47:58 -0800 Subject: [PATCH 0019/1175] Fix gmt compdef Fix typo: gm -> gmt --- plugins/git/git.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 9f7819df3..c579d1e82 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -82,7 +82,7 @@ alias gwc='git whatchanged -p --abbrev-commit --pretty=medium' alias gpoat='git push origin --all && git push origin --tags' alias gmt='git mergetool --no-prompt' -compdef _git gm=git-mergetool +compdef _git gmt=git-mergetool alias gg='git gui citool' alias gga='git gui citool --amend' From bce74975d055529cbd186782e2fd99e6da840460 Mon Sep 17 00:00:00 2001 From: Frank Louwers Date: Wed, 28 May 2014 13:57:25 +0200 Subject: [PATCH 0020/1175] =?UTF-8?q?drop=20the=20foreach,=20make=20it=20e?= =?UTF-8?q?ven=20shorter.=20thanks=20Marc=20Cornell=C3=A0!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/pj/pj.plugin.zsh | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/plugins/pj/pj.plugin.zsh b/plugins/pj/pj.plugin.zsh index dac561189..f9cbddf1a 100644 --- a/plugins/pj/pj.plugin.zsh +++ b/plugins/pj/pj.plugin.zsh @@ -41,11 +41,8 @@ alias pjo="pj open" function _pj () { # might be possible to improve this using glob, without the basename trick typeset -a projects - foreach i ($PROJECT_PATHS/*) - do - projects+=(${i##*/}) - done - + projects=($PROJECT_PATHS/*) + projects=$projects:t _arguments '*:file:($projects)' } From 12324856c6645c2e71c4dfcf5ef12313c989b387 Mon Sep 17 00:00:00 2001 From: Andrea De Pasquale Date: Tue, 24 Sep 2013 11:11:35 +0200 Subject: [PATCH 0021/1175] Added ssh-like mosh window title Display the hostname when running Mosh (http://mosh.mit.edu/). Same thing as displaying "hostname" when running "ssh hostname". --- lib/termsupport.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index 9c0a430fb..30410c1fd 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -28,7 +28,7 @@ function omz_termsupport_preexec { setopt extended_glob # cmd name only, or if this is sudo or ssh, the next cmd - local CMD=${1[(wr)^(*=*|sudo|ssh|rake|-*)]:gs/%/%%} + local CMD=${1[(wr)^(*=*|sudo|ssh|mosh|rake|-*)]:gs/%/%%} local LINE="${2:gs/%/%%}" title '$CMD' '%100>...>$LINE%<<' From d3acea3965ebe13d6ed9885984ba8f5cc8ab4936 Mon Sep 17 00:00:00 2001 From: Zbigniew Siciarz Date: Sat, 14 Dec 2013 18:57:46 +0100 Subject: [PATCH 0022/1175] Updated cabal plugin with Cabal 1.18 commands. --- plugins/cabal/cabal.plugin.zsh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/cabal/cabal.plugin.zsh b/plugins/cabal/cabal.plugin.zsh index 9f76add7a..acd7f8287 100644 --- a/plugins/cabal/cabal.plugin.zsh +++ b/plugins/cabal/cabal.plugin.zsh @@ -23,6 +23,7 @@ function _cabal_commands() { "copy:Copy teh files into the install locations" "configure:Prepare to build the package" "fetch:Downloads packages for later installation" + "get:Gets a package's source code" "haddock:Generate HAddock HTML documentation" "help:Help about commands" "hscolour:Generate HsColour colourised code, in HTML format" @@ -31,7 +32,10 @@ function _cabal_commands() { "install:Installs a list of packages" "list:List packages matching a search string" "register:Register this package with the compiler" + "repl:Open an interpreter session for the given target" "report:Upload build reports to a remote server" + "run:Runs the compiled executable" + "sandbox:Create/modify/delete a sandbox" "sdist:Generate a source distribution file (.tar.gz)" "test:Run the test suite, if any (configure with UserHooks)" "unpack:Unpacks packages for user inspection" From 859a37d4f14838b20d09b8d7814f270d9b54b8e5 Mon Sep 17 00:00:00 2001 From: Zbigniew Siciarz Date: Sun, 8 Jun 2014 12:04:52 +0200 Subject: [PATCH 0023/1175] Fixed typo in cabal plugin. --- plugins/cabal/cabal.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/cabal/cabal.plugin.zsh b/plugins/cabal/cabal.plugin.zsh index acd7f8287..3e611ddcc 100644 --- a/plugins/cabal/cabal.plugin.zsh +++ b/plugins/cabal/cabal.plugin.zsh @@ -20,7 +20,7 @@ function _cabal_commands() { "build:Make this package ready for installation" "check:Check the package for common mistakes" "clean:Clean up after a build" - "copy:Copy teh files into the install locations" + "copy:Copy the files into the install locations" "configure:Prepare to build the package" "fetch:Downloads packages for later installation" "get:Gets a package's source code" From 1ab0f771bc85bbdd86d14e616281cc138c3afe91 Mon Sep 17 00:00:00 2001 From: Zbigniew Siciarz Date: Sun, 8 Jun 2014 12:08:02 +0200 Subject: [PATCH 0024/1175] Updated cabal commands for Cabal 1.20 --- plugins/cabal/cabal.plugin.zsh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/plugins/cabal/cabal.plugin.zsh b/plugins/cabal/cabal.plugin.zsh index 3e611ddcc..b59438f98 100644 --- a/plugins/cabal/cabal.plugin.zsh +++ b/plugins/cabal/cabal.plugin.zsh @@ -17,14 +17,15 @@ function _cabal_commands() { subcommand) subcommands=( "bench:Run the benchmark, if any (configure with UserHooks)" - "build:Make this package ready for installation" + "build:Compile all targets or specific target." "check:Check the package for common mistakes" "clean:Clean up after a build" "copy:Copy the files into the install locations" "configure:Prepare to build the package" + "exec:Run a command with the cabal environment" "fetch:Downloads packages for later installation" "get:Gets a package's source code" - "haddock:Generate HAddock HTML documentation" + "haddock:Generate Haddock HTML documentation" "help:Help about commands" "hscolour:Generate HsColour colourised code, in HTML format" "info:Display detailed information about a particular package" From eb06484d4f3124a4fa922c25540fa80885fc35b5 Mon Sep 17 00:00:00 2001 From: fallwith Date: Sat, 18 Jan 2014 20:26:21 -0800 Subject: [PATCH 0025/1175] added emoji plugin to make it easy to display emoji characters in the terminal --- plugins/emoji/emoji.plugin.zsh | 1097 ++++++++++++++++++++++++++++++++ 1 file changed, 1097 insertions(+) create mode 100644 plugins/emoji/emoji.plugin.zsh diff --git a/plugins/emoji/emoji.plugin.zsh b/plugins/emoji/emoji.plugin.zsh new file mode 100644 index 000000000..be761871e --- /dev/null +++ b/plugins/emoji/emoji.plugin.zsh @@ -0,0 +1,1097 @@ +# Make emoji available within the ZSH terminal +# +# To output a specific emoji, use: +# $> echo $emoji[] +# ex: $> echo $emoji[mouse_face] +# +# To output a random emoji, use: +# $> random_emoji +# $> random_emoji_fruit +# $> random_emoji_animal +# $> random_emoji_vehicle +# $> random_emoji_face +# +# To list all available emoji with names, use: +# $> display_all_emoji +# $> display_emoji_fruits +# $> display_emoji_animals +# $> display_emoji_vehicles +# $> display_emoji_faces +# +# To use an emoji in a prompt: +# PROMPT='$(echo $emoji[penguin]) > ' +# PROMPT='$(random_emoji_fruit) > ' +# eval surfer=$(echo $emoji[surfer]) +# PROMPT='$surfer > ' +# +# emoji codes sourced from http://apps.timwhitlock.info/emoji/tables/unicode + +typeset -A emoji +emoji[grinning_face_with_smiling_eyes]='\xF0\x9F\x98\x81' +emoji[face_with_tears_of_joy]='\xF0\x9F\x98\x82' +emoji[smiling_face_with_open_mouth]='\xF0\x9F\x98\x83' +emoji[smiling_face_with_open_mouth_and_smiling_eyes]='\xF0\x9F\x98\x84' +emoji[smiling_face_with_open_mouth_and_cold_sweat]='\xF0\x9F\x98\x85' +emoji[smiling_face_with_open_mouth_and_tightly_closed_eyes]='\xF0\x9F\x98\x86' +emoji[winking_face]='\xF0\x9F\x98\x89' +emoji[smiling_face_with_smiling_eyes]='\xF0\x9F\x98\x8A' +emoji[face_savouring_delicious_food]='\xF0\x9F\x98\x8B' +emoji[relieved_face]='\xF0\x9F\x98\x8C' +emoji[smiling_face_with_heart_shaped_eyes]='\xF0\x9F\x98\x8D' +emoji[smirking_face]='\xF0\x9F\x98\x8F' +emoji[unamused_face]='\xF0\x9F\x98\x92' +emoji[face_with_cold_sweat]='\xF0\x9F\x98\x93' +emoji[pensive_face]='\xF0\x9F\x98\x94' +emoji[confounded_face]='\xF0\x9F\x98\x96' +emoji[face_throwing_a_kiss]='\xF0\x9F\x98\x98' +emoji[kissing_face_with_closed_eyes]='\xF0\x9F\x98\x9A' +emoji[face_with_stuck_out_tongue_and_winking_eye]='\xF0\x9F\x98\x9C' +emoji[face_with_stuck_out_tongue_and_tightly_closed_eyes]='\xF0\x9F\x98\x9D' +emoji[disappointed_face]='\xF0\x9F\x98\x9E' +emoji[angry_face]='\xF0\x9F\x98\xA0' +emoji[pouting_face]='\xF0\x9F\x98\xA1' +emoji[crying_face]='\xF0\x9F\x98\xA2' +emoji[persevering_face]='\xF0\x9F\x98\xA3' +emoji[face_with_look_of_triumph]='\xF0\x9F\x98\xA4' +emoji[disappointed_but_relieved_face]='\xF0\x9F\x98\xA5' +emoji[fearful_face]='\xF0\x9F\x98\xA8' +emoji[weary_face]='\xF0\x9F\x98\xA9' +emoji[sleepy_face]='\xF0\x9F\x98\xAA' +emoji[tired_face]='\xF0\x9F\x98\xAB' +emoji[loudly_crying_face]='\xF0\x9F\x98\xAD' +emoji[face_with_open_mouth_and_cold_sweat]='\xF0\x9F\x98\xB0' +emoji[face_screaming_in_fear]='\xF0\x9F\x98\xB1' +emoji[astonished_face]='\xF0\x9F\x98\xB2' +emoji[flushed_face]='\xF0\x9F\x98\xB3' +emoji[dizzy_face]='\xF0\x9F\x98\xB5' +emoji[face_with_medical_mask]='\xF0\x9F\x98\xB7' +emoji[grinning_cat_face_with_smiling_eyes]='\xF0\x9F\x98\xB8' +emoji[cat_face_with_tears_of_joy]='\xF0\x9F\x98\xB9' +emoji[smiling_cat_face_with_open_mouth]='\xF0\x9F\x98\xBA' +emoji[smiling_cat_face_with_heart_shaped_eyes]='\xF0\x9F\x98\xBB' +emoji[cat_face_with_wry_smile]='\xF0\x9F\x98\xBC' +emoji[kissing_cat_face_with_closed_eyes]='\xF0\x9F\x98\xBD' +emoji[pouting_cat_face]='\xF0\x9F\x98\xBE' +emoji[crying_cat_face]='\xF0\x9F\x98\xBF' +emoji[weary_cat_face]='\xF0\x9F\x99\x80' +emoji[face_with_no_good_gesture]='\xF0\x9F\x99\x85' +emoji[face_with_ok_gesture]='\xF0\x9F\x99\x86' +emoji[person_bowing_deeply]='\xF0\x9F\x99\x87' +emoji[see_no_evil_monkey]='\xF0\x9F\x99\x88' +emoji[hear_no_evil_monkey]='\xF0\x9F\x99\x89' +emoji[speak_no_evil_monkey]='\xF0\x9F\x99\x8A' +emoji[happy_person_raising_one_hand]='\xF0\x9F\x99\x8B' +emoji[person_raising_both_hands_in_celebration]='\xF0\x9F\x99\x8C' +emoji[person_frowning]='\xF0\x9F\x99\x8D' +emoji[person_with_pouting_face]='\xF0\x9F\x99\x8E' +emoji[person_with_folded_hands]='\xF0\x9F\x99\x8F' +emoji[black_scissors]='\xE2\x9C\x82' +emoji[white_heavy_check_mark]='\xE2\x9C\x85' +emoji[airplane]='\xE2\x9C\x88' +emoji[envelope]='\xE2\x9C\x89' +emoji[raised_fist]='\xE2\x9C\x8A' +emoji[raised_hand]='\xE2\x9C\x8B' +emoji[victory_hand]='\xE2\x9C\x8C' +emoji[pencil]='\xE2\x9C\x8F' +emoji[black_nib]='\xE2\x9C\x92' +emoji[heavy_check_mark]='\xE2\x9C\x94' +emoji[heavy_multiplication_x]='\xE2\x9C\x96' +emoji[sparkles]='\xE2\x9C\xA8' +emoji[eight_spoked_asterisk]='\xE2\x9C\xB3' +emoji[eight_pointed_black_star]='\xE2\x9C\xB4' +emoji[snowflake]='\xE2\x9D\x84' +emoji[sparkle]='\xE2\x9D\x87' +emoji[cross_mark]='\xE2\x9D\x8C' +emoji[negative_squared_cross_mark]='\xE2\x9D\x8E' +emoji[black_question_mark_ornament]='\xE2\x9D\x93' +emoji[white_question_mark_ornament]='\xE2\x9D\x94' +emoji[white_exclamation_mark_ornament]='\xE2\x9D\x95' +emoji[heavy_exclamation_mark_symbol]='\xE2\x9D\x97' +emoji[heavy_black_heart]='\xE2\x9D\xA4' +emoji[heavy_plus_sign]='\xE2\x9E\x95' +emoji[heavy_minus_sign]='\xE2\x9E\x96' +emoji[heavy_division_sign]='\xE2\x9E\x97' +emoji[black_rightwards_arrow]='\xE2\x9E\xA1' +emoji[curly_loop]='\xE2\x9E\xB0' +emoji[rocket]='\xF0\x9F\x9A\x80' +emoji[railway_car]='\xF0\x9F\x9A\x83' +emoji[high_speed_train]='\xF0\x9F\x9A\x84' +emoji[high_speed_train_with_bullet_nose]='\xF0\x9F\x9A\x85' +emoji[metro]='\xF0\x9F\x9A\x87' +emoji[station]='\xF0\x9F\x9A\x89' +emoji[bus]='\xF0\x9F\x9A\x8C' +emoji[bus_stop]='\xF0\x9F\x9A\x8F' +emoji[ambulance]='\xF0\x9F\x9A\x91' +emoji[fire_engine]='\xF0\x9F\x9A\x92' +emoji[police_car]='\xF0\x9F\x9A\x93' +emoji[taxi]='\xF0\x9F\x9A\x95' +emoji[automobile]='\xF0\x9F\x9A\x97' +emoji[recreational_vehicle]='\xF0\x9F\x9A\x99' +emoji[delivery_truck]='\xF0\x9F\x9A\x9A' +emoji[ship]='\xF0\x9F\x9A\xA2' +emoji[speedboat]='\xF0\x9F\x9A\xA4' +emoji[horizontal_traffic_light]='\xF0\x9F\x9A\xA5' +emoji[construction_sign]='\xF0\x9F\x9A\xA7' +emoji[police_cars_revolving_light]='\xF0\x9F\x9A\xA8' +emoji[triangular_flag_on_post]='\xF0\x9F\x9A\xA9' +emoji[door]='\xF0\x9F\x9A\xAA' +emoji[no_entry_sign]='\xF0\x9F\x9A\xAB' +emoji[smoking_symbol]='\xF0\x9F\x9A\xAC' +emoji[no_smoking_symbol]='\xF0\x9F\x9A\xAD' +emoji[bicycle]='\xF0\x9F\x9A\xB2' +emoji[pedestrian]='\xF0\x9F\x9A\xB6' +emoji[mens_symbol]='\xF0\x9F\x9A\xB9' +emoji[womens_symbol]='\xF0\x9F\x9A\xBA' +emoji[restroom]='\xF0\x9F\x9A\xBB' +emoji[baby_symbol]='\xF0\x9F\x9A\xBC' +emoji[toilet]='\xF0\x9F\x9A\xBD' +emoji[water_closet]='\xF0\x9F\x9A\xBE' +emoji[bath]='\xF0\x9F\x9B\x80' +emoji[circled_latin_capital_letter_m]='\xE2\x93\x82' +emoji[negative_squared_latin_capital_letter_a]='\xF0\x9F\x85\xB0' +emoji[negative_squared_latin_capital_letter_b]='\xF0\x9F\x85\xB1' +emoji[negative_squared_latin_capital_letter_o]='\xF0\x9F\x85\xBE' +emoji[negative_squared_latin_capital_letter_p]='\xF0\x9F\x85\xBF' +emoji[negative_squared_ab]='\xF0\x9F\x86\x8E' +emoji[squared_cl]='\xF0\x9F\x86\x91' +emoji[squared_cool]='\xF0\x9F\x86\x92' +emoji[squared_free]='\xF0\x9F\x86\x93' +emoji[squared_id]='\xF0\x9F\x86\x94' +emoji[squared_new]='\xF0\x9F\x86\x95' +emoji[squared_ng]='\xF0\x9F\x86\x96' +emoji[squared_ok]='\xF0\x9F\x86\x97' +emoji[squared_sos]='\xF0\x9F\x86\x98' +emoji[squared_up_with_exclamation_mark]='\xF0\x9F\x86\x99' +emoji[squared_vs]='\xF0\x9F\x86\x9A' +emoji[regional_indicator_symbol_letter_d_regional_indicator_symbol_letter_e]='\xF0\x9F\x87\xA9\xF0\x9F\x87\xAA' +emoji[regional_indicator_symbol_letter_g_regional_indicator_symbol_letter_b]='\xF0\x9F\x87\xAC\xF0\x9F\x87\xA7' +emoji[regional_indicator_symbol_letter_c_regional_indicator_symbol_letter_n]='\xF0\x9F\x87\xA8\xF0\x9F\x87\xB3' +emoji[regional_indicator_symbol_letter_j_regional_indicator_symbol_letter_p]='\xF0\x9F\x87\xAF\xF0\x9F\x87\xB5' +emoji[regional_indicator_symbol_letter_k_regional_indicator_symbol_letter_r]='\xF0\x9F\x87\xB0\xF0\x9F\x87\xB7' +emoji[regional_indicator_symbol_letter_f_regional_indicator_symbol_letter_r]='\xF0\x9F\x87\xAB\xF0\x9F\x87\xB7' +emoji[regional_indicator_symbol_letter_e_regional_indicator_symbol_letter_s]='\xF0\x9F\x87\xAA\xF0\x9F\x87\xB8' +emoji[regional_indicator_symbol_letter_i_regional_indicator_symbol_letter_t]='\xF0\x9F\x87\xAE\xF0\x9F\x87\xB9' +emoji[regional_indicator_symbol_letter_u_regional_indicator_symbol_letter_s]='\xF0\x9F\x87\xBA\xF0\x9F\x87\xB8' +emoji[regional_indicator_symbol_letter_r_regional_indicator_symbol_letter_u]='\xF0\x9F\x87\xB7\xF0\x9F\x87\xBA' +emoji[squared_katakana_koko]='\xF0\x9F\x88\x81' +emoji[squared_katakana_sa]='\xF0\x9F\x88\x82' +emoji[squared_cjk_unified_ideograph_7121]='\xF0\x9F\x88\x9A' +emoji[squared_cjk_unified_ideograph_6307]='\xF0\x9F\x88\xAF' +emoji[squared_cjk_unified_ideograph_7981]='\xF0\x9F\x88\xB2' +emoji[squared_cjk_unified_ideograph_7a7a]='\xF0\x9F\x88\xB3' +emoji[squared_cjk_unified_ideograph_5408]='\xF0\x9F\x88\xB4' +emoji[squared_cjk_unified_ideograph_6e80]='\xF0\x9F\x88\xB5' +emoji[squared_cjk_unified_ideograph_6709]='\xF0\x9F\x88\xB6' +emoji[squared_cjk_unified_ideograph_6708]='\xF0\x9F\x88\xB7' +emoji[squared_cjk_unified_ideograph_7533]='\xF0\x9F\x88\xB8' +emoji[squared_cjk_unified_ideograph_5272]='\xF0\x9F\x88\xB9' +emoji[squared_cjk_unified_ideograph_55b6]='\xF0\x9F\x88\xBA' +emoji[circled_ideograph_advantage]='\xF0\x9F\x89\x90' +emoji[circled_ideograph_accept]='\xF0\x9F\x89\x91' +emoji[copyright_sign]='\xC2\xA9' +emoji[registered_sign]='\xC2\xAE' +emoji[double_exclamation_mark]='\xE2\x80\xBC' +emoji[exclamation_question_mark]='\xE2\x81\x89' +emoji[digit_eight_combining_enclosing_keycap]='\x38\xE2\x83\xA3' +emoji[digit_nine_combining_enclosing_keycap]='\x39\xE2\x83\xA3' +emoji[digit_seven_combining_enclosing_keycap]='\x37\xE2\x83\xA3' +emoji[digit_six_combining_enclosing_keycap]='\x36\xE2\x83\xA3' +emoji[digit_one_combining_enclosing_keycap]='\x31\xE2\x83\xA3' +emoji[digit_zero_combining_enclosing_keycap]='\x30\xE2\x83\xA3' +emoji[digit_two_combining_enclosing_keycap]='\x32\xE2\x83\xA3' +emoji[digit_three_combining_enclosing_keycap]='\x33\xE2\x83\xA3' +emoji[digit_five_combining_enclosing_keycap]='\x35\xE2\x83\xA3' +emoji[digit_four_combining_enclosing_keycap]='\x34\xE2\x83\xA3' +emoji[number_sign_combining_enclosing_keycap]='\x23\xE2\x83\xA3' +emoji[trade_mark_sign]='\xE2\x84\xA2' +emoji[information_source]='\xE2\x84\xB9' +emoji[left_right_arrow]='\xE2\x86\x94' +emoji[up_down_arrow]='\xE2\x86\x95' +emoji[north_west_arrow]='\xE2\x86\x96' +emoji[north_east_arrow]='\xE2\x86\x97' +emoji[south_east_arrow]='\xE2\x86\x98' +emoji[south_west_arrow]='\xE2\x86\x99' +emoji[leftwards_arrow_with_hook]='\xE2\x86\xA9' +emoji[rightwards_arrow_with_hook]='\xE2\x86\xAA' +emoji[watch]='\xE2\x8C\x9A' +emoji[hourglass]='\xE2\x8C\x9B' +emoji[black_right_pointing_double_triangle]='\xE2\x8F\xA9' +emoji[black_left_pointing_double_triangle]='\xE2\x8F\xAA' +emoji[black_up_pointing_double_triangle]='\xE2\x8F\xAB' +emoji[black_down_pointing_double_triangle]='\xE2\x8F\xAC' +emoji[alarm_clock]='\xE2\x8F\xB0' +emoji[hourglass_with_flowing_sand]='\xE2\x8F\xB3' +emoji[black_small_square]='\xE2\x96\xAA' +emoji[white_small_square]='\xE2\x96\xAB' +emoji[black_right_pointing_triangle]='\xE2\x96\xB6' +emoji[black_left_pointing_triangle]='\xE2\x97\x80' +emoji[white_medium_square]='\xE2\x97\xBB' +emoji[black_medium_square]='\xE2\x97\xBC' +emoji[white_medium_small_square]='\xE2\x97\xBD' +emoji[black_medium_small_square]='\xE2\x97\xBE' +emoji[black_sun_with_rays]='\xE2\x98\x80' +emoji[cloud]='\xE2\x98\x81' +emoji[black_telephone]='\xE2\x98\x8E' +emoji[ballot_box_with_check]='\xE2\x98\x91' +emoji[umbrella_with_rain_drops]='\xE2\x98\x94' +emoji[hot_beverage]='\xE2\x98\x95' +emoji[white_up_pointing_index]='\xE2\x98\x9D' +emoji[white_smiling_face]='\xE2\x98\xBA' +emoji[aries]='\xE2\x99\x88' +emoji[taurus]='\xE2\x99\x89' +emoji[gemini]='\xE2\x99\x8A' +emoji[cancer]='\xE2\x99\x8B' +emoji[leo]='\xE2\x99\x8C' +emoji[virgo]='\xE2\x99\x8D' +emoji[libra]='\xE2\x99\x8E' +emoji[scorpius]='\xE2\x99\x8F' +emoji[sagittarius]='\xE2\x99\x90' +emoji[capricorn]='\xE2\x99\x91' +emoji[aquarius]='\xE2\x99\x92' +emoji[pisces]='\xE2\x99\x93' +emoji[black_spade_suit]='\xE2\x99\xA0' +emoji[black_club_suit]='\xE2\x99\xA3' +emoji[black_heart_suit]='\xE2\x99\xA5' +emoji[black_diamond_suit]='\xE2\x99\xA6' +emoji[hot_springs]='\xE2\x99\xA8' +emoji[black_universal_recycling_symbol]='\xE2\x99\xBB' +emoji[wheelchair_symbol]='\xE2\x99\xBF' +emoji[anchor]='\xE2\x9A\x93' +emoji[warning_sign]='\xE2\x9A\xA0' +emoji[high_voltage_sign]='\xE2\x9A\xA1' +emoji[medium_white_circle]='\xE2\x9A\xAA' +emoji[medium_black_circle]='\xE2\x9A\xAB' +emoji[soccer_ball]='\xE2\x9A\xBD' +emoji[baseball]='\xE2\x9A\xBE' +emoji[snowman_without_snow]='\xE2\x9B\x84' +emoji[sun_behind_cloud]='\xE2\x9B\x85' +emoji[ophiuchus]='\xE2\x9B\x8E' +emoji[no_entry]='\xE2\x9B\x94' +emoji[church]='\xE2\x9B\xAA' +emoji[fountain]='\xE2\x9B\xB2' +emoji[flag_in_hole]='\xE2\x9B\xB3' +emoji[sailboat]='\xE2\x9B\xB5' +emoji[tent]='\xE2\x9B\xBA' +emoji[fuel_pump]='\xE2\x9B\xBD' +emoji[arrow_pointing_rightwards_then_curving_upwards]='\xE2\xA4\xB4' +emoji[arrow_pointing_rightwards_then_curving_downwards]='\xE2\xA4\xB5' +emoji[leftwards_black_arrow]='\xE2\xAC\x85' +emoji[upwards_black_arrow]='\xE2\xAC\x86' +emoji[downwards_black_arrow]='\xE2\xAC\x87' +emoji[black_large_square]='\xE2\xAC\x9B' +emoji[white_large_square]='\xE2\xAC\x9C' +emoji[white_medium_star]='\xE2\xAD\x90' +emoji[heavy_large_circle]='\xE2\xAD\x95' +emoji[wavy_dash]='\xE3\x80\xB0' +emoji[part_alternation_mark]='\xE3\x80\xBD' +emoji[circled_ideograph_congratulation]='\xE3\x8A\x97' +emoji[circled_ideograph_secret]='\xE3\x8A\x99' +emoji[mahjong_tile_red_dragon]='\xF0\x9F\x80\x84' +emoji[playing_card_black_joker]='\xF0\x9F\x83\x8F' +emoji[cyclone]='\xF0\x9F\x8C\x80' +emoji[foggy]='\xF0\x9F\x8C\x81' +emoji[closed_umbrella]='\xF0\x9F\x8C\x82' +emoji[night_with_stars]='\xF0\x9F\x8C\x83' +emoji[sunrise_over_mountains]='\xF0\x9F\x8C\x84' +emoji[sunrise]='\xF0\x9F\x8C\x85' +emoji[cityscape_at_dusk]='\xF0\x9F\x8C\x86' +emoji[sunset_over_buildings]='\xF0\x9F\x8C\x87' +emoji[rainbow]='\xF0\x9F\x8C\x88' +emoji[bridge_at_night]='\xF0\x9F\x8C\x89' +emoji[water_wave]='\xF0\x9F\x8C\x8A' +emoji[volcano]='\xF0\x9F\x8C\x8B' +emoji[milky_way]='\xF0\x9F\x8C\x8C' +emoji[earth_globe_asia_australia]='\xF0\x9F\x8C\x8F' +emoji[new_moon_symbol]='\xF0\x9F\x8C\x91' +emoji[first_quarter_moon_symbol]='\xF0\x9F\x8C\x93' +emoji[waxing_gibbous_moon_symbol]='\xF0\x9F\x8C\x94' +emoji[full_moon_symbol]='\xF0\x9F\x8C\x95' +emoji[crescent_moon]='\xF0\x9F\x8C\x99' +emoji[first_quarter_moon_with_face]='\xF0\x9F\x8C\x9B' +emoji[glowing_star]='\xF0\x9F\x8C\x9F' +emoji[shooting_star]='\xF0\x9F\x8C\xA0' +emoji[chestnut]='\xF0\x9F\x8C\xB0' +emoji[seedling]='\xF0\x9F\x8C\xB1' +emoji[palm_tree]='\xF0\x9F\x8C\xB4' +emoji[cactus]='\xF0\x9F\x8C\xB5' +emoji[tulip]='\xF0\x9F\x8C\xB7' +emoji[cherry_blossom]='\xF0\x9F\x8C\xB8' +emoji[rose]='\xF0\x9F\x8C\xB9' +emoji[hibiscus]='\xF0\x9F\x8C\xBA' +emoji[sunflower]='\xF0\x9F\x8C\xBB' +emoji[blossom]='\xF0\x9F\x8C\xBC' +emoji[ear_of_maize]='\xF0\x9F\x8C\xBD' +emoji[ear_of_rice]='\xF0\x9F\x8C\xBE' +emoji[herb]='\xF0\x9F\x8C\xBF' +emoji[four_leaf_clover]='\xF0\x9F\x8D\x80' +emoji[maple_leaf]='\xF0\x9F\x8D\x81' +emoji[fallen_leaf]='\xF0\x9F\x8D\x82' +emoji[leaf_fluttering_in_wind]='\xF0\x9F\x8D\x83' +emoji[mushroom]='\xF0\x9F\x8D\x84' +emoji[tomato]='\xF0\x9F\x8D\x85' +emoji[aubergine]='\xF0\x9F\x8D\x86' +emoji[grapes]='\xF0\x9F\x8D\x87' +emoji[melon]='\xF0\x9F\x8D\x88' +emoji[watermelon]='\xF0\x9F\x8D\x89' +emoji[tangerine]='\xF0\x9F\x8D\x8A' +emoji[banana]='\xF0\x9F\x8D\x8C' +emoji[pineapple]='\xF0\x9F\x8D\x8D' +emoji[red_apple]='\xF0\x9F\x8D\x8E' +emoji[green_apple]='\xF0\x9F\x8D\x8F' +emoji[peach]='\xF0\x9F\x8D\x91' +emoji[cherries]='\xF0\x9F\x8D\x92' +emoji[strawberry]='\xF0\x9F\x8D\x93' +emoji[hamburger]='\xF0\x9F\x8D\x94' +emoji[slice_of_pizza]='\xF0\x9F\x8D\x95' +emoji[meat_on_bone]='\xF0\x9F\x8D\x96' +emoji[poultry_leg]='\xF0\x9F\x8D\x97' +emoji[rice_cracker]='\xF0\x9F\x8D\x98' +emoji[rice_ball]='\xF0\x9F\x8D\x99' +emoji[cooked_rice]='\xF0\x9F\x8D\x9A' +emoji[curry_and_rice]='\xF0\x9F\x8D\x9B' +emoji[steaming_bowl]='\xF0\x9F\x8D\x9C' +emoji[spaghetti]='\xF0\x9F\x8D\x9D' +emoji[bread]='\xF0\x9F\x8D\x9E' +emoji[french_fries]='\xF0\x9F\x8D\x9F' +emoji[roasted_sweet_potato]='\xF0\x9F\x8D\xA0' +emoji[dango]='\xF0\x9F\x8D\xA1' +emoji[oden]='\xF0\x9F\x8D\xA2' +emoji[sushi]='\xF0\x9F\x8D\xA3' +emoji[fried_shrimp]='\xF0\x9F\x8D\xA4' +emoji[fish_cake_with_swirl_design]='\xF0\x9F\x8D\xA5' +emoji[soft_ice_cream]='\xF0\x9F\x8D\xA6' +emoji[shaved_ice]='\xF0\x9F\x8D\xA7' +emoji[ice_cream]='\xF0\x9F\x8D\xA8' +emoji[doughnut]='\xF0\x9F\x8D\xA9' +emoji[cookie]='\xF0\x9F\x8D\xAA' +emoji[chocolate_bar]='\xF0\x9F\x8D\xAB' +emoji[candy]='\xF0\x9F\x8D\xAC' +emoji[lollipop]='\xF0\x9F\x8D\xAD' +emoji[custard]='\xF0\x9F\x8D\xAE' +emoji[honey_pot]='\xF0\x9F\x8D\xAF' +emoji[shortcake]='\xF0\x9F\x8D\xB0' +emoji[bento_box]='\xF0\x9F\x8D\xB1' +emoji[pot_of_food]='\xF0\x9F\x8D\xB2' +emoji[cooking]='\xF0\x9F\x8D\xB3' +emoji[fork_and_knife]='\xF0\x9F\x8D\xB4' +emoji[teacup_without_handle]='\xF0\x9F\x8D\xB5' +emoji[sake_bottle_and_cup]='\xF0\x9F\x8D\xB6' +emoji[wine_glass]='\xF0\x9F\x8D\xB7' +emoji[cocktail_glass]='\xF0\x9F\x8D\xB8' +emoji[tropical_drink]='\xF0\x9F\x8D\xB9' +emoji[beer_mug]='\xF0\x9F\x8D\xBA' +emoji[clinking_beer_mugs]='\xF0\x9F\x8D\xBB' +emoji[ribbon]='\xF0\x9F\x8E\x80' +emoji[wrapped_present]='\xF0\x9F\x8E\x81' +emoji[birthday_cake]='\xF0\x9F\x8E\x82' +emoji[jack_o_lantern]='\xF0\x9F\x8E\x83' +emoji[christmas_tree]='\xF0\x9F\x8E\x84' +emoji[father_christmas]='\xF0\x9F\x8E\x85' +emoji[fireworks]='\xF0\x9F\x8E\x86' +emoji[firework_sparkler]='\xF0\x9F\x8E\x87' +emoji[balloon]='\xF0\x9F\x8E\x88' +emoji[party_popper]='\xF0\x9F\x8E\x89' +emoji[confetti_ball]='\xF0\x9F\x8E\x8A' +emoji[tanabata_tree]='\xF0\x9F\x8E\x8B' +emoji[crossed_flags]='\xF0\x9F\x8E\x8C' +emoji[pine_decoration]='\xF0\x9F\x8E\x8D' +emoji[japanese_dolls]='\xF0\x9F\x8E\x8E' +emoji[carp_streamer]='\xF0\x9F\x8E\x8F' +emoji[wind_chime]='\xF0\x9F\x8E\x90' +emoji[moon_viewing_ceremony]='\xF0\x9F\x8E\x91' +emoji[school_satchel]='\xF0\x9F\x8E\x92' +emoji[graduation_cap]='\xF0\x9F\x8E\x93' +emoji[carousel_horse]='\xF0\x9F\x8E\xA0' +emoji[ferris_wheel]='\xF0\x9F\x8E\xA1' +emoji[roller_coaster]='\xF0\x9F\x8E\xA2' +emoji[fishing_pole_and_fish]='\xF0\x9F\x8E\xA3' +emoji[microphone]='\xF0\x9F\x8E\xA4' +emoji[movie_camera]='\xF0\x9F\x8E\xA5' +emoji[cinema]='\xF0\x9F\x8E\xA6' +emoji[headphone]='\xF0\x9F\x8E\xA7' +emoji[artist_palette]='\xF0\x9F\x8E\xA8' +emoji[top_hat]='\xF0\x9F\x8E\xA9' +emoji[circus_tent]='\xF0\x9F\x8E\xAA' +emoji[ticket]='\xF0\x9F\x8E\xAB' +emoji[clapper_board]='\xF0\x9F\x8E\xAC' +emoji[performing_arts]='\xF0\x9F\x8E\xAD' +emoji[video_game]='\xF0\x9F\x8E\xAE' +emoji[direct_hit]='\xF0\x9F\x8E\xAF' +emoji[slot_machine]='\xF0\x9F\x8E\xB0' +emoji[billiards]='\xF0\x9F\x8E\xB1' +emoji[game_die]='\xF0\x9F\x8E\xB2' +emoji[bowling]='\xF0\x9F\x8E\xB3' +emoji[flower_playing_cards]='\xF0\x9F\x8E\xB4' +emoji[musical_note]='\xF0\x9F\x8E\xB5' +emoji[multiple_musical_notes]='\xF0\x9F\x8E\xB6' +emoji[saxophone]='\xF0\x9F\x8E\xB7' +emoji[guitar]='\xF0\x9F\x8E\xB8' +emoji[musical_keyboard]='\xF0\x9F\x8E\xB9' +emoji[trumpet]='\xF0\x9F\x8E\xBA' +emoji[violin]='\xF0\x9F\x8E\xBB' +emoji[musical_score]='\xF0\x9F\x8E\xBC' +emoji[running_shirt_with_sash]='\xF0\x9F\x8E\xBD' +emoji[tennis_racquet_and_ball]='\xF0\x9F\x8E\xBE' +emoji[ski_and_ski_boot]='\xF0\x9F\x8E\xBF' +emoji[basketball_and_hoop]='\xF0\x9F\x8F\x80' +emoji[chequered_flag]='\xF0\x9F\x8F\x81' +emoji[snowboarder]='\xF0\x9F\x8F\x82' +emoji[runner]='\xF0\x9F\x8F\x83' +emoji[surfer]='\xF0\x9F\x8F\x84' +emoji[trophy]='\xF0\x9F\x8F\x86' +emoji[american_football]='\xF0\x9F\x8F\x88' +emoji[swimmer]='\xF0\x9F\x8F\x8A' +emoji[house_building]='\xF0\x9F\x8F\xA0' +emoji[house_with_garden]='\xF0\x9F\x8F\xA1' +emoji[office_building]='\xF0\x9F\x8F\xA2' +emoji[japanese_post_office]='\xF0\x9F\x8F\xA3' +emoji[hospital]='\xF0\x9F\x8F\xA5' +emoji[bank]='\xF0\x9F\x8F\xA6' +emoji[automated_teller_machine]='\xF0\x9F\x8F\xA7' +emoji[hotel]='\xF0\x9F\x8F\xA8' +emoji[love_hotel]='\xF0\x9F\x8F\xA9' +emoji[convenience_store]='\xF0\x9F\x8F\xAA' +emoji[school]='\xF0\x9F\x8F\xAB' +emoji[department_store]='\xF0\x9F\x8F\xAC' +emoji[factory]='\xF0\x9F\x8F\xAD' +emoji[izakaya_lantern]='\xF0\x9F\x8F\xAE' +emoji[japanese_castle]='\xF0\x9F\x8F\xAF' +emoji[european_castle]='\xF0\x9F\x8F\xB0' +emoji[snail]='\xF0\x9F\x90\x8C' +emoji[snake]='\xF0\x9F\x90\x8D' +emoji[horse]='\xF0\x9F\x90\x8E' +emoji[sheep]='\xF0\x9F\x90\x91' +emoji[monkey]='\xF0\x9F\x90\x92' +emoji[chicken]='\xF0\x9F\x90\x94' +emoji[boar]='\xF0\x9F\x90\x97' +emoji[elephant]='\xF0\x9F\x90\x98' +emoji[octopus]='\xF0\x9F\x90\x99' +emoji[spiral_shell]='\xF0\x9F\x90\x9A' +emoji[bug]='\xF0\x9F\x90\x9B' +emoji[ant]='\xF0\x9F\x90\x9C' +emoji[honeybee]='\xF0\x9F\x90\x9D' +emoji[lady_beetle]='\xF0\x9F\x90\x9E' +emoji[fish]='\xF0\x9F\x90\x9F' +emoji[tropical_fish]='\xF0\x9F\x90\xA0' +emoji[blowfish]='\xF0\x9F\x90\xA1' +emoji[turtle]='\xF0\x9F\x90\xA2' +emoji[hatching_chick]='\xF0\x9F\x90\xA3' +emoji[baby_chick]='\xF0\x9F\x90\xA4' +emoji[front_facing_baby_chick]='\xF0\x9F\x90\xA5' +emoji[bird]='\xF0\x9F\x90\xA6' +emoji[penguin]='\xF0\x9F\x90\xA7' +emoji[koala]='\xF0\x9F\x90\xA8' +emoji[poodle]='\xF0\x9F\x90\xA9' +emoji[bactrian_camel]='\xF0\x9F\x90\xAB' +emoji[dolphin]='\xF0\x9F\x90\xAC' +emoji[mouse_face]='\xF0\x9F\x90\xAD' +emoji[cow_face]='\xF0\x9F\x90\xAE' +emoji[tiger_face]='\xF0\x9F\x90\xAF' +emoji[rabbit_face]='\xF0\x9F\x90\xB0' +emoji[cat_face]='\xF0\x9F\x90\xB1' +emoji[dragon_face]='\xF0\x9F\x90\xB2' +emoji[spouting_whale]='\xF0\x9F\x90\xB3' +emoji[horse_face]='\xF0\x9F\x90\xB4' +emoji[monkey_face]='\xF0\x9F\x90\xB5' +emoji[dog_face]='\xF0\x9F\x90\xB6' +emoji[pig_face]='\xF0\x9F\x90\xB7' +emoji[frog_face]='\xF0\x9F\x90\xB8' +emoji[hamster_face]='\xF0\x9F\x90\xB9' +emoji[wolf_face]='\xF0\x9F\x90\xBA' +emoji[bear_face]='\xF0\x9F\x90\xBB' +emoji[panda_face]='\xF0\x9F\x90\xBC' +emoji[pig_nose]='\xF0\x9F\x90\xBD' +emoji[paw_prints]='\xF0\x9F\x90\xBE' +emoji[eyes]='\xF0\x9F\x91\x80' +emoji[ear]='\xF0\x9F\x91\x82' +emoji[nose]='\xF0\x9F\x91\x83' +emoji[mouth]='\xF0\x9F\x91\x84' +emoji[tongue]='\xF0\x9F\x91\x85' +emoji[white_up_pointing_backhand_index]='\xF0\x9F\x91\x86' +emoji[white_down_pointing_backhand_index]='\xF0\x9F\x91\x87' +emoji[white_left_pointing_backhand_index]='\xF0\x9F\x91\x88' +emoji[white_right_pointing_backhand_index]='\xF0\x9F\x91\x89' +emoji[fisted_hand_sign]='\xF0\x9F\x91\x8A' +emoji[waving_hand_sign]='\xF0\x9F\x91\x8B' +emoji[ok_hand_sign]='\xF0\x9F\x91\x8C' +emoji[thumbs_up_sign]='\xF0\x9F\x91\x8D' +emoji[thumbs_down_sign]='\xF0\x9F\x91\x8E' +emoji[clapping_hands_sign]='\xF0\x9F\x91\x8F' +emoji[open_hands_sign]='\xF0\x9F\x91\x90' +emoji[crown]='\xF0\x9F\x91\x91' +emoji[womans_hat]='\xF0\x9F\x91\x92' +emoji[eyeglasses]='\xF0\x9F\x91\x93' +emoji[necktie]='\xF0\x9F\x91\x94' +emoji[t_shirt]='\xF0\x9F\x91\x95' +emoji[jeans]='\xF0\x9F\x91\x96' +emoji[dress]='\xF0\x9F\x91\x97' +emoji[kimono]='\xF0\x9F\x91\x98' +emoji[bikini]='\xF0\x9F\x91\x99' +emoji[womans_clothes]='\xF0\x9F\x91\x9A' +emoji[purse]='\xF0\x9F\x91\x9B' +emoji[handbag]='\xF0\x9F\x91\x9C' +emoji[pouch]='\xF0\x9F\x91\x9D' +emoji[mans_shoe]='\xF0\x9F\x91\x9E' +emoji[athletic_shoe]='\xF0\x9F\x91\x9F' +emoji[high_heeled_shoe]='\xF0\x9F\x91\xA0' +emoji[womans_sandal]='\xF0\x9F\x91\xA1' +emoji[womans_boots]='\xF0\x9F\x91\xA2' +emoji[footprints]='\xF0\x9F\x91\xA3' +emoji[bust_in_silhouette]='\xF0\x9F\x91\xA4' +emoji[boy]='\xF0\x9F\x91\xA6' +emoji[girl]='\xF0\x9F\x91\xA7' +emoji[man]='\xF0\x9F\x91\xA8' +emoji[woman]='\xF0\x9F\x91\xA9' +emoji[family]='\xF0\x9F\x91\xAA' +emoji[man_and_woman_holding_hands]='\xF0\x9F\x91\xAB' +emoji[police_officer]='\xF0\x9F\x91\xAE' +emoji[woman_with_bunny_ears]='\xF0\x9F\x91\xAF' +emoji[bride_with_veil]='\xF0\x9F\x91\xB0' +emoji[person_with_blond_hair]='\xF0\x9F\x91\xB1' +emoji[man_with_gua_pi_mao]='\xF0\x9F\x91\xB2' +emoji[man_with_turban]='\xF0\x9F\x91\xB3' +emoji[older_man]='\xF0\x9F\x91\xB4' +emoji[older_woman]='\xF0\x9F\x91\xB5' +emoji[baby]='\xF0\x9F\x91\xB6' +emoji[construction_worker]='\xF0\x9F\x91\xB7' +emoji[princess]='\xF0\x9F\x91\xB8' +emoji[japanese_ogre]='\xF0\x9F\x91\xB9' +emoji[japanese_goblin]='\xF0\x9F\x91\xBA' +emoji[ghost]='\xF0\x9F\x91\xBB' +emoji[baby_angel]='\xF0\x9F\x91\xBC' +emoji[extraterrestrial_alien]='\xF0\x9F\x91\xBD' +emoji[alien_monster]='\xF0\x9F\x91\xBE' +emoji[imp]='\xF0\x9F\x91\xBF' +emoji[skull]='\xF0\x9F\x92\x80' +emoji[information_desk_person]='\xF0\x9F\x92\x81' +emoji[guardsman]='\xF0\x9F\x92\x82' +emoji[dancer]='\xF0\x9F\x92\x83' +emoji[lipstick]='\xF0\x9F\x92\x84' +emoji[nail_polish]='\xF0\x9F\x92\x85' +emoji[face_massage]='\xF0\x9F\x92\x86' +emoji[haircut]='\xF0\x9F\x92\x87' +emoji[barber_pole]='\xF0\x9F\x92\x88' +emoji[syringe]='\xF0\x9F\x92\x89' +emoji[pill]='\xF0\x9F\x92\x8A' +emoji[kiss_mark]='\xF0\x9F\x92\x8B' +emoji[love_letter]='\xF0\x9F\x92\x8C' +emoji[ring]='\xF0\x9F\x92\x8D' +emoji[gem_stone]='\xF0\x9F\x92\x8E' +emoji[kiss]='\xF0\x9F\x92\x8F' +emoji[bouquet]='\xF0\x9F\x92\x90' +emoji[couple_with_heart]='\xF0\x9F\x92\x91' +emoji[wedding]='\xF0\x9F\x92\x92' +emoji[beating_heart]='\xF0\x9F\x92\x93' +emoji[broken_heart]='\xF0\x9F\x92\x94' +emoji[two_hearts]='\xF0\x9F\x92\x95' +emoji[sparkling_heart]='\xF0\x9F\x92\x96' +emoji[growing_heart]='\xF0\x9F\x92\x97' +emoji[heart_with_arrow]='\xF0\x9F\x92\x98' +emoji[blue_heart]='\xF0\x9F\x92\x99' +emoji[green_heart]='\xF0\x9F\x92\x9A' +emoji[yellow_heart]='\xF0\x9F\x92\x9B' +emoji[purple_heart]='\xF0\x9F\x92\x9C' +emoji[heart_with_ribbon]='\xF0\x9F\x92\x9D' +emoji[revolving_hearts]='\xF0\x9F\x92\x9E' +emoji[heart_decoration]='\xF0\x9F\x92\x9F' +emoji[diamond_shape_with_a_dot_inside]='\xF0\x9F\x92\xA0' +emoji[electric_light_bulb]='\xF0\x9F\x92\xA1' +emoji[anger_symbol]='\xF0\x9F\x92\xA2' +emoji[bomb]='\xF0\x9F\x92\xA3' +emoji[sleeping_symbol]='\xF0\x9F\x92\xA4' +emoji[collision_symbol]='\xF0\x9F\x92\xA5' +emoji[splashing_sweat_symbol]='\xF0\x9F\x92\xA6' +emoji[droplet]='\xF0\x9F\x92\xA7' +emoji[dash_symbol]='\xF0\x9F\x92\xA8' +emoji[pile_of_poo]='\xF0\x9F\x92\xA9' +emoji[flexed_biceps]='\xF0\x9F\x92\xAA' +emoji[dizzy_symbol]='\xF0\x9F\x92\xAB' +emoji[speech_balloon]='\xF0\x9F\x92\xAC' +emoji[white_flower]='\xF0\x9F\x92\xAE' +emoji[hundred_points_symbol]='\xF0\x9F\x92\xAF' +emoji[money_bag]='\xF0\x9F\x92\xB0' +emoji[currency_exchange]='\xF0\x9F\x92\xB1' +emoji[heavy_dollar_sign]='\xF0\x9F\x92\xB2' +emoji[credit_card]='\xF0\x9F\x92\xB3' +emoji[banknote_with_yen_sign]='\xF0\x9F\x92\xB4' +emoji[banknote_with_dollar_sign]='\xF0\x9F\x92\xB5' +emoji[money_with_wings]='\xF0\x9F\x92\xB8' +emoji[chart_with_upwards_trend_and_yen_sign]='\xF0\x9F\x92\xB9' +emoji[seat]='\xF0\x9F\x92\xBA' +emoji[personal_computer]='\xF0\x9F\x92\xBB' +emoji[briefcase]='\xF0\x9F\x92\xBC' +emoji[minidisc]='\xF0\x9F\x92\xBD' +emoji[floppy_disk]='\xF0\x9F\x92\xBE' +emoji[optical_disc]='\xF0\x9F\x92\xBF' +emoji[dvd]='\xF0\x9F\x93\x80' +emoji[file_folder]='\xF0\x9F\x93\x81' +emoji[open_file_folder]='\xF0\x9F\x93\x82' +emoji[page_with_curl]='\xF0\x9F\x93\x83' +emoji[page_facing_up]='\xF0\x9F\x93\x84' +emoji[calendar]='\xF0\x9F\x93\x85' +emoji[tear_off_calendar]='\xF0\x9F\x93\x86' +emoji[card_index]='\xF0\x9F\x93\x87' +emoji[chart_with_upwards_trend]='\xF0\x9F\x93\x88' +emoji[chart_with_downwards_trend]='\xF0\x9F\x93\x89' +emoji[bar_chart]='\xF0\x9F\x93\x8A' +emoji[clipboard]='\xF0\x9F\x93\x8B' +emoji[pushpin]='\xF0\x9F\x93\x8C' +emoji[round_pushpin]='\xF0\x9F\x93\x8D' +emoji[paperclip]='\xF0\x9F\x93\x8E' +emoji[straight_ruler]='\xF0\x9F\x93\x8F' +emoji[triangular_ruler]='\xF0\x9F\x93\x90' +emoji[bookmark_tabs]='\xF0\x9F\x93\x91' +emoji[ledger]='\xF0\x9F\x93\x92' +emoji[notebook]='\xF0\x9F\x93\x93' +emoji[notebook_with_decorative_cover]='\xF0\x9F\x93\x94' +emoji[closed_book]='\xF0\x9F\x93\x95' +emoji[open_book]='\xF0\x9F\x93\x96' +emoji[green_book]='\xF0\x9F\x93\x97' +emoji[blue_book]='\xF0\x9F\x93\x98' +emoji[orange_book]='\xF0\x9F\x93\x99' +emoji[books]='\xF0\x9F\x93\x9A' +emoji[name_badge]='\xF0\x9F\x93\x9B' +emoji[scroll]='\xF0\x9F\x93\x9C' +emoji[memo]='\xF0\x9F\x93\x9D' +emoji[telephone_receiver]='\xF0\x9F\x93\x9E' +emoji[pager]='\xF0\x9F\x93\x9F' +emoji[fax_machine]='\xF0\x9F\x93\xA0' +emoji[satellite_antenna]='\xF0\x9F\x93\xA1' +emoji[public_address_loudspeaker]='\xF0\x9F\x93\xA2' +emoji[cheering_megaphone]='\xF0\x9F\x93\xA3' +emoji[outbox_tray]='\xF0\x9F\x93\xA4' +emoji[inbox_tray]='\xF0\x9F\x93\xA5' +emoji[package]='\xF0\x9F\x93\xA6' +emoji[e_mail_symbol]='\xF0\x9F\x93\xA7' +emoji[incoming_envelope]='\xF0\x9F\x93\xA8' +emoji[envelope_with_downwards_arrow_above]='\xF0\x9F\x93\xA9' +emoji[closed_mailbox_with_lowered_flag]='\xF0\x9F\x93\xAA' +emoji[closed_mailbox_with_raised_flag]='\xF0\x9F\x93\xAB' +emoji[postbox]='\xF0\x9F\x93\xAE' +emoji[newspaper]='\xF0\x9F\x93\xB0' +emoji[mobile_phone]='\xF0\x9F\x93\xB1' +emoji[mobile_phone_with_rightwards_arrow_at_left]='\xF0\x9F\x93\xB2' +emoji[vibration_mode]='\xF0\x9F\x93\xB3' +emoji[mobile_phone_off]='\xF0\x9F\x93\xB4' +emoji[antenna_with_bars]='\xF0\x9F\x93\xB6' +emoji[camera]='\xF0\x9F\x93\xB7' +emoji[video_camera]='\xF0\x9F\x93\xB9' +emoji[television]='\xF0\x9F\x93\xBA' +emoji[radio]='\xF0\x9F\x93\xBB' +emoji[videocassette]='\xF0\x9F\x93\xBC' +emoji[clockwise_downwards_and_upwards_open_circle_arrows]='\xF0\x9F\x94\x83' +emoji[speaker_with_three_sound_waves]='\xF0\x9F\x94\x8A' +emoji[battery]='\xF0\x9F\x94\x8B' +emoji[electric_plug]='\xF0\x9F\x94\x8C' +emoji[left_pointing_magnifying_glass]='\xF0\x9F\x94\x8D' +emoji[right_pointing_magnifying_glass]='\xF0\x9F\x94\x8E' +emoji[lock_with_ink_pen]='\xF0\x9F\x94\x8F' +emoji[closed_lock_with_key]='\xF0\x9F\x94\x90' +emoji[key]='\xF0\x9F\x94\x91' +emoji[lock]='\xF0\x9F\x94\x92' +emoji[open_lock]='\xF0\x9F\x94\x93' +emoji[bell]='\xF0\x9F\x94\x94' +emoji[bookmark]='\xF0\x9F\x94\x96' +emoji[link_symbol]='\xF0\x9F\x94\x97' +emoji[radio_button]='\xF0\x9F\x94\x98' +emoji[back_with_leftwards_arrow_above]='\xF0\x9F\x94\x99' +emoji[end_with_leftwards_arrow_above]='\xF0\x9F\x94\x9A' +emoji[on_with_exclamation_mark_with_left_right_arrow_above]='\xF0\x9F\x94\x9B' +emoji[soon_with_rightwards_arrow_above]='\xF0\x9F\x94\x9C' +emoji[top_with_upwards_arrow_above]='\xF0\x9F\x94\x9D' +emoji[no_one_under_eighteen_symbol]='\xF0\x9F\x94\x9E' +emoji[keycap_ten]='\xF0\x9F\x94\x9F' +emoji[input_symbol_for_latin_capital_letters]='\xF0\x9F\x94\xA0' +emoji[input_symbol_for_latin_small_letters]='\xF0\x9F\x94\xA1' +emoji[input_symbol_for_numbers]='\xF0\x9F\x94\xA2' +emoji[input_symbol_for_symbols]='\xF0\x9F\x94\xA3' +emoji[input_symbol_for_latin_letters]='\xF0\x9F\x94\xA4' +emoji[fire]='\xF0\x9F\x94\xA5' +emoji[electric_torch]='\xF0\x9F\x94\xA6' +emoji[wrench]='\xF0\x9F\x94\xA7' +emoji[hammer]='\xF0\x9F\x94\xA8' +emoji[nut_and_bolt]='\xF0\x9F\x94\xA9' +emoji[hocho]='\xF0\x9F\x94\xAA' +emoji[pistol]='\xF0\x9F\x94\xAB' +emoji[crystal_ball]='\xF0\x9F\x94\xAE' +emoji[six_pointed_star_with_middle_dot]='\xF0\x9F\x94\xAF' +emoji[japanese_symbol_for_beginner]='\xF0\x9F\x94\xB0' +emoji[trident_emblem]='\xF0\x9F\x94\xB1' +emoji[black_square_button]='\xF0\x9F\x94\xB2' +emoji[white_square_button]='\xF0\x9F\x94\xB3' +emoji[large_red_circle]='\xF0\x9F\x94\xB4' +emoji[large_blue_circle]='\xF0\x9F\x94\xB5' +emoji[large_orange_diamond]='\xF0\x9F\x94\xB6' +emoji[large_blue_diamond]='\xF0\x9F\x94\xB7' +emoji[small_orange_diamond]='\xF0\x9F\x94\xB8' +emoji[small_blue_diamond]='\xF0\x9F\x94\xB9' +emoji[up_pointing_red_triangle]='\xF0\x9F\x94\xBA' +emoji[down_pointing_red_triangle]='\xF0\x9F\x94\xBB' +emoji[up_pointing_small_red_triangle]='\xF0\x9F\x94\xBC' +emoji[down_pointing_small_red_triangle]='\xF0\x9F\x94\xBD' +emoji[clock_face_one_oclock]='\xF0\x9F\x95\x90' +emoji[clock_face_two_oclock]='\xF0\x9F\x95\x91' +emoji[clock_face_three_oclock]='\xF0\x9F\x95\x92' +emoji[clock_face_four_oclock]='\xF0\x9F\x95\x93' +emoji[clock_face_five_oclock]='\xF0\x9F\x95\x94' +emoji[clock_face_six_oclock]='\xF0\x9F\x95\x95' +emoji[clock_face_seven_oclock]='\xF0\x9F\x95\x96' +emoji[clock_face_eight_oclock]='\xF0\x9F\x95\x97' +emoji[clock_face_nine_oclock]='\xF0\x9F\x95\x98' +emoji[clock_face_ten_oclock]='\xF0\x9F\x95\x99' +emoji[clock_face_eleven_oclock]='\xF0\x9F\x95\x9A' +emoji[clock_face_twelve_oclock]='\xF0\x9F\x95\x9B' +emoji[mount_fuji]='\xF0\x9F\x97\xBB' +emoji[tokyo_tower]='\xF0\x9F\x97\xBC' +emoji[statue_of_liberty]='\xF0\x9F\x97\xBD' +emoji[silhouette_of_japan]='\xF0\x9F\x97\xBE' +emoji[moyai]='\xF0\x9F\x97\xBF' +emoji[grinning_face]='\xF0\x9F\x98\x80' +emoji[smiling_face_with_halo]='\xF0\x9F\x98\x87' +emoji[smiling_face_with_horns]='\xF0\x9F\x98\x88' +emoji[smiling_face_with_sunglasses]='\xF0\x9F\x98\x8E' +emoji[neutral_face]='\xF0\x9F\x98\x90' +emoji[expressionless_face]='\xF0\x9F\x98\x91' +emoji[confused_face]='\xF0\x9F\x98\x95' +emoji[kissing_face]='\xF0\x9F\x98\x97' +emoji[kissing_face_with_smiling_eyes]='\xF0\x9F\x98\x99' +emoji[face_with_stuck_out_tongue]='\xF0\x9F\x98\x9B' +emoji[worried_face]='\xF0\x9F\x98\x9F' +emoji[frowning_face_with_open_mouth]='\xF0\x9F\x98\xA6' +emoji[anguished_face]='\xF0\x9F\x98\xA7' +emoji[grimacing_face]='\xF0\x9F\x98\xAC' +emoji[face_with_open_mouth]='\xF0\x9F\x98\xAE' +emoji[hushed_face]='\xF0\x9F\x98\xAF' +emoji[sleeping_face]='\xF0\x9F\x98\xB4' +emoji[face_without_mouth]='\xF0\x9F\x98\xB6' +emoji[helicopter]='\xF0\x9F\x9A\x81' +emoji[steam_locomotive]='\xF0\x9F\x9A\x82' +emoji[train]='\xF0\x9F\x9A\x86' +emoji[light_rail]='\xF0\x9F\x9A\x88' +emoji[tram]='\xF0\x9F\x9A\x8A' +emoji[oncoming_bus]='\xF0\x9F\x9A\x8D' +emoji[trolleybus]='\xF0\x9F\x9A\x8E' +emoji[minibus]='\xF0\x9F\x9A\x90' +emoji[oncoming_police_car]='\xF0\x9F\x9A\x94' +emoji[oncoming_taxi]='\xF0\x9F\x9A\x96' +emoji[oncoming_automobile]='\xF0\x9F\x9A\x98' +emoji[articulated_lorry]='\xF0\x9F\x9A\x9B' +emoji[tractor]='\xF0\x9F\x9A\x9C' +emoji[monorail]='\xF0\x9F\x9A\x9D' +emoji[mountain_railway]='\xF0\x9F\x9A\x9E' +emoji[suspension_railway]='\xF0\x9F\x9A\x9F' +emoji[mountain_cableway]='\xF0\x9F\x9A\xA0' +emoji[aerial_tramway]='\xF0\x9F\x9A\xA1' +emoji[rowboat]='\xF0\x9F\x9A\xA3' +emoji[vertical_traffic_light]='\xF0\x9F\x9A\xA6' +emoji[put_litter_in_its_place_symbol]='\xF0\x9F\x9A\xAE' +emoji[do_not_litter_symbol]='\xF0\x9F\x9A\xAF' +emoji[potable_water_symbol]='\xF0\x9F\x9A\xB0' +emoji[non_potable_water_symbol]='\xF0\x9F\x9A\xB1' +emoji[no_bicycles]='\xF0\x9F\x9A\xB3' +emoji[bicyclist]='\xF0\x9F\x9A\xB4' +emoji[mountain_bicyclist]='\xF0\x9F\x9A\xB5' +emoji[no_pedestrians]='\xF0\x9F\x9A\xB7' +emoji[children_crossing]='\xF0\x9F\x9A\xB8' +emoji[shower]='\xF0\x9F\x9A\xBF' +emoji[bathtub]='\xF0\x9F\x9B\x81' +emoji[passport_control]='\xF0\x9F\x9B\x82' +emoji[customs]='\xF0\x9F\x9B\x83' +emoji[baggage_claim]='\xF0\x9F\x9B\x84' +emoji[left_luggage]='\xF0\x9F\x9B\x85' +emoji[earth_globe_europe_africa]='\xF0\x9F\x8C\x8D' +emoji[earth_globe_americas]='\xF0\x9F\x8C\x8E' +emoji[globe_with_meridians]='\xF0\x9F\x8C\x90' +emoji[waxing_crescent_moon_symbol]='\xF0\x9F\x8C\x92' +emoji[waning_gibbous_moon_symbol]='\xF0\x9F\x8C\x96' +emoji[last_quarter_moon_symbol]='\xF0\x9F\x8C\x97' +emoji[waning_crescent_moon_symbol]='\xF0\x9F\x8C\x98' +emoji[new_moon_with_face]='\xF0\x9F\x8C\x9A' +emoji[last_quarter_moon_with_face]='\xF0\x9F\x8C\x9C' +emoji[full_moon_with_face]='\xF0\x9F\x8C\x9D' +emoji[sun_with_face]='\xF0\x9F\x8C\x9E' +emoji[evergreen_tree]='\xF0\x9F\x8C\xB2' +emoji[deciduous_tree]='\xF0\x9F\x8C\xB3' +emoji[lemon]='\xF0\x9F\x8D\x8B' +emoji[pear]='\xF0\x9F\x8D\x90' +emoji[baby_bottle]='\xF0\x9F\x8D\xBC' +emoji[horse_racing]='\xF0\x9F\x8F\x87' +emoji[rugby_football]='\xF0\x9F\x8F\x89' +emoji[european_post_office]='\xF0\x9F\x8F\xA4' +emoji[rat]='\xF0\x9F\x90\x80' +emoji[mouse]='\xF0\x9F\x90\x81' +emoji[ox]='\xF0\x9F\x90\x82' +emoji[water_buffalo]='\xF0\x9F\x90\x83' +emoji[cow]='\xF0\x9F\x90\x84' +emoji[tiger]='\xF0\x9F\x90\x85' +emoji[leopard]='\xF0\x9F\x90\x86' +emoji[rabbit]='\xF0\x9F\x90\x87' +emoji[cat]='\xF0\x9F\x90\x88' +emoji[dragon]='\xF0\x9F\x90\x89' +emoji[crocodile]='\xF0\x9F\x90\x8A' +emoji[whale]='\xF0\x9F\x90\x8B' +emoji[ram]='\xF0\x9F\x90\x8F' +emoji[goat]='\xF0\x9F\x90\x90' +emoji[rooster]='\xF0\x9F\x90\x93' +emoji[dog]='\xF0\x9F\x90\x95' +emoji[pig]='\xF0\x9F\x90\x96' +emoji[dromedary_camel]='\xF0\x9F\x90\xAA' +emoji[busts_in_silhouette]='\xF0\x9F\x91\xA5' +emoji[two_men_holding_hands]='\xF0\x9F\x91\xAC' +emoji[two_women_holding_hands]='\xF0\x9F\x91\xAD' +emoji[thought_balloon]='\xF0\x9F\x92\xAD' +emoji[banknote_with_euro_sign]='\xF0\x9F\x92\xB6' +emoji[banknote_with_pound_sign]='\xF0\x9F\x92\xB7' +emoji[open_mailbox_with_raised_flag]='\xF0\x9F\x93\xAC' +emoji[open_mailbox_with_lowered_flag]='\xF0\x9F\x93\xAD' +emoji[postal_horn]='\xF0\x9F\x93\xAF' +emoji[no_mobile_phones]='\xF0\x9F\x93\xB5' +emoji[twisted_rightwards_arrows]='\xF0\x9F\x94\x80' +emoji[clockwise_rightwards_and_leftwards_open_circle_arrows]='\xF0\x9F\x94\x81' +emoji[clockwise_rightwards_and_leftwards_open_circle_arrows_with_circled_one_overlay]='\xF0\x9F\x94\x82' +emoji[anticlockwise_downwards_and_upwards_open_circle_arrows]='\xF0\x9F\x94\x84' +emoji[low_brightness_symbol]='\xF0\x9F\x94\x85' +emoji[high_brightness_symbol]='\xF0\x9F\x94\x86' +emoji[speaker_with_cancellation_stroke]='\xF0\x9F\x94\x87' +emoji[speaker_with_one_sound_wave]='\xF0\x9F\x94\x89' +emoji[bell_with_cancellation_stroke]='\xF0\x9F\x94\x95' +emoji[microscope]='\xF0\x9F\x94\xAC' +emoji[telescope]='\xF0\x9F\x94\xAD' +emoji[clock_face_one_thirty]='\xF0\x9F\x95\x9C' +emoji[clock_face_two_thirty]='\xF0\x9F\x95\x9D' +emoji[clock_face_three_thirty]='\xF0\x9F\x95\x9E' +emoji[clock_face_four_thirty]='\xF0\x9F\x95\x9F' +emoji[clock_face_five_thirty]='\xF0\x9F\x95\xA0' +emoji[clock_face_six_thirty]='\xF0\x9F\x95\xA1' +emoji[clock_face_seven_thirty]='\xF0\x9F\x95\xA2' +emoji[clock_face_eight_thirty]='\xF0\x9F\x95\xA3' +emoji[clock_face_nine_thirty]='\xF0\x9F\x95\xA4' +emoji[clock_face_ten_thirty]='\xF0\x9F\x95\xA5' +emoji[clock_face_eleven_thirty]='\xF0\x9F\x95\xA6' +emoji[clock_face_twelve_thirty]='\xF0\x9F\x95\xA7' + +emoji_fruits=( + tomato + aubergine + grapes + melon + watermelon + tangerine + banana + pineapple + red_apple + green_apple + peach + cherries + strawberry + lemon + pear +) + +emoji_vehicles=( + airplane + rocket + railway_car + high_speed_train + high_speed_train_with_bullet_nose + bus + ambulance + fire_engine + police_car + taxi + automobile + recreational_vehicle + delivery_truck + ship + speedboat + bicycle + helicopter + steam_locomotive + train + light_rail + tram + oncoming_bus + trolleybus + minibus + oncoming_police_car + oncoming_taxi + oncoming_automobile + articulated_lorry + tractor + monorail + mountain_railway + suspension_railway + mountain_cableway + aerial_tramway + rowboat + bicyclist + mountain_bicyclist + sailboat +) + +emoji_animals=( + snail + snake + horse + sheep + monkey + chicken + boar + elephant + octopus + spiral_shell + bug + ant + honeybee + lady_beetle + fish + tropical_fish + blowfish + turtle + hatching_chick + baby_chick + front_facing_baby_chick + bird + penguin + koala + poodle + bactrian_camel + dolphin + mouse_face + cow_face + tiger_face + rabbit_face + cat_face + dragon_face + spouting_whale + horse_face + monkey_face + dog_face + pig_face + frog_face + hamster_face + wolf_face + bear_face + panda_face + rat + mouse + ox + water_buffalo + cow + tiger + leopard + rabbit + cat + dragon + crocodile + whale + ram + goat + rooster + dog + pig + dromedary_camel +) + +emoji_faces=( + grinning_face_with_smiling_eyes + face_with_tears_of_joy + smiling_face_with_open_mouth + smiling_face_with_open_mouth_and_smiling_eyes + smiling_face_with_open_mouth_and_cold_sweat + smiling_face_with_open_mouth_and_tightly_closed_eyes + winking_face + smiling_face_with_smiling_eyes + face_savouring_delicious_food + relieved_face + smiling_face_with_heart_shaped_eyes + smirking_face + unamused_face + face_with_cold_sweat + pensive_face + confounded_face + face_throwing_a_kiss + kissing_face_with_closed_eyes + face_with_stuck_out_tongue_and_winking_eye + face_with_stuck_out_tongue_and_tightly_closed_eyes + disappointed_face + angry_face + pouting_face + crying_face + persevering_face + face_with_look_of_triumph + disappointed_but_relieved_face + fearful_face + weary_face + sleepy_face + tired_face + loudly_crying_face + face_with_open_mouth_and_cold_sweat + face_screaming_in_fear + astonished_face + flushed_face + dizzy_face + face_with_medical_mask +) + +function random_emoji(){ + local emoji_array_size=${#emoji[@]} + local random_element_index=$(( ( RANDOM % $emoji_array_size ) + 1 )) + echo ${emoji[@][$random_element_index]} +} + +function random_emoji_from_list(){ + local array_name=$1 + local list_size=${#${(P)array_name}[@]} + local random_index=$(( ( RANDOM % $list_size ) + 1 )) + local key=${${(P)array_name}[@][$random_index]} + echo ${emoji[$key]} +} + +function display_emoji_list(){ + local array_name=$1 + for i in ${${(P)array_name}[@]}; do + echo "${emoji[$i]} = $i" + done +} + +function random_emoji_fruit(){ + random_emoji_from_list 'emoji_fruits' +} + +function random_emoji_vehicle(){ + random_emoji_from_list 'emoji_vehicles' +} + +function random_emoji_animal(){ + random_emoji_from_list 'emoji_animals' +} + +function random_emoji_face(){ + random_emoji_from_list 'emoji_faces' +} + +function display_emoji_fruits(){ + display_emoji_list 'emoji_fruits' +} + +function display_emoji_vehicles(){ + display_emoji_list 'emoji_vehicles' +} + +function display_emoji_animals(){ + display_emoji_list 'emoji_animals' +} + +function display_emoji_faces(){ + display_emoji_list 'emoji_faces' +} + +function display_all_emoji(){ + echo $emoji[@] + echo + for k in ${(k)emoji}; do + echo "${emoji[$k]} = $k" + done +} + From 1274a5e3ab23720e64cf2044cdbe6aa86d402864 Mon Sep 17 00:00:00 2001 From: Zbigniew Siciarz Date: Mon, 9 Jun 2014 21:03:09 +0200 Subject: [PATCH 0026/1175] Added cabal freeze subcommand. --- plugins/cabal/cabal.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/cabal/cabal.plugin.zsh b/plugins/cabal/cabal.plugin.zsh index b59438f98..148af5ccf 100644 --- a/plugins/cabal/cabal.plugin.zsh +++ b/plugins/cabal/cabal.plugin.zsh @@ -24,6 +24,7 @@ function _cabal_commands() { "configure:Prepare to build the package" "exec:Run a command with the cabal environment" "fetch:Downloads packages for later installation" + "freeze:Freeze dependencies." "get:Gets a package's source code" "haddock:Generate Haddock HTML documentation" "help:Help about commands" From 9c11202fde61bf3db6755f4083c320d710fe3bd5 Mon Sep 17 00:00:00 2001 From: frantzmiccoli Date: Fri, 13 Jun 2014 20:28:37 +0200 Subject: [PATCH 0027/1175] fix `-nt` usage --- plugins/phing/phing.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/phing/phing.plugin.zsh b/plugins/phing/phing.plugin.zsh index 9af03af24..1f022047c 100644 --- a/plugins/phing/phing.plugin.zsh +++ b/plugins/phing/phing.plugin.zsh @@ -1,6 +1,6 @@ _phing_does_target_list_need_generating () { [ ! -f .phing_targets ] && return 0; - [ .phing_targets -nt build.xml ] && return 0; + [ build.xml -nt .phing_targets ] && return 0; return 1; } From 676fb4e4203eae0f3755a729a6582eb32fe9834f Mon Sep 17 00:00:00 2001 From: Simon Buchan Date: Thu, 3 Jul 2014 13:14:02 +1200 Subject: [PATCH 0028/1175] Fix parse_git_dirty() when status.branch is set. --- lib/git.zsh | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/lib/git.zsh b/lib/git.zsh index b0e73bf3a..8742a857a 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -10,23 +10,20 @@ function git_prompt_info() { # Checks if working tree is dirty parse_git_dirty() { - local SUBMODULE_SYNTAX='' - local GIT_STATUS='' - local CLEAN_MESSAGE='nothing to commit (working directory clean)' + local STATUS='' + local FLAGS + FLAGS=('--porcelain') if [[ "$(command git config --get oh-my-zsh.hide-status)" != "1" ]]; then if [[ $POST_1_7_2_GIT -gt 0 ]]; then - SUBMODULE_SYNTAX="--ignore-submodules=dirty" + FLAGS+='--ignore-submodules=dirty' fi if [[ "$DISABLE_UNTRACKED_FILES_DIRTY" == "true" ]]; then - GIT_STATUS=$(command git status -s ${SUBMODULE_SYNTAX} -uno 2> /dev/null | tail -n1) - else - GIT_STATUS=$(command git status -s ${SUBMODULE_SYNTAX} 2> /dev/null | tail -n1) - fi - if [[ -n $GIT_STATUS ]]; then - echo "$ZSH_THEME_GIT_PROMPT_DIRTY" - else - echo "$ZSH_THEME_GIT_PROMPT_CLEAN" + FLAGS+='--untracked-files=no' fi + STATUS=$(command git status ${FLAGS} 2> /dev/null | tail -n1) + fi + if [[ -n $STATUS ]]; then + echo "$ZSH_THEME_GIT_PROMPT_DIRTY" else echo "$ZSH_THEME_GIT_PROMPT_CLEAN" fi From 2927ce37141d52a8b4e2ca1e60d0cf0688125781 Mon Sep 17 00:00:00 2001 From: Simon Buchan Date: Thu, 3 Jul 2014 14:45:49 +1200 Subject: [PATCH 0029/1175] Fix POST_1_7_2_GIT check for parse_git_dirty submodules. --- lib/git.zsh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/git.zsh b/lib/git.zsh index 8742a857a..55ed94a3d 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -124,12 +124,16 @@ function git_compare_version() { INSTALLED_GIT_VERSION=(${(s/./)INSTALLED_GIT_VERSION[3]}); for i in {1..3}; do + if [[ $INSTALLED_GIT_VERSION[$i] -gt $INPUT_GIT_VERSION[$i] ]]; then + echo 1 + return 0 + fi if [[ $INSTALLED_GIT_VERSION[$i] -lt $INPUT_GIT_VERSION[$i] ]]; then echo -1 return 0 fi done - echo 1 + echo 0 } #this is unlikely to change so make it all statically assigned From 5e328e3a9c0784521ae4170f7958183c352bae83 Mon Sep 17 00:00:00 2001 From: Moinak Ghosh Date: Fri, 11 Jul 2014 18:41:49 +0530 Subject: [PATCH 0030/1175] Solaris portability tweaks. --- lib/completion.zsh | 7 ++++++- oh-my-zsh.sh | 1 + plugins/colored-man/colored-man.plugin.zsh | 21 +++++++++++++++++++++ tools/check_for_upgrade.sh | 8 +++++++- 4 files changed, 35 insertions(+), 2 deletions(-) diff --git a/lib/completion.zsh b/lib/completion.zsh index fa1d97f48..faea36118 100644 --- a/lib/completion.zsh +++ b/lib/completion.zsh @@ -25,7 +25,12 @@ bindkey -M menuselect '^o' accept-and-infer-next-history zstyle ':completion:*:*:*:*:*' menu select zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;34=0=01' -zstyle ':completion:*:*:*:*:processes' command "ps -u `whoami` -o pid,user,comm -w -w" +if [ "$PLAT" = "SunOS" ] +then + zstyle ':completion:*:*:*:*:processes' command "ps -u `whoami` -o pid,user,comm" +else + zstyle ':completion:*:*:*:*:processes' command "ps -u `whoami` -o pid,user,comm -w -w" +fi # disable named-directories autocompletion zstyle ':completion:*:cd:*' tag-order local-directories directory-stack path-directories diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index c217b91bb..4683c2bc0 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -1,3 +1,4 @@ +PLAT=`uname -s` # Check for updates on initial load... if [ "$DISABLE_AUTO_UPDATE" != "true" ]; then /usr/bin/env ZSH=$ZSH DISABLE_UPDATE_PROMPT=$DISABLE_UPDATE_PROMPT zsh -f $ZSH/tools/check_for_upgrade.sh diff --git a/plugins/colored-man/colored-man.plugin.zsh b/plugins/colored-man/colored-man.plugin.zsh index 56056284a..4956f4346 100644 --- a/plugins/colored-man/colored-man.plugin.zsh +++ b/plugins/colored-man/colored-man.plugin.zsh @@ -1,3 +1,21 @@ +if [ "${PLAT}" = "SunOS" ] +then + if [ ! -x ${HOME}/bin/nroff ] + then + mkdir -p ${HOME}/bin + cat > ${HOME}/bin/nroff < Date: Tue, 15 Jul 2014 17:42:30 +0200 Subject: [PATCH 0031/1175] [wd] v0.3.1: Improved completion and bug fixes --- plugins/wd/README.md | 28 +++---- plugins/wd/_wd.sh | 15 +--- plugins/wd/wd.plugin.zsh | 4 +- plugins/wd/wd.sh | 159 +++++++++++++++++++++++---------------- 4 files changed, 114 insertions(+), 92 deletions(-) diff --git a/plugins/wd/README.md b/plugins/wd/README.md index f9f4e7ac1..bc0ebe334 100644 --- a/plugins/wd/README.md +++ b/plugins/wd/README.md @@ -2,37 +2,39 @@ **Maintainer:** [mfaerevaag](https://github.com/mfaerevaag) -`wd` (warp directory) lets you jump to custom directories in zsh, without using cd. Why? Because cd seems ineffecient when the folder is frequently visited or has a long path. [Source](https://github.com/mfaerevaag/wd) +`wd` (*warp directory*) lets you jump to custom directories in zsh, without using `cd`. Why? Because `cd` seems ineffecient when the folder is frequently visited or has a long path. [Source](https://github.com/mfaerevaag/wd) ### Usage * Add warp point to current working directory: - wd add test + $ wd add foo If a warp point with the same name exists, use `add!` to overwrite it. - * From an other directory, warp to test with: + Note, a warp point cannot contain colons, or only consist of only spaces and dots. The first will conflict in how `wd` stores the warp points, and the second will conflict other features, as below. - wd test + * From an other directory (not necessarily), warp to `foo` with: - * You can warp back to previous directory, and so on, with the puncticulation syntax: + $ wd foo - wd .. - wd ... + * You can warp back to previous directory, and so on, with this dot syntax: + + $ wd .. + $ wd ... This is a wrapper for the zsh `dirs` function. * Remove warp point test point: - wd rm test - - * List warp points to current directory (stored in `~/.warprc`): - - wd show + $ wd rm foo * List all warp points (stored in `~/.warprc`): - wd ls + $ wd ls + + * List warp points to current directory + + $ wd show * Print usage with no opts or the `help` argument. diff --git a/plugins/wd/_wd.sh b/plugins/wd/_wd.sh index 29df63520..0b03d8fff 100644 --- a/plugins/wd/_wd.sh +++ b/plugins/wd/_wd.sh @@ -5,23 +5,16 @@ zstyle ':completion::complete:wd:*:commands' group-name commands zstyle ':completion::complete:wd:*:warp_points' group-name warp_points zstyle ':completion::complete:wd::' list-grouped -# Call `_wd()` when when trying to complete the command `wd` - zmodload zsh/mapfile + function _wd() { - local ret=1 local CONFIG=$HOME/.warprc - - # Stolen from - # http://stackoverflow.com/questions/9000698/completion-when-program-has-sub-commands - - # local curcontext="$curcontext" state line - # typeset -A opt_args + local ret=1 local -a commands local -a warp_points - warp_points=( "${(f)mapfile[$CONFIG]}" ) - # LIST="${mapfile[$FNAME]}" # Not required unless stuff uses it + + warp_points=( "${(f)mapfile[$CONFIG]//$HOME/~}" ) commands=( 'add:Adds the current working directory to your warp points' diff --git a/plugins/wd/wd.plugin.zsh b/plugins/wd/wd.plugin.zsh index 9800335fc..c0559293d 100644 --- a/plugins/wd/wd.plugin.zsh +++ b/plugins/wd/wd.plugin.zsh @@ -1,7 +1,7 @@ #!/bin/zsh -# WARP -# ==== +# WARP DIRECTORY +# ============== # oh-my-zsh plugin # # @github.com/mfaerevaag/wd diff --git a/plugins/wd/wd.sh b/plugins/wd/wd.sh index 9ebad6808..dfb9ad89a 100755 --- a/plugins/wd/wd.sh +++ b/plugins/wd/wd.sh @@ -1,7 +1,7 @@ #!/bin/zsh -# WARP -# ==== +# WARP DIRECTORY +# ============== # Jump to custom directories in terminal # because `cd` takes too long... # @@ -9,26 +9,28 @@ ## variables -CONFIG=$HOME/.warprc +readonly CONFIG=$HOME/.warprc -## colors -BLUE="\033[96m" -GREEN="\033[92m" -YELLOW="\033[93m" -RED="\033[91m" -NOC="\033[m" +# colors +readonly BLUE="\033[96m" +readonly GREEN="\033[92m" +readonly YELLOW="\033[93m" +readonly RED="\033[91m" +readonly NOC="\033[m" +## init + # check if config file exists -if [[ ! -a $CONFIG ]] +if [ ! -e $CONFIG ] then - # if not: create config file - touch $CONFIG + # if not, create config file + touch $CONFIG fi -## load warp points +# load warp points typeset -A points -while read line +while read -r line do arr=(${(s,:,)line}) key=${arr[1]} @@ -39,72 +41,78 @@ done < $CONFIG ## functions -# prepended wd_ to not conflict with your environment (no sub shell) wd_warp() { - if [[ $1 =~ "^\.+$" ]] + local point=$1 + + if [[ $point =~ "^\.+$" ]] then - if [[ $#1 < 2 ]] + if [ $#1 < 2 ] then wd_print_msg $YELLOW "Warping to current directory?" else (( n = $#1 - 1 )) - #wd_print_msg $BLUE "Warping..." cd -$n > /dev/null fi - elif [[ ${points[$1]} != "" ]] + elif [[ ${points[$point]} != "" ]] then - #wd_print_msg $BLUE "Warping..." - cd ${points[$1]} + cd ${points[$point]} else - wd_print_msg $RED "Unknown warp point '$1'" + wd_print_msg $RED "Unknown warp point '${point}'" fi } wd_add() { - if [[ $2 =~ "^\.+$" || $2 =~ "^\s*$" ]] + local force=$1 + local point=$2 + + if [[ $point =~ "^[\.]+$" ]] then - wd_print_msg $RED "Illegal warp point (see README)." - elif [[ ${points[$2]} == "" ]] || $1 + wd_print_msg $RED "Warp point cannot be just dots" + elif [[ $point =~ "(\s|\ )+" ]] then - wd_remove $2 > /dev/null - print "$2:$PWD" >> $CONFIG + wd_print_msg $RED "Warp point should not contain whitespace" + elif [[ $point == *:* ]] + then + wd_print_msg $RED "Warp point cannot contain colons" + elif [[ $point == "" ]] + then + wd_print_msg $RED "Warp point cannot be empty" + elif [[ ${points[$2]} == "" ]] || $force + then + wd_remove $point > /dev/null + printf "%q:%q\n" "${point}" "${PWD}" >> $CONFIG + wd_print_msg $GREEN "Warp point added" else - wd_print_msg $YELLOW "Warp point '$2' already exists. Use 'add!' to overwrite." + wd_print_msg $YELLOW "Warp point '${point}' already exists. Use 'add!' to overwrite." fi } wd_remove() { - if [[ ${points[$1]} != "" ]] + local point=$1 + + if [[ ${points[$point]} != "" ]] then - if wd_tmp=`sed "/^$1:/d" $CONFIG` + if sed -i.bak "s,^${point}:.*$,,g" $CONFIG then - # `>!` forces overwrite - # we need this if people use `setopt NO_CLOBBER` - echo $wd_tmp >! $CONFIG wd_print_msg $GREEN "Warp point removed" else - wd_print_msg $RED "Warp point unsuccessfully removed. Sorry!" + wd_print_msg $RED "Something bad happened! Sorry." fi else wd_print_msg $RED "Warp point was not found" fi } -wd_show() -{ - wd_print_msg $BLUE "Warp points to current directory:" - wd_list_all | grep $PWD$ -} - wd_list_all() { wd_print_msg $BLUE "All warp points:" - while read line + + while IFS= read -r line do if [[ $line != "" ]] then @@ -112,38 +120,52 @@ wd_list_all() key=${arr[1]} val=${arr[2]} - print "\t" $key "\t -> \t" $val + printf "%20s -> %s\n" $key $val fi - done < $CONFIG + done <<< $(sed "s:${HOME}:~:g" $CONFIG) +} + +wd_show() +{ + local cwd=$(print $PWD | sed "s:^${HOME}:~:") + + wd_print_msg $BLUE "Warp points to current directory:" + wd_list_all | grep -e "${cwd}$" } wd_print_msg() { - if [[ $1 == "" || $2 == "" ]] + local color=$1 + local msg=$2 + + if [[ $color == "" || $msg == "" ]] then - print " $RED*$NOC Could not print message. Sorry!" + print " ${RED}*${NOC} Could not print message. Sorry!" else - print " $1*$NOC $2" + print " ${color}*${NOC} ${msg}" fi } wd_print_usage() { - print "Usage: wd [add|-a|--add] [rm|-r|--remove] [ls|-l|--list] " - print "\nCommands:" - print "\t add \t Adds the current working directory to your warp points" - print "\t add! \t Overwrites existing warp point" - print "\t rm \t Removes the given warp point" - print "\t show \t Outputs warp points to current directory" - print "\t ls \t Outputs all stored warp points" - print "\t help \t Show this extremely helpful text" + cat <<- EOF +Usage: wd [add|-a|--add] [rm|-r|--remove] + +Commands: + add Adds the current working directory to your warp points + add! Overwrites existing warp point + rm Removes the given warp point + show Outputs warp points to current directory + ls Outputs all stored warp points + help Show this extremely helpful text +EOF } ## run # get opts -args=`getopt -o a:r:lhs -l add:,rm:,ls,help,show -- $*` +args=$(getopt -o a:r:lhs -l add:,rm:,ls,help,show -- $*) # check if no arguments were given if [[ $? -ne 0 || $#* -eq 0 ]] @@ -151,19 +173,16 @@ then wd_print_usage # check if config file is writeable -elif [[ ! -w $CONFIG ]] +elif [ ! -w $CONFIG ] then - wd_print_msg $RED "\'$CONFIG\' is not writeable." - # do nothing => exit + # do nothing # can't run `exit`, as this would exit the executing shell - # i.e. your terminal + wd_print_msg $RED "\'$CONFIG\' is not writeable." else - #set -- $args # WTF - - for i + for o do - case "$i" + case "$o" in -a|--add|add) wd_add false $2 @@ -190,7 +209,7 @@ else break ;; *) - wd_warp $i + wd_warp $o break ;; --) @@ -200,10 +219,18 @@ else done fi - ## garbage collection # if not, next time warp will pick up variables from this run # remember, there's no sub shell -unset points + +unset wd_warp +unset wd_add +unset wd_remove +unset wd_show +unset wd_list_all +unset wd_print_msg +unset wd_print_usage + unset args +unset points unset val &> /dev/null # fixes issue #1 From bf134e9cb390c7ff464c1278782084bef2fae141 Mon Sep 17 00:00:00 2001 From: Christopher Kochan Date: Tue, 15 Jul 2014 12:37:53 -0700 Subject: [PATCH 0032/1175] Fix for recusion limit hit for _rake_command alias --- plugins/rails/rails.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/rails/rails.plugin.zsh b/plugins/rails/rails.plugin.zsh index fb46cdcf0..824658e44 100644 --- a/plugins/rails/rails.plugin.zsh +++ b/plugins/rails/rails.plugin.zsh @@ -6,7 +6,7 @@ function _rails_command () { elif [ -e "script/server" ]; then ruby script/$@ else - rails $@ + command rails $@ fi } @@ -14,7 +14,7 @@ function _rake_command () { if [ -e "bin/rake" ]; then bin/rake $@ else - rake $@ + command rake $@ fi } From a6b655fae9640873c1629abe7ba25f4823f4b714 Mon Sep 17 00:00:00 2001 From: Markus Faerevaag Date: Fri, 30 May 2014 10:21:16 +0200 Subject: [PATCH 0033/1175] [wd] v0.2.2: Added MIT-License --- plugins/wd/LICENSE | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 plugins/wd/LICENSE diff --git a/plugins/wd/LICENSE b/plugins/wd/LICENSE new file mode 100644 index 000000000..8caa6c6ce --- /dev/null +++ b/plugins/wd/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2014 Markus Færevaag + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file From 5756ea0101dc60f5c5d3874a4a5baf58647aec9d Mon Sep 17 00:00:00 2001 From: ncanceill Date: Tue, 8 Jul 2014 16:49:05 +0200 Subject: [PATCH 0034/1175] Revert "specify python2 in shebang" "/usr/bin/python2" does not exist on Mac OSX (see #2382), so fuck people who have "python" symlinked to "python3" This reverts commit e5ed07e2b5740346d2a32b3a47204612d8808723 --- plugins/git-prompt/gitstatus.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/git-prompt/gitstatus.py b/plugins/git-prompt/gitstatus.py index c665a9ee1..256841432 100644 --- a/plugins/git-prompt/gitstatus.py +++ b/plugins/git-prompt/gitstatus.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python # -*- coding: UTF-8 -*- from subprocess import Popen, PIPE import re From 7478b754a1e53a6c058d7807700869474b68bb21 Mon Sep 17 00:00:00 2001 From: ncanceill Date: Fri, 25 Apr 2014 00:48:37 +0200 Subject: [PATCH 0035/1175] make sure cache dir exists, just like log dir --- cache/.easter-egg | 4 ++++ plugins/zsh_reload/zsh_reload.plugin.zsh | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 cache/.easter-egg diff --git a/cache/.easter-egg b/cache/.easter-egg new file mode 100644 index 000000000..4b6164edb --- /dev/null +++ b/cache/.easter-egg @@ -0,0 +1,4 @@ +This file is only here so that Git will keep a cache directory as .gitignore is ignoring all the files within it. + +Feel free to add love notes for people here. + diff --git a/plugins/zsh_reload/zsh_reload.plugin.zsh b/plugins/zsh_reload/zsh_reload.plugin.zsh index 94945bd48..3f44b99c6 100644 --- a/plugins/zsh_reload/zsh_reload.plugin.zsh +++ b/plugins/zsh_reload/zsh_reload.plugin.zsh @@ -1,10 +1,11 @@ # reload zshrc function src() { + local cache="$ZSH/cache" autoload -U compinit zrecompile - compinit -d "$ZSH/cache/zcomp-$HOST" + compinit -d "$cache/zcomp-$HOST" - for f in ~/.zshrc "$ZSH/cache/zcomp-$HOST"; do + for f in ~/.zshrc "$cache/zcomp-$HOST"; do zrecompile -p $f && command rm -f $f.zwc.old done From 39a1e2a083872ccca63fcc9ead44834627c176cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20K=C3=B6stlin?= Date: Wed, 11 Jul 2012 14:29:54 +0200 Subject: [PATCH 0036/1175] gem plugin: added _files to install command is useful if you want to install a local gem from the filesystem --- plugins/gem/_gem | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/gem/_gem b/plugins/gem/_gem index 25967f1e7..92feebe95 100644 --- a/plugins/gem/_gem +++ b/plugins/gem/_gem @@ -59,6 +59,8 @@ case "$words[1]" in build) _files -g "*.gemspec" ;; + install) + _files ;; list) if [[ "$state" == forms ]]; then _gem_installed From bb928b59c409feacc660a64e800ce9129c058104 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ben=20Z=C3=B6rb?= Date: Thu, 17 Jul 2014 11:27:00 +0200 Subject: [PATCH 0037/1175] #2914 fixed symfony2 autocomplete --- plugins/symfony2/symfony2.plugin.zsh | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/plugins/symfony2/symfony2.plugin.zsh b/plugins/symfony2/symfony2.plugin.zsh index 1d5177e6d..c8c102eee 100644 --- a/plugins/symfony2/symfony2.plugin.zsh +++ b/plugins/symfony2/symfony2.plugin.zsh @@ -1,23 +1,24 @@ # Symfony2 basic command completion +_symfony_console () { + echo "php $(find . -maxdepth 2 -mindepth 1 -name 'console')" +} + _symfony2_get_command_list () { - php $(find . -maxdepth 2 -mindepth 1 -name 'console') --no-ansi | sed "1,/Available commands/d" | awk '/^ [a-z]+/ { print $1 }' + `_symfony_console` --no-ansi | sed "1,/Available commands/d" | awk '/^ [a-z]+/ { print $1 }' } _symfony2 () { - if [ -f $(find . -maxdepth 2 -mindepth 1 -name 'console') ]; then - compadd `_symfony2_get_command_list` - fi + compadd `_symfony2_get_command_list` } -compdef _symfony2 $(find . -maxdepth 2 -mindepth 1 -name 'console') +compdef _symfony2 '`_symfony_console`' compdef _symfony2 sf #Alias -alias sf='php $(find . -maxdepth 2 -mindepth 1 -name 'console') ' -alias sfcl='php $(find . -maxdepth 2 -mindepth 1 -name 'console') cache:clear' -alias sfcw='php $(find . -maxdepth 2 -mindepth 1 -name 'console') cache:warmup' -alias sfroute='php $(find . -maxdepth 2 -mindepth 1 -name 'console') router:debug' -alias sfcontainer='php $(find . -maxdepth 2 -mindepth 1 -name 'console') container:debug' -alias sfgb='php $(find . -maxdepth 2 -mindepth 1 -name 'console') generate:bundle' - +alias sf='`_symfony_console`' +alias sfcl='sf cache:clear' +alias sfcw='sf cache:warmup' +alias sfroute='sf router:debug' +alias sfcontainer='sf container:debug' +alias sfgb='sf generate:bundle' \ No newline at end of file From 73212ded4ee70c010a92eb7a126daa20c7453cba Mon Sep 17 00:00:00 2001 From: Elliott Williams Date: Mon, 21 Jul 2014 11:15:09 -0400 Subject: [PATCH 0038/1175] Fix osx function: "not valid in this context" I have been continually having problems with the "trash" function provided by the osx plugin, getting this error: trash:local:2: not valid in this context: It seems like adding quotes around the assignment in [osx.plugin.zsh#L142](https://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/osx/osx.plugin.zsh#L142) fixed my problem. Does this look good to you? Thanks! --- plugins/osx/osx.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/osx/osx.plugin.zsh b/plugins/osx/osx.plugin.zsh index a63f0ee05..2eea0d8ef 100644 --- a/plugins/osx/osx.plugin.zsh +++ b/plugins/osx/osx.plugin.zsh @@ -139,7 +139,7 @@ function man-preview() { function trash() { local trash_dir="${HOME}/.Trash" - local temp_ifs=$IFS + local temp_ifs="$IFS" IFS=$'\n' for item in "$@"; do if [[ -e "$item" ]]; then From 0e00f0b0342cc088c1c3d4163787efb8433b8ea1 Mon Sep 17 00:00:00 2001 From: Shammel Lee Date: Tue, 22 Jul 2014 13:25:04 -0400 Subject: [PATCH 0039/1175] typo line 1: of => or --- plugins/forklift/forklift.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/forklift/forklift.plugin.zsh b/plugins/forklift/forklift.plugin.zsh index b0e60a434..692ca5790 100644 --- a/plugins/forklift/forklift.plugin.zsh +++ b/plugins/forklift/forklift.plugin.zsh @@ -1,4 +1,4 @@ -# Open folder in ForkLift.app of ForkLift2.app from console +# Open folder in ForkLift.app or ForkLift2.app from console # Author: Adam Strzelecki nanoant.com, modified by Bodo Tasche bitboxer.de # Updated to support ForkLift2 by Johan Kaving # From 00b21d5ac322178b9b9e397b0b6178a3d7f4e9ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Ho=CC=88ltje?= Date: Wed, 23 Apr 2014 09:41:09 -0400 Subject: [PATCH 0040/1175] Trust but verify 'scutil' to return ComputerName Apparently, it is possible to set up a Mac such that `scutil --get ComputerName` hasn't been set. This change checks if that fails and falls back to the original mechanism. Closes #2155 Closes #2183 --- oh-my-zsh.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index c217b91bb..8ce29ff38 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -38,9 +38,9 @@ for plugin ($plugins); do done # Figure out the SHORT hostname -if [ -n "$commands[scutil]" ]; then - # OS X - SHORT_HOST=$(scutil --get ComputerName) +if [[ "$OSTYPE" = darwin* ]]; then + # OS X's $HOST changes with dhcp, etc. Use ComputerName if possible. + SHORT_HOST=$(scutil --get ComputerName 2>/dev/null) || SHORT_HOST=${HOST/.*/} else SHORT_HOST=${HOST/.*/} fi From 63bae2aba9c43a70bbb374fc46e287d7bc46cc54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Ho=CC=88ltje?= Date: Wed, 23 Apr 2014 10:13:26 -0400 Subject: [PATCH 0041/1175] Use $OSTYPE instead of uname to speed things up The $OSTYPE variable is set at ZSH compile time and can be safely used to determine the OS of the system. e.g. darwin (os x) --- plugins/battery/battery.plugin.zsh | 2 +- plugins/bundler/bundler.plugin.zsh | 2 +- plugins/jira/jira.plugin.zsh | 2 +- plugins/node/node.plugin.zsh | 2 +- plugins/rake-fast/rake-fast.plugin.zsh | 2 +- plugins/sublime/sublime.plugin.zsh | 2 +- plugins/web-search/web-search.plugin.zsh | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/plugins/battery/battery.plugin.zsh b/plugins/battery/battery.plugin.zsh index 32dd4b624..014bb15dd 100644 --- a/plugins/battery/battery.plugin.zsh +++ b/plugins/battery/battery.plugin.zsh @@ -8,7 +8,7 @@ # Modified to add support for Apple Mac # ########################################### -if [[ $(uname) == "Darwin" ]] ; then +if [[ "$OSTYPE" = darwin* ]] ; then function battery_pct() { local smart_battery_status="$(ioreg -rc "AppleSmartBattery")" diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh index 617dcde71..ba3d3f623 100644 --- a/plugins/bundler/bundler.plugin.zsh +++ b/plugins/bundler/bundler.plugin.zsh @@ -54,7 +54,7 @@ bundle_install() { if _bundler-installed && _within-bundled-project; then local bundler_version=`bundle version | cut -d' ' -f3` if [[ $bundler_version > '1.4.0' || $bundler_version = '1.4.0' ]]; then - if [[ "$(uname)" == 'Darwin' ]] + if [[ "$OSTYPE" = darwin* ]] then local cores_num="$(sysctl hw.ncpu | awk '{print $2}')" else diff --git a/plugins/jira/jira.plugin.zsh b/plugins/jira/jira.plugin.zsh index 3d510e430..e4881151e 100644 --- a/plugins/jira/jira.plugin.zsh +++ b/plugins/jira/jira.plugin.zsh @@ -12,7 +12,7 @@ # jira ABC-123 # Opens an existing issue open_jira_issue () { local open_cmd - if [[ $(uname -s) == 'Darwin' ]]; then + if [[ "$OSTYPE" = darwin* ]]; then open_cmd='open' else open_cmd='xdg-open' diff --git a/plugins/node/node.plugin.zsh b/plugins/node/node.plugin.zsh index 2d78f2b4c..39d8b10d9 100644 --- a/plugins/node/node.plugin.zsh +++ b/plugins/node/node.plugin.zsh @@ -3,7 +3,7 @@ function node-docs { # get the open command local open_cmd - if [[ $(uname -s) == 'Darwin' ]]; then + if [[ "$OSTYPE" = darwin* ]]; then open_cmd='open' else open_cmd='xdg-open' diff --git a/plugins/rake-fast/rake-fast.plugin.zsh b/plugins/rake-fast/rake-fast.plugin.zsh index cb84f69a1..cfc9a079f 100644 --- a/plugins/rake-fast/rake-fast.plugin.zsh +++ b/plugins/rake-fast/rake-fast.plugin.zsh @@ -10,7 +10,7 @@ _rake_refresh () { _rake_does_task_list_need_generating () { if [ ! -f .rake_tasks ]; then return 0; else - if [[ $(uname -s) == 'Darwin' ]]; then + if [[ "$OSTYPE" = darwin* ]]; then accurate=$(stat -f%m .rake_tasks) changed=$(stat -f%m Rakefile) else diff --git a/plugins/sublime/sublime.plugin.zsh b/plugins/sublime/sublime.plugin.zsh index 438f386fb..5acc75cc7 100644 --- a/plugins/sublime/sublime.plugin.zsh +++ b/plugins/sublime/sublime.plugin.zsh @@ -17,7 +17,7 @@ if [[ $('uname') == 'Linux' ]]; then fi done -elif [[ $('uname') == 'Darwin' ]]; then +elif [[ "$OSTYPE" = darwin* ]]; then local _sublime_darwin_paths > /dev/null 2>&1 _sublime_darwin_paths=( "/usr/local/bin/subl" diff --git a/plugins/web-search/web-search.plugin.zsh b/plugins/web-search/web-search.plugin.zsh index 8eedb90ee..f056e38e8 100644 --- a/plugins/web-search/web-search.plugin.zsh +++ b/plugins/web-search/web-search.plugin.zsh @@ -4,7 +4,7 @@ function web_search() { # get the open command local open_cmd - if [[ $(uname -s) == 'Darwin' ]]; then + if [[ "$OSTYPE" = darwin* ]]; then open_cmd='open' else open_cmd='xdg-open' From db3dd6d755776daf19b55f6a1cae080ae684030a Mon Sep 17 00:00:00 2001 From: Guerki Date: Tue, 29 Jul 2014 09:21:10 +0200 Subject: [PATCH 0042/1175] Run Web-search as a Background Process with Nohup --- plugins/web-search/web-search.plugin.zsh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/plugins/web-search/web-search.plugin.zsh b/plugins/web-search/web-search.plugin.zsh index 8eedb90ee..e157a389d 100644 --- a/plugins/web-search/web-search.plugin.zsh +++ b/plugins/web-search/web-search.plugin.zsh @@ -1,7 +1,6 @@ # web_search from terminal function web_search() { - # get the open command local open_cmd if [[ $(uname -s) == 'Darwin' ]]; then @@ -38,8 +37,8 @@ function web_search() { done url="${url%?}" # remove the last '+' - - $open_cmd "$url" + nohup $open_cmd "$url" + rm nohup.out } From 0174feef0d57ac4110d2603ce2a25a5de4739414 Mon Sep 17 00:00:00 2001 From: Abhas Mittal Date: Thu, 31 Jul 2014 18:24:01 +0530 Subject: [PATCH 0043/1175] Update README.textile Added instructions for installing zsh (due to the problems with first time zsh users) --- README.textile | 1 + 1 file changed, 1 insertion(+) diff --git a/README.textile b/README.textile index 28bab6b2c..143e87cab 100644 --- a/README.textile +++ b/README.textile @@ -7,6 +7,7 @@ bq. "OH MY ZSHELL!" h2. Setup @oh-my-zsh@ should work with any recent release of "zsh":http://www.zsh.org/, the minimum recommended version is 4.3.9. +You can install zsh using the command: @sudo apt-get install zsh@. h3. The automatic installer... (do you trust me?) From fbdacbfb1ae586af1008fe561bc3962d78a5973f Mon Sep 17 00:00:00 2001 From: Abhas Mittal Date: Thu, 31 Jul 2014 18:32:57 +0530 Subject: [PATCH 0044/1175] Update README.textile --- README.textile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.textile b/README.textile index 143e87cab..5900c95d8 100644 --- a/README.textile +++ b/README.textile @@ -7,7 +7,7 @@ bq. "OH MY ZSHELL!" h2. Setup @oh-my-zsh@ should work with any recent release of "zsh":http://www.zsh.org/, the minimum recommended version is 4.3.9. -You can install zsh using the command: @sudo apt-get install zsh@. +If not already, install zsh using the command line first. h3. The automatic installer... (do you trust me?) From e5ac5009a4c5efbc1b9916d74d082ffc32761a4c Mon Sep 17 00:00:00 2001 From: Adam Poskitt Date: Thu, 31 Jul 2014 21:30:15 +0100 Subject: [PATCH 0045/1175] Update rvm.plugin.zsh Ruby 2.1.1 -> Ruby 2.1.2. --- plugins/rvm/rvm.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/rvm/rvm.plugin.zsh b/plugins/rvm/rvm.plugin.zsh index ad23e18d7..234ac1642 100644 --- a/plugins/rvm/rvm.plugin.zsh +++ b/plugins/rvm/rvm.plugin.zsh @@ -6,7 +6,7 @@ alias gemsets='rvm gemset list' local ruby18='ruby-1.8.7' local ruby19='ruby-1.9.3' local ruby20='ruby-2.0.0' -local ruby21='ruby-2.1.1' +local ruby21='ruby-2.1.2' function rb18 { if [ -z "$1" ]; then From 80323ec4c3497e49c8294752e96b033426ae09db Mon Sep 17 00:00:00 2001 From: Josh Medeski Date: Thu, 31 Jul 2014 19:37:22 -0500 Subject: [PATCH 0046/1175] WP-CLI plugin init --- plugins/wp-cli/wp-cli.plugin.zsh | 138 +++++++++++++++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100644 plugins/wp-cli/wp-cli.plugin.zsh diff --git a/plugins/wp-cli/wp-cli.plugin.zsh b/plugins/wp-cli/wp-cli.plugin.zsh new file mode 100644 index 000000000..5d9551e24 --- /dev/null +++ b/plugins/wp-cli/wp-cli.plugin.zsh @@ -0,0 +1,138 @@ +# WP-CLI +# A command line interface for WordPress +# http://wp-cli.org/ + +# Cache + +# Cap + +# CLI + +# Comment + +# Core +alias wpcc='wp core config' +alias wpcd='wp core download' +alias wpci='wp core install' +alias wpcii='wp core is-installed' +alias wpcmc='wp core multisite-convert' +alias wpcmi='wp core multisite-install' +alias wpcu='wp core update' +alias wpcudb='wp core update-db' +alias wpcvc='wp core verify-checksums' + +# Cron +alias wpcre='wp cron event' +alias wpcrs='wp cron schedule' +alias wpcrt='wp cron test' + +# Db + +# Eval + +# Eval-File + +# Export + +# Help + +# Import + +# Media + +# Menu +alias wpmc='wp menu create' +alias wpmd='wp menu delete' +alias wpmi='wp menu item' +alias wpml='wp menu list' +alias wpmlo='wp menu location' + +# Network + +# Option + +# Plugin +alias wppa='activate' +alias wppda='deactivate' +alias wppd='delete' +alias wppg='get' +alias wppi='install' +alias wppis='is-installed' +alias wppl='list' +alias wppp='path' +alias wpps='search' +alias wppst='status' +alias wppt='toggle' +alias wppu='uninstall' +alias wppu='update' + +# Post +alias wppoc='wp post create' +alias wppod='wp post delete' +alias wppoe='wp post edit' +alias wppogen='wp post generate' +alias wppog='wp post get' +alias wppol='wp post list' +alias wppom='wp post meta' +alias wppou='wp post update' +alias wppou='wp post url' + +# Rewrite + +# Role + +# Scaffold + +# Search-Replace + +# Shell + +# Sidebar +alias wpsbl='wp sidebar list' + +# Site + +# Super-Admin + +# Term + +# Theme +alias wpta='wp theme activate' +alias wptd='wp theme delete' +alias wptdis='wp theme disable' +alias wpte='wp theme enable' +alias wptg='wp theme get' +alias wpti='wp theme install' +alias wptis='wp theme is-installed' +alias wptl='wp theme list' +alias wptm='wp theme mod' +alias wptp='wp theme path' +alias wpts='wp theme search' +alias wptst='wp theme status' +alias wptu='wp theme updatet' + +# Transient + +# User +alias wpuac='wp user add-cap' +alias wpuar='wp user add-role' +alias wpuc='wp user create' +alias wpud='wp user delete' +alias wpugen='wp user generate' +alias wpug='wp user get' +alias wpui='wp user import-csv' +alias wpul='wp user list' +alias wpulc='wp user list-caps' +alias wpum='wp user meta' +alias wpurc='wp user remove-cap' +alias wpurr='wp user remove-role' +alias wpusr='wp user set-role' +alias wpuu='wp user update' + +# Widget +alias wpwa='wp widget add' +alias wpwda='wp widget deactivate' +alias wpwd='wp widget delete' +alias wpwl='wp widget list' +alias wpwm='wp widget move' +alias wpwu='wp widget update' From 961ca143b81fe5d15f67bd3a61fe174e41e155b5 Mon Sep 17 00:00:00 2001 From: Carlos Chacin Date: Fri, 1 Aug 2014 01:59:45 -0400 Subject: [PATCH 0047/1175] TomEE maven plugin + integration-test in common life-cycle --- plugins/mvn/mvn.plugin.zsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/mvn/mvn.plugin.zsh b/plugins/mvn/mvn.plugin.zsh index a70625fcf..0c4f77162 100644 --- a/plugins/mvn/mvn.plugin.zsh +++ b/plugins/mvn/mvn.plugin.zsh @@ -64,7 +64,7 @@ alias mvns='mvn site' function listMavenCompletions { reply=( # common lifecycle - clean process-resources compile process-test-resources test-compile test package verify install deploy site + clean process-resources compile process-test-resources test-compile test integration-test package verify install deploy site # common plugins deploy failsafe install site surefire checkstyle javadoc jxr pmd ant antrun archetype assembly dependency enforcer gpg help release repository source eclipse idea jetty cargo jboss tomcat tomcat6 tomcat7 exec versions war ear ejb android scm buildnumber nexus repository sonar license hibernate3 liquibase flyway gwt @@ -129,6 +129,8 @@ function listMavenCompletions { tomcat6:run tomcat6:run-war tomcat6:run-war-only tomcat6:stop tomcat6:deploy tomcat6:undeploy # tomcat7 tomcat7:run tomcat7:run-war tomcat7:run-war-only tomcat7:deploy + # tomee + tomee:run tomee:run-war tomee:run-war-only tomee:stop tomee:deploy tomee:undeploy # spring-boot spring-boot:run spring-boot:repackage # exec From 8a43d358c1d433c32fd940d3ff19cfa2f3fcf20c Mon Sep 17 00:00:00 2001 From: Nico Revin Date: Fri, 1 Aug 2014 23:32:38 +0400 Subject: [PATCH 0048/1175] fix paclist() for non-english locales --- plugins/archlinux/archlinux.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/archlinux/archlinux.plugin.zsh b/plugins/archlinux/archlinux.plugin.zsh index bffe9657a..82c8d8a23 100644 --- a/plugins/archlinux/archlinux.plugin.zsh +++ b/plugins/archlinux/archlinux.plugin.zsh @@ -55,7 +55,7 @@ alias pacmir='sudo pacman -Syy' # Force refresh of all package li # https://bbs.archlinux.org/viewtopic.php?id=93683 paclist() { - sudo pacman -Qei $(pacman -Qu|cut -d" " -f 1)|awk ' BEGIN {FS=":"}/^Name/{printf("\033[1;36m%s\033[1;37m", $2)}/^Description/{print $2}' + LC_ALL=C pacman -Qei $(pacman -Qu|cut -d" " -f 1)|awk ' BEGIN {FS=":"}/^Name/{printf("\033[1;36m%s\033[1;37m", $2)}/^Description/{print $2}' } alias paclsorphans='sudo pacman -Qdt' From 4f1ee6c1eed04345c458458006a15381d35d8080 Mon Sep 17 00:00:00 2001 From: Jim Remsik Date: Fri, 1 Aug 2014 20:16:33 -0500 Subject: [PATCH 0049/1175] Add gap (git add --patch) --- plugins/git/git.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 9f7819df3..44c4617fb 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -70,6 +70,7 @@ alias gss='git status -s' compdef _git gss=git-status alias ga='git add' compdef _git ga=git-add +alias gap='git add --patch' alias gm='git merge' compdef _git gm=git-merge alias grh='git reset HEAD' From 397a9f7b7bfd88678c5b10d2c3e96c0768677434 Mon Sep 17 00:00:00 2001 From: Adam Poskitt Date: Sat, 2 Aug 2014 11:43:32 +0100 Subject: [PATCH 0050/1175] Update README.textile --- README.textile | 84 +++++++++++++++++++++++++------------------------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/README.textile b/README.textile index 5900c95d8..09cff2135 100644 --- a/README.textile +++ b/README.textile @@ -1,111 +1,111 @@ !https://s3.amazonaws.com/ohmyzsh/oh-my-zsh-logo.png! -oh-my-zsh is an open source, community-driven framework for managing your ZSH configuration. It comes bundled with a ton of helpful functions, helpers, plugins, themes, and few things that make you shout... +@oh-my-zsh@ is an open source, community-driven framework for managing your "Zsh":http://www.zsh.org/ configuration. + +It comes bundled with a ton of helpful functions, helpers, plugins, themes, and a few things that make you shout… bq. "OH MY ZSHELL!" h2. Setup -@oh-my-zsh@ should work with any recent release of "zsh":http://www.zsh.org/, the minimum recommended version is 4.3.9. -If not already, install zsh using the command line first. +@oh-my-zsh@ should work with any recent release of "Zsh":http://www.zsh.org/. The minimum recommended version is *4.3.9*. -h3. The automatic installer... (do you trust me?) +If not already installed, you can install "Zsh":http://www.zsh.org/ using the command-line. -You can install this via the command line with either @curl@ or @wget@. +h3. The automatic installer… do you trust me? -h4. via @curl@ +You can install this via the command-line with either @curl@ or @wget@. + +h4. via @curl@: @curl -L http://install.ohmyz.sh | sh@ -h4. via @wget@ +h4. via @wget@: @wget --no-check-certificate http://install.ohmyz.sh -O - | sh@ -h4. Optional: change the install directory +h4. *Optionally*, change the install directory: The default location is @~/.oh-my-zsh@ (hidden in your home directory). -You can change the install directory with the ZSH environment variable, either -by running @export ZSH=/your/path@ before installing, or setting it before the -end of the install pipeline like this: +You can change the install directory with the @ZSH@ environment variable, either by running @export ZSH=/your/path@ before installing, or by setting it before the end of the install pipeline like this: @curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | ZSH=~/.dotfiles/zsh sh@ - h3. The manual way -1. Clone the repository +1. Clone the repository: - @git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh@ +@git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh@ -2. *OPTIONAL* Backup your existing @~/.zshrc@ file +2. *Optionally*, backup your existing @~/.zshrc@ file: - @cp ~/.zshrc ~/.zshrc.orig@ +@cp ~/.zshrc ~/.zshrc.orig@ -3. Create a new zsh config by copying the zsh template we've provided. +3. Create a new "Zsh":http://www.zsh.org/ config file by copying the "Zsh":http://www.zsh.org/ template we've provided: - @cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc@ +@cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc@ -4. Set zsh as your default shell: +4. Set "Zsh":http://www.zsh.org/ as your default shell: - @chsh -s /bin/zsh@ +@chsh -s /bin/zsh@ -5. Start / restart zsh (open a new terminal is easy enough...) +5. Start or restart "Zsh":http://www.zsh.org/ by opening a new command-line window. h3. Problems? -You _might_ need to modify your @PATH@ in @~/.zshrc@ if you're not able to find some commands after switching to _Oh My Zsh_. +You _might_ need to modify your @PATH@ in @~/.zshrc@ if you're not able to find some commands after switching to @oh-my-zsh@. -If you installed manually or changed the install location, check ZSH in @~/.zshrc@ +If you installed manually or changed the install location, check the @ZSH@ environment variable in @~/.zshrc@. h2. Usage -* enable the plugins you want in your @~/.zshrc@ (take a look at the @plugins/@ directory and the "wiki":https://github.com/robbyrussell/oh-my-zsh/wiki/Plugins to see what's possible) +* enable the plugins you want in your @~/.zshrc@ (take a look at the @plugins/@ directory and the "wiki":https://github.com/robbyrussell/oh-my-zsh/wiki/Plugins to see what's available) ** example: @plugins=(git osx ruby)@ -* Theme support: Change the @ZSH_THEME@ environment variable in @~/.zshrc@. -** Take a look at the "current themes":https://wiki.github.com/robbyrussell/oh-my-zsh/themes that come bundled with _Oh My Zsh_. -* much much more... take a look at @lib/@ what _Oh My Zsh_ offers... +* theme support: change the @ZSH_THEME@ environment variable in @~/.zshrc@ +** take a look at the @themes/@ directory and the "wiki":https://wiki.github.com/robbyrussell/oh-my-zsh/themes to see what comes bundled with @oh-my-zsh@ +* & much, much more… take a look at the @lib/@ directory to see what @oh-my-zsh@ has to offer… h2. Useful -the "refcard":http://www.bash2zsh.com/zsh_refcard/refcard.pdf is pretty tasty for tips. +The "refcard":http://www.bash2zsh.com/zsh_refcard/refcard.pdf is pretty useful for tips. h3. Customization -If you want to override any of the default behavior, just add a new file (ending in @.zsh@) into the @custom/@ directory. -If you have many functions which go well together you can put them as a @*.plugin.zsh@ file in the @custom/plugins/@ directory and then enable this plugin. -If you would like to override the functionality of a plugin distributed with oh-my-zsh, create a plugin of the same name in the @custom/plugins/@ directory and it will be loaded instead of the one in @plugins/@. +If you want to override any of the default behaviors, just add a new file (ending in @.zsh@) in the @custom/@ directory. + +If you have many functions that go well together, you can put them as a @*.plugin.zsh@ file in the @custom/plugins/@ directory and then enable this plugin (see '"Usage":https://github.com/robbyrussell/oh-my-zsh#usage' above). + +If you would like to override the functionality of a plugin distributed with @oh-my-zsh@, create a plugin of the same name in the @custom/plugins/@ directory and it will be loaded instead of the one in @plugins/@. h3. Updates -By default you will be prompted to check for updates. If you would like oh-my-zsh to automatically update itself without prompting you, set the following in your @~/.zshrc@ +By default you will be prompted to check for upgrades. If you would like @oh-my-zsh@ to automatically upgrade itself without prompting you, set the following in your @~/.zshrc@: @DISABLE_UPDATE_PROMPT=true@ -To disable updates entirely, put this in your @~/.zshrc@ +To disable upgrades entirely, set the following in your @~/.zshrc@: @DISABLE_AUTO_UPDATE=true@ -To upgrade directly from the command line, just run @upgrade_oh_my_zsh@ +To upgrade directly from the command-line, just run @upgrade_oh_my_zsh@. h3. Uninstalling -If you want to uninstall it, just run @uninstall_oh_my_zsh@ from the command line and it'll remove itself and revert you to bash (or your previous zsh config). +If you want to uninstall @oh-my-zsh@, just run @uninstall_oh_my_zsh@ from the command-line and it'll remove itself and revert you to @bash@ (or your previous "Zsh":http://www.zsh.org/ configuration). h2. Help out! -I'm far from being a zsh-expert and suspect there are many ways to improve. If you have ideas on how to make the configuration easier to maintain (and faster), don't hesitate to fork and send pull requests! +I'm far from being a "Zsh":http://www.zsh.org/ expert and suspect there are many ways to improve – if you have ideas on how to make the configuration easier to maintain (and faster), don't hesitate to fork and send pull requests! -h3. (Don't) Send us your theme! (for now) +h3. (Don't) send us your theme (for now)! --I'm hoping to collect a bunch of themes for our command prompts. You can see existing ones in the @themes/@ directory.- +-I'm hoping to collect a bunch of themes – you can see existing ones in the @themes/@ directory.- -We have enough themes for the time being. Please fork the project and add on in there, you can let people know how to grab it from there. +We have enough themes for the time being. Please fork the project and add on in there – you can let people know how to grab it from there. h2. Contributors -This project wouldn't exist without all of our awesome users and contributors. - -* "View our growing list of contributors":https://github.com/robbyrussell/oh-my-zsh/contributors +This project wouldn't exist without all of our awesome users and contributors: "view our growing list of contributors":https://github.com/robbyrussell/oh-my-zsh/contributors Thank you so much! From fdb30392b15ef0b7edd6d670340d1ba390f4a7b8 Mon Sep 17 00:00:00 2001 From: Adam Poskitt Date: Mon, 4 Aug 2014 15:10:11 +0100 Subject: [PATCH 0051/1175] Update half-life.zsh-theme Add spaces before bullet-points to more easily distinguish them from one another and the rest of the prompt when using smaller font-sizes and do not add a blank line prior to prompt output; if there's a desire for spacing, one can use their terminal's line-height to achieve this. --- themes/half-life.zsh-theme | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/themes/half-life.zsh-theme b/themes/half-life.zsh-theme index c8d09ce47..1bf4c7432 100644 --- a/themes/half-life.zsh-theme +++ b/themes/half-life.zsh-theme @@ -51,8 +51,8 @@ zstyle ':vcs_info:*:prompt:*' check-for-changes true PR_RST="%{${reset_color}%}" FMT_BRANCH=" on %{$turquoise%}%b%u%c${PR_RST}" FMT_ACTION=" performing a %{$limegreen%}%a${PR_RST}" -FMT_UNSTAGED="%{$orange%}●" -FMT_STAGED="%{$limegreen%}●" +FMT_UNSTAGED="%{$orange%} ●" +FMT_STAGED="%{$limegreen%} ●" zstyle ':vcs_info:*:prompt:*' unstagedstr "${FMT_UNSTAGED}" zstyle ':vcs_info:*:prompt:*' stagedstr "${FMT_STAGED}" @@ -83,7 +83,7 @@ function steeef_precmd { # check for untracked files or updated submodules, since vcs_info doesn't if [[ ! -z $(git ls-files --other --exclude-standard 2> /dev/null) ]]; then PR_GIT_UPDATE=1 - FMT_BRANCH="${PM_RST} on %{$turquoise%}%b%u%c%{$hotpink%}●${PR_RST}" + FMT_BRANCH="${PM_RST} on %{$turquoise%}%b%u%c%{$hotpink%} ●${PR_RST}" else FMT_BRANCH="${PM_RST} on %{$turquoise%}%b%u%c${PR_RST}" fi @@ -95,5 +95,4 @@ function steeef_precmd { } add-zsh-hook precmd steeef_precmd -PROMPT=$' -%{$purple%}%n%{$reset_color%} in %{$limegreen%}%~%{$reset_color%}$(rvm-prompt " with%{$fg[red]%} " v g "%{$reset_color%}")$vcs_info_msg_0_%{$orange%} λ%{$reset_color%} ' +PROMPT=$'%{$purple%}%n%{$reset_color%} in %{$limegreen%}%~%{$reset_color%}$(rvm-prompt " with%{$fg[red]%} " v g "%{$reset_color%}")$vcs_info_msg_0_%{$orange%} λ%{$reset_color%} ' From 89f1d94a3052e2eabd3e86b856eada8e51fc65b4 Mon Sep 17 00:00:00 2001 From: Frederik Mogensen Date: Sun, 7 Aug 2011 21:43:32 +0200 Subject: [PATCH 0052/1175] Added autocompleting plugin for Android Debug Bridge (adb). --- plugins/adb/_adb | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 plugins/adb/_adb diff --git a/plugins/adb/_adb b/plugins/adb/_adb new file mode 100644 index 000000000..1efcb9eb0 --- /dev/null +++ b/plugins/adb/_adb @@ -0,0 +1,37 @@ +#compdef adb +#autoload + +# in order to make this work, you will need to have the android adb tools + +# adb zsh completion, based on homebrew completion + +local -a _1st_arguments +_1st_arguments=( +'bugreport:return all information from the device that should be included in a bug report.' +'connect:connect to a device via TCP/IP Port 5555 is default.' +'devices:list all connected devices' +'disconnect:disconnect from a TCP/IP device. Port 5555 is default.' +'emu:run emulator console command' +'forward:forward socket connections' +'help:show the help message' +'install:push this package file to the device and install it' +'jdwp:list PIDs of processes hosting a JDWP transport' +'logcat:View device log' +'pull:copy file/dir from device' +'push:copy file/dir to device' +'shell:run remote shell interactively' +'sync:copy host->device only if changed (-l means list but dont copy)' +'uninstall:remove this app package from the device' +'version:show version num' +) + +local expl +local -a pkgs installed_pkgs + +_arguments \ + '*:: :->subcmds' && return 0 + +if (( CURRENT == 1 )); then + _describe -t commands "adb subcommand" _1st_arguments + return +fi From 8ad9122ba49bb0a41ca7dbad03cf5438477cc283 Mon Sep 17 00:00:00 2001 From: Frederik Mogensen Date: Tue, 3 Jan 2012 17:12:22 +0100 Subject: [PATCH 0053/1175] Added _files to complete all arguments following the first as files --- plugins/adb/_adb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/adb/_adb b/plugins/adb/_adb index 1efcb9eb0..4c998172d 100644 --- a/plugins/adb/_adb +++ b/plugins/adb/_adb @@ -35,3 +35,5 @@ if (( CURRENT == 1 )); then _describe -t commands "adb subcommand" _1st_arguments return fi + +_files From 78a7c0c6aebc6415040464c704f64bce0c72d049 Mon Sep 17 00:00:00 2001 From: Celso Miranda Date: Sat, 9 Aug 2014 01:04:28 +0100 Subject: [PATCH 0054/1175] Add support for local aur databases With these simple changes the plugin checks for the local AUR database and updates the aliases so it can update it when you issue a `pacupd` or `yaupd`. --- plugins/archlinux/archlinux.plugin.zsh | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/plugins/archlinux/archlinux.plugin.zsh b/plugins/archlinux/archlinux.plugin.zsh index bffe9657a..22d9f0970 100644 --- a/plugins/archlinux/archlinux.plugin.zsh +++ b/plugins/archlinux/archlinux.plugin.zsh @@ -21,10 +21,14 @@ if [[ -x `which yaourt` ]]; then alias yalst='yaourt -Qe' # List installed packages, even those installed from AUR (they're tagged as "local") alias yaorph='yaourt -Qtd' # Remove orphans using yaourt # Additional yaourt alias examples - if [[ -x `which abs` ]]; then + if [[ -x `which abs` && -x `which aur` '']]; then + alias yaupd='yaourt -Sy && sudo abs && sudo aur' # Update and refresh the local package, ABS and AUR databases against repositories + elif [[ -x `which abs` ]]; then alias yaupd='yaourt -Sy && sudo abs' # Update and refresh the local package and ABS databases against repositories + elif [[ -x `which aur` ]]; then + alias yaupd='yaourt -Sy && sudo aur' # Update and refresh the local package and AUR databases against repositories else - alias yaupd='yaourt -Sy' # Update and refresh the local package and ABS databases against repositories + alias yaupd='yaourt -Sy' # Update and refresh the local package database against repositories fi alias yainsd='yaourt -S --asdeps' # Install given package(s) as dependencies of another package alias yamir='yaourt -Syy' # Force refresh of all package lists after updating /etc/pacman.d/mirrorlist @@ -45,10 +49,14 @@ alias pacreps='pacman -Ss' # Search for package(s) in the repositori alias pacloc='pacman -Qi' # Display information about a given package in the local database alias paclocs='pacman -Qs' # Search for package(s) in the local database # Additional pacman alias examples -if [[ -x `which abs` ]]; then - alias pacupd='sudo pacman -Sy && sudo abs' # Update and refresh the local package and ABS databases against repositories +if [[ -x `which abs` && -x `which aur` ]]; then + alias pacupd='sudo pacman -Sy && sudo abs && sudo aur' # Update and refresh the local package, ABS and AUR databases against repositories +elif [[ -x `which abs` ]]; then + alias pacupd='sudo pacman -Sy && sudo abs' # Update and refresh the local package and ABS databases against repositories +elif [[ -x `which aur` ]]; then + alias pacupd='sudo pacman -Sy && sudo aur' # Update and refresh the local package and AUR databases against repositories else - alias pacupd='sudo pacman -Sy' # Update and refresh the local package and ABS databases against repositories + alias pacupd='sudo pacman -Sy' # Update and refresh the local package database against repositories fi alias pacinsd='sudo pacman -S --asdeps' # Install given package(s) as dependencies of another package alias pacmir='sudo pacman -Syy' # Force refresh of all package lists after updating /etc/pacman.d/mirrorlist From 7d208be2a147657d6d8e936e3f03c26b3a936ac8 Mon Sep 17 00:00:00 2001 From: Celso Miranda Date: Sat, 9 Aug 2014 01:09:06 +0100 Subject: [PATCH 0055/1175] bugfix: two wild apostrophes oops --- plugins/archlinux/archlinux.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/archlinux/archlinux.plugin.zsh b/plugins/archlinux/archlinux.plugin.zsh index 22d9f0970..059884c27 100644 --- a/plugins/archlinux/archlinux.plugin.zsh +++ b/plugins/archlinux/archlinux.plugin.zsh @@ -21,7 +21,7 @@ if [[ -x `which yaourt` ]]; then alias yalst='yaourt -Qe' # List installed packages, even those installed from AUR (they're tagged as "local") alias yaorph='yaourt -Qtd' # Remove orphans using yaourt # Additional yaourt alias examples - if [[ -x `which abs` && -x `which aur` '']]; then + if [[ -x `which abs` && -x `which aur` ]]; then alias yaupd='yaourt -Sy && sudo abs && sudo aur' # Update and refresh the local package, ABS and AUR databases against repositories elif [[ -x `which abs` ]]; then alias yaupd='yaourt -Sy && sudo abs' # Update and refresh the local package and ABS databases against repositories From 99e74b04981b2eb66714bf68245115520bcd25f0 Mon Sep 17 00:00:00 2001 From: Cherry NG Date: Sat, 9 Aug 2014 21:40:56 +0800 Subject: [PATCH 0056/1175] rounding to emoji clock --- plugins/emoji-clock/emoji-clock.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/emoji-clock/emoji-clock.plugin.zsh b/plugins/emoji-clock/emoji-clock.plugin.zsh index 7351a02ec..a69446e3c 100644 --- a/plugins/emoji-clock/emoji-clock.plugin.zsh +++ b/plugins/emoji-clock/emoji-clock.plugin.zsh @@ -8,8 +8,8 @@ # ----------------------------------------------------------------------------- function emoji-clock() { - hour=$(date '+%I') - minutes=$(date '+%M') + hour=$(date -v '+15M' '+%I') + minutes=$(date -v '+15M' '+%M') case $hour in 01) clock="🕐"; [ $minutes -ge 30 ] && clock="🕜";; 02) clock="🕑"; [ $minutes -ge 30 ] && clock="🕝";; From 45abe764e55a6c201acb3bf8e602f53e5d5574f0 Mon Sep 17 00:00:00 2001 From: Bruno Oliveira Date: Sat, 9 Aug 2014 12:26:35 -0300 Subject: [PATCH 0057/1175] Inclusion of aliases for sign git commits and tags --- plugins/git/git.plugin.zsh | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 9f7819df3..51a09a053 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -77,6 +77,18 @@ alias grhh='git reset HEAD --hard' alias gclean='git reset --hard && git clean -dfx' alias gwc='git whatchanged -p --abbrev-commit --pretty=medium' +# Sign and verify commits with GPG +alias gcs='git commit -S' +compdef _git gcs=git-commit +alias gsps='git show --pretty=short --show-signature' +compdef _git gsps=git-show + +# Sign and verify tags with GPG +alias gts='git tag -s' +compdef _git gts=git-tag +alias gvt='git verify-tag' +compdef _git gvt=git verify-tag + #remove the gf alias #alias gf='git ls-files | grep' From 9a0196dbf72521319a0fa0db4ae84603c2c79868 Mon Sep 17 00:00:00 2001 From: lundberg Date: Sun, 10 Aug 2014 12:01:47 -0700 Subject: [PATCH 0058/1175] New alias for git plugin: gbr == git branch --remote --- plugins/git/git.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 9f7819df3..cef7926db 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -51,6 +51,7 @@ alias gb='git branch' compdef _git gb=git-branch alias gba='git branch -a' compdef _git gba=git-branch +alias gbr='git branch --remote' alias gcount='git shortlog -sn' compdef gcount=git alias gcl='git config --list' From 49e10ae449d2e5570542e4f9011ea4e2fb14a348 Mon Sep 17 00:00:00 2001 From: Daniel Oaks Date: Thu, 14 Aug 2014 00:01:35 +1000 Subject: [PATCH 0059/1175] Make 'ys' theme use hg repo info too --- themes/ys.zsh-theme | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/themes/ys.zsh-theme b/themes/ys.zsh-theme index a44f295f4..9332b677a 100644 --- a/themes/ys.zsh-theme +++ b/themes/ys.zsh-theme @@ -14,12 +14,35 @@ function box_name { # Directory info. local current_dir='${PWD/#$HOME/~}' +# VCS +YS_VCS_PROMPT_PREFIX1=" %{$fg[white]%}on%{$reset_color%} " +YS_VCS_PROMPT_PREFIX2=":%{$fg[cyan]%}" +YS_VCS_PROMPT_SUFFIX="%{$reset_color%}" +YS_VCS_PROMPT_DIRTY=" %{$fg[red]%}x" +YS_VCS_PROMPT_CLEAN=" %{$fg[green]%}o" + # Git info. local git_info='$(git_prompt_info)' -ZSH_THEME_GIT_PROMPT_PREFIX=" %{$fg[white]%}on%{$reset_color%} git:%{$fg[cyan]%}" -ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" -ZSH_THEME_GIT_PROMPT_DIRTY=" %{$fg[red]%}x" -ZSH_THEME_GIT_PROMPT_CLEAN=" %{$fg[green]%}o" +ZSH_THEME_GIT_PROMPT_PREFIX="${YS_VCS_PROMPT_PREFIX1}git${YS_VCS_PROMPT_PREFIX2}" +ZSH_THEME_GIT_PROMPT_SUFFIX="$YS_VCS_PROMPT_SUFFIX" +ZSH_THEME_GIT_PROMPT_DIRTY="$YS_VCS_PROMPT_DIRTY" +ZSH_THEME_GIT_PROMPT_CLEAN="$YS_VCS_PROMPT_CLEAN" + +# HG info +local hg_info='$(ys_hg_prompt_info)' +ys_hg_prompt_info() { + # make sure this is a hg dir + if [ -d '.hg' ]; then + echo -n "${YS_VCS_PROMPT_PREFIX1}hg${YS_VCS_PROMPT_PREFIX2}" + echo -n $(hg branch 2>/dev/null) + if [ -n "$(hg status 2>/dev/null)" ]; then + echo -n "$YS_VCS_PROMPT_DIRTY" + else + echo -n "$YS_VCS_PROMPT_CLEAN" + fi + echo -n "$YS_VCS_PROMPT_SUFFIX" + fi +} # Prompt format: \n # USER at MACHINE in DIRECTORY on git:BRANCH STATE [TIME] \n $ PROMPT=" @@ -29,6 +52,7 @@ PROMPT=" %{$fg[green]%}$(box_name) \ %{$fg[white]%}in \ %{$terminfo[bold]$fg[yellow]%}${current_dir}%{$reset_color%}\ +${hg_info}\ ${git_info} \ %{$fg[white]%}[%*] %{$terminfo[bold]$fg[red]%}$ %{$reset_color%}" @@ -41,6 +65,7 @@ PROMPT=" %{$fg[green]%}$(box_name) \ %{$fg[white]%}in \ %{$terminfo[bold]$fg[yellow]%}${current_dir}%{$reset_color%}\ +${hg_info}\ ${git_info} \ %{$fg[white]%}[%*] %{$terminfo[bold]$fg[red]%}$ %{$reset_color%}" From df1b0b328983dba57b4cea123b5a05c24493ae8f Mon Sep 17 00:00:00 2001 From: Tom Cammann Date: Tue, 19 Aug 2014 15:42:39 +0100 Subject: [PATCH 0060/1175] Update jira plugin to allow lookup of issues Plugin now supports lookup of tickets by assignee and reporter --- plugins/jira/jira.plugin.zsh | 41 ++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/plugins/jira/jira.plugin.zsh b/plugins/jira/jira.plugin.zsh index 3d510e430..a6d08410f 100644 --- a/plugins/jira/jira.plugin.zsh +++ b/plugins/jira/jira.plugin.zsh @@ -26,7 +26,7 @@ open_jira_issue () { jira_url=$JIRA_URL else echo "JIRA url is not specified anywhere." - return 0 + return 1 fi if [ -f .jira-prefix ]; then @@ -39,7 +39,9 @@ open_jira_issue () { if [ -z "$1" ]; then echo "Opening new issue" - $open_cmd "$jira_url/secure/CreateIssue!default.jspa" + $open_cmd "${jira_url}/secure/CreateIssue!default.jspa" + elif [[ "$1" = "assigned" || "$1" = "reported" ]]; then + jira_query $@ else echo "Opening issue #$1" if [[ "x$JIRA_RAPID_BOARD" = "xtrue" ]]; then @@ -50,4 +52,39 @@ open_jira_issue () { fi } +jira_name () { + if [[ -z "$1" ]]; then + if [[ "x${JIRA_NAME}" != "x" ]]; then + jira_name=${JIRA_NAME} + else + echo "JIRA_NAME not specified" + return 1 + fi + else + jira_name=$@ + fi +} + +jira_query () { + verb="$1" + if [[ "${verb}" = "reported" ]]; then + lookup=reporter + preposition=by + elif [[ "${verb}" = "assigned" ]]; then + lookup=assignee + preposition=to + else + echo "not a valid lookup $verb" + return 1 + fi + shift 1 + jira_name $@ + if [[ $? = 1 ]]; then + return 1 + fi + 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" +} + alias jira='open_jira_issue' + From eee7345f1f01df5f66151bc5bf34d8e2110224aa Mon Sep 17 00:00:00 2001 From: Alex Shadrin Date: Wed, 20 Aug 2014 13:57:28 +0300 Subject: [PATCH 0061/1175] Resets the font colour to original --- themes/fino.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/fino.zsh-theme b/themes/fino.zsh-theme index 35e6e02c1..411dec9b9 100644 --- a/themes/fino.zsh-theme +++ b/themes/fino.zsh-theme @@ -35,7 +35,7 @@ local prompt_char='$(prompt_char)' PROMPT="╭─%{$FG[040]%}%n%{$reset_color%} %{$FG[239]%}at%{$reset_color%} %{$FG[033]%}$(box_name)%{$reset_color%} %{$FG[239]%}in%{$reset_color%} %{$terminfo[bold]$FG[226]%}${current_dir}%{$reset_color%}${git_info} %{$FG[239]%}using%{$FG[243]%}${ruby_env} -╰─${prompt_char} " +╰─${prompt_char}%{$reset_color%} " ZSH_THEME_GIT_PROMPT_PREFIX=" %{$FG[239]%}on%{$reset_color%} %{$fg[255]%}" ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" From dac2a6e27a23071226495bfee54b390135cb20b6 Mon Sep 17 00:00:00 2001 From: Fredrik Fornwall Date: Wed, 20 Aug 2014 23:52:05 +0200 Subject: [PATCH 0062/1175] Replace /usr/bin/env with env Some environments (such as Android) does not have /usr/bin. --- lib/functions.zsh | 4 ++-- oh-my-zsh.sh | 2 +- tools/check_for_upgrade.sh | 2 +- tools/install.sh | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/functions.zsh b/lib/functions.zsh index fda84a953..17f5f9cbf 100644 --- a/lib/functions.zsh +++ b/lib/functions.zsh @@ -3,11 +3,11 @@ function zsh_stats() { } function uninstall_oh_my_zsh() { - /usr/bin/env ZSH=$ZSH /bin/sh $ZSH/tools/uninstall.sh + env ZSH=$ZSH /bin/sh $ZSH/tools/uninstall.sh } function upgrade_oh_my_zsh() { - /usr/bin/env ZSH=$ZSH /bin/sh $ZSH/tools/upgrade.sh + env ZSH=$ZSH /bin/sh $ZSH/tools/upgrade.sh } function take() { diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index c217b91bb..a90b3e98a 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -1,6 +1,6 @@ # Check for updates on initial load... if [ "$DISABLE_AUTO_UPDATE" != "true" ]; then - /usr/bin/env ZSH=$ZSH DISABLE_UPDATE_PROMPT=$DISABLE_UPDATE_PROMPT zsh -f $ZSH/tools/check_for_upgrade.sh + env ZSH=$ZSH DISABLE_UPDATE_PROMPT=$DISABLE_UPDATE_PROMPT zsh -f $ZSH/tools/check_for_upgrade.sh fi # Initializes Oh My Zsh diff --git a/tools/check_for_upgrade.sh b/tools/check_for_upgrade.sh index 8b8ecae03..35e074297 100644 --- a/tools/check_for_upgrade.sh +++ b/tools/check_for_upgrade.sh @@ -9,7 +9,7 @@ function _update_zsh_update() { } function _upgrade_zsh() { - /usr/bin/env ZSH=$ZSH /bin/sh $ZSH/tools/upgrade.sh + env ZSH=$ZSH /bin/sh $ZSH/tools/upgrade.sh # update the zsh file _update_zsh_update } diff --git a/tools/install.sh b/tools/install.sh index fc7ad70cf..7efab10b9 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -10,7 +10,7 @@ if [ -d "$ZSH" ]; then fi echo "\033[0;34mCloning Oh My Zsh...\033[0m" -hash git >/dev/null 2>&1 && /usr/bin/env git clone https://github.com/robbyrussell/oh-my-zsh.git $ZSH || { +hash git >/dev/null 2>&1 && env git clone https://github.com/robbyrussell/oh-my-zsh.git $ZSH || { echo "git not installed" exit } @@ -43,5 +43,5 @@ echo "\033[0;32m"'\____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/ '"\033[0m echo "\033[0;32m"' /____/ ....is now installed!'"\033[0m" echo "\n\n \033[0;32mPlease look over the ~/.zshrc file to select plugins, themes, and options.\033[0m" echo "\n\n \033[0;32mp.s. Follow us at http://twitter.com/ohmyzsh.\033[0m" -/usr/bin/env zsh +env zsh . ~/.zshrc From 91ba6d98875c70d0736fd3eecd0ee4aae52cdc74 Mon Sep 17 00:00:00 2001 From: Mathieu Comandon Date: Thu, 21 Aug 2014 12:47:48 +0200 Subject: [PATCH 0063/1175] Don't try running chsh if user already runs zsh --- tools/install.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/install.sh b/tools/install.sh index fc7ad70cf..fc0a9fa64 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -32,8 +32,10 @@ sed -i -e "/export PATH=/ c\\ export PATH=\"$PATH\" " ~/.zshrc -echo "\033[0;34mTime to change your default shell to zsh!\033[0m" -chsh -s `which zsh` +if [ "$SHELL" != "$(which zsh)" ]; then + echo "\033[0;34mTime to change your default shell to zsh!\033[0m" + chsh -s `which zsh` +fi echo "\033[0;32m"' __ __ '"\033[0m" echo "\033[0;32m"' ____ / /_ ____ ___ __ __ ____ _____/ /_ '"\033[0m" From 5d6c73d7d38930443bdc4357c337e0baf7d5b5fb Mon Sep 17 00:00:00 2001 From: DariusPHP Date: Fri, 22 Aug 2014 10:21:38 +0300 Subject: [PATCH 0064/1175] #git plugin git diff-tree --name-only added --- plugins/git/git.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 9f7819df3..a76bb1cdf 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -7,6 +7,8 @@ alias gd='git diff' compdef _git gd=git-diff alias gdc='git diff --cached' compdef _git gdc=git-diff +alias gdt='git diff-tree --no-commit-id --name-only -r' +compdef _git gdc=git diff-tree --no-commit-id --name-only -r alias gl='git pull' compdef _git gl=git-pull alias gup='git pull --rebase' From aac85f095e302c72b109801063da8d8c4d13af3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1n=20Ko=C5=A1=C4=8Do?= <3k.stanley@gmail.com> Date: Fri, 22 Aug 2014 23:11:52 +0200 Subject: [PATCH 0065/1175] Proper handling of tags --- plugins/geeknote/_geeknote | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/geeknote/_geeknote b/plugins/geeknote/_geeknote index 4d5339f2b..2d1188e84 100644 --- a/plugins/geeknote/_geeknote +++ b/plugins/geeknote/_geeknote @@ -26,6 +26,7 @@ _1st_arguments=( 'tag-list' 'tag-create' 'tag-edit' + 'tag-remove' 'gnsync' 'user' ) @@ -116,7 +117,7 @@ case "$words[1]" in '(-t|--title)'{-t,--title}'[title of tag]' \ ) ;; - tag-create) + tag-edit) _command_args=( '(-tgn|--tagname)'{-tgn,--tagname}'[tag to edit]' \ '(-t|--title)'{-t,--title}'[new tag name]' \ From b3d27be944c36b15900c9e11a6d1495096d43ba1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1n=20Ko=C5=A1=C4=8Do?= <3k.stanley@gmail.com> Date: Fri, 22 Aug 2014 23:12:02 +0200 Subject: [PATCH 0066/1175] Update seach parameter --- plugins/geeknote/_geeknote | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/geeknote/_geeknote b/plugins/geeknote/_geeknote index 2d1188e84..cf1a187d2 100644 --- a/plugins/geeknote/_geeknote +++ b/plugins/geeknote/_geeknote @@ -90,7 +90,7 @@ case "$words[1]" in '(-nb|--notebook)'{-nb,--notebook}'[in which notebook search the note]' \ '(-d|--date)'{-d,--date}'[date in format dd.mm.yyyy or date range dd.mm.yyyy-dd.mm.yyyy]' \ '(-cn|--count)'{-cn,--count}'[how many notes show in the result list]' \ - '(-wu|--with-url)'{-wu,--with-url}'[add direct url of each note in results to Evernote web-version]' \ + '(-uo|--url-only)'{-uo,--url-only}'[add direct url of each note in results to Evernote web-version]' \ '(-ee|--exact-entry)'{-ee,--exact-entry}'[search for exact entry of the request]' \ '(-cs|--content-search)'{-cs,--content-search}'[search by content, not by title]' \ ) From dc9e1764cfd0987f104f57bac0b974e0941f1e42 Mon Sep 17 00:00:00 2001 From: Jingwen Owen Ou Date: Fri, 22 Aug 2014 15:59:17 -0700 Subject: [PATCH 0067/1175] Fix missing add-zsh-hook In older version of zsh, `add-zsh-hook` is not available, causing issues like: ``` /Users/hugo/.oh-my-zsh/lib/termsupport.zsh:32: add-zsh-hook: function definition file not found /Users/hugo/.oh-my-zsh/lib/termsupport.zsh:33: add-zsh-hook: function definition file not found ``` See https://github.com/robbyrussell/oh-my-zsh/issues/748. This patch pulls in the changes suggested in https://github.com/robbyrussell/oh-my-zsh/issues/748#issuecomment-37862691 by @mcornella and I have tested it on RHEL 5. --- lib/termsupport.zsh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index 9c0a430fb..9d6681603 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -34,6 +34,5 @@ function omz_termsupport_preexec { title '$CMD' '%100>...>$LINE%<<' } -autoload -U add-zsh-hook -add-zsh-hook precmd omz_termsupport_precmd -add-zsh-hook preexec omz_termsupport_preexec +precmd_functions+=(omz_termsupport_precmd) +preexec_functions+=(omz_termsupport_preexec) From ac053f4211ef2da6b66bd148a930cfdddd12991f Mon Sep 17 00:00:00 2001 From: sachin21 Date: Sun, 24 Aug 2014 00:50:02 +0900 Subject: [PATCH 0068/1175] This alias is conflict cause --- lib/aliases.zsh | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/aliases.zsh b/lib/aliases.zsh index 3044c9660..aae865046 100644 --- a/lib/aliases.zsh +++ b/lib/aliases.zsh @@ -30,7 +30,6 @@ alias lsa='ls -lah' alias l='ls -lah' alias ll='ls -lh' alias la='ls -lAh' -alias sl=ls # often screw this up alias afind='ack-grep -il' From ee33cee83e78b53ca200b5647b024bcd93f8ee3d Mon Sep 17 00:00:00 2001 From: Igor Zoriy Date: Tue, 26 Aug 2014 01:05:13 +0700 Subject: [PATCH 0069/1175] Added 'uninstall' command to brew completion --- plugins/brew/_brew | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/brew/_brew b/plugins/brew/_brew index 9eb3bb557..40442a1d3 100644 --- a/plugins/brew/_brew +++ b/plugins/brew/_brew @@ -50,6 +50,7 @@ _1st_arguments=( 'server:start a local web app that lets you browse formulae (requires Sinatra)' 'services:small wrapper around `launchctl` for supported formulae' 'tap:tap a new formula repository from GitHub, or list existing taps' + 'uninstall:uninstall a formula' 'unlink:unlink a formula' 'unpin:unpin specified formulae' 'untap:remove a tapped repository' From e20ce81c6663e354f9ef29618e7149800b9a3b26 Mon Sep 17 00:00:00 2001 From: Chris Smith Date: Tue, 26 Aug 2014 08:34:17 -0500 Subject: [PATCH 0070/1175] Adding BBEdit plugin --- plugins/bbedit/bbedit.plugin.zsh | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 plugins/bbedit/bbedit.plugin.zsh diff --git a/plugins/bbedit/bbedit.plugin.zsh b/plugins/bbedit/bbedit.plugin.zsh new file mode 100644 index 000000000..6eec10f21 --- /dev/null +++ b/plugins/bbedit/bbedit.plugin.zsh @@ -0,0 +1,21 @@ +alias bbpb='pbpaste | bbedit --clean --view-top' + +alias bbd=bbdiff + +# +# If the bb command is called without an argument, launch BBEdit +# If bb is passed a directory, cd to it and open it in BBEdit +# If bb is passed a file, open it in BBEdit +# +function bb() { + if [[ -z $1 ]] + then + bbedit --launch + else + bbedit $1 + if [[ -d $1 ]] + then + cd $1 + fi + fi +} From 9eb2118c556b81e4eb0965d3e4bc024e35687aba Mon Sep 17 00:00:00 2001 From: Chris Smith Date: Tue, 26 Aug 2014 08:36:16 -0500 Subject: [PATCH 0071/1175] Adding Marked 2 plugin --- plugins/marked/marked.plugin.zsh | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 plugins/marked/marked.plugin.zsh diff --git a/plugins/marked/marked.plugin.zsh b/plugins/marked/marked.plugin.zsh new file mode 100644 index 000000000..8c014372b --- /dev/null +++ b/plugins/marked/marked.plugin.zsh @@ -0,0 +1,12 @@ +# +# If marked is called without an argument, open Marked +# If marked is passed a file, open it in Marked +# +function marked() { + if [ $1 ] + then + open -a "marked 2.app" $1 + else + open -a "marked 2.app" + fi +} From 325c18736e82d0688f7437cefff23910ebd7cedd Mon Sep 17 00:00:00 2001 From: Chris Smith Date: Tue, 26 Aug 2014 08:37:04 -0500 Subject: [PATCH 0072/1175] Adding Textastic plugin --- plugins/textastic/textastic.plugin.zsh | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 plugins/textastic/textastic.plugin.zsh diff --git a/plugins/textastic/textastic.plugin.zsh b/plugins/textastic/textastic.plugin.zsh new file mode 100644 index 000000000..c34162139 --- /dev/null +++ b/plugins/textastic/textastic.plugin.zsh @@ -0,0 +1,17 @@ +# +# If the tt command is called without an argument, launch Textastic +# If tt is passed a directory, cd to it and open it in Textastic +# If tt is passed a file, open it in Textastic +# +function tt() { + if [[ -z $1 ]] + then + open -a "textastic.app" + else + open -a "textastic.app" $1 + if [[ -d $1 ]] + then + cd $1 + fi + fi +} From 362f2a56d276aebfb8da4e3244994f69899bbdbd Mon Sep 17 00:00:00 2001 From: Chris Smith Date: Wed, 27 Aug 2014 08:27:31 -0500 Subject: [PATCH 0073/1175] Adding quotes around $1 --- plugins/textastic/textastic.plugin.zsh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/textastic/textastic.plugin.zsh b/plugins/textastic/textastic.plugin.zsh index c34162139..f5901eae2 100644 --- a/plugins/textastic/textastic.plugin.zsh +++ b/plugins/textastic/textastic.plugin.zsh @@ -4,14 +4,14 @@ # If tt is passed a file, open it in Textastic # function tt() { - if [[ -z $1 ]] + if [[ -z "$1" ]] then open -a "textastic.app" else - open -a "textastic.app" $1 - if [[ -d $1 ]] + open -a "textastic.app" "$1" + if [[ -d "$1" ]] then - cd $1 + cd "$1" fi fi } From 9be81015d0fcb7864be9cdfe550aeee20c52bf7a Mon Sep 17 00:00:00 2001 From: Chris Smith Date: Wed, 27 Aug 2014 08:31:18 -0500 Subject: [PATCH 0074/1175] Adding quotes around $1 --- plugins/marked/marked.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/marked/marked.plugin.zsh b/plugins/marked/marked.plugin.zsh index 8c014372b..56863ade5 100644 --- a/plugins/marked/marked.plugin.zsh +++ b/plugins/marked/marked.plugin.zsh @@ -3,9 +3,9 @@ # If marked is passed a file, open it in Marked # function marked() { - if [ $1 ] + if [ "$1" ] then - open -a "marked 2.app" $1 + open -a "marked 2.app" "$1" else open -a "marked 2.app" fi From 1b4d4266131eb760fc0cc25aab847a9c08d1c6de Mon Sep 17 00:00:00 2001 From: Chris Smith Date: Wed, 27 Aug 2014 08:34:17 -0500 Subject: [PATCH 0075/1175] Adding quotes around $1 --- plugins/bbedit/bbedit.plugin.zsh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/bbedit/bbedit.plugin.zsh b/plugins/bbedit/bbedit.plugin.zsh index 6eec10f21..fe9e72c65 100644 --- a/plugins/bbedit/bbedit.plugin.zsh +++ b/plugins/bbedit/bbedit.plugin.zsh @@ -8,14 +8,14 @@ alias bbd=bbdiff # If bb is passed a file, open it in BBEdit # function bb() { - if [[ -z $1 ]] + if [[ -z "$1" ]] then bbedit --launch else - bbedit $1 - if [[ -d $1 ]] + bbedit "$1" + if [[ -d "$1" ]] then - cd $1 + cd "$1" fi fi } From 1aadd63cfc98987c42033aeb4d7b826abf1f49ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Thu, 17 Jul 2014 13:46:06 +0200 Subject: [PATCH 0076/1175] Add CONTRIBUTING.md file general structure --- CONTRIBUTING.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 000000000..ae8865b35 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,26 @@ +# CONTRIBUTING GUIDELINE + +1. [Luke, use the search](#luke-use-the-search) +2. [You have a problem](#you-have-a-problem) +3. [You have a solution](#you-have-a-solution) + +**BONUS:** [You have free time to volunteer](#you-have-free-time-to-volunteer) + +## LUKE, USE THE SEARCH + +May the experiences of other people be with you + + +## YOU HAVE A PROBLEM + +See point 1, then look at FAQ or Troubleshooting wiki pages (first we'll have to make them) + + +## YOU HAVE A SOLUTION + +See point 1, then go ahead (unless your solution is yet another theme) + + +## YOU HAVE FREE TIME TO VOLUNTEER + +Cool! From 1e2abe5d4e1cbf29b1630292ec3eb32cb993f49e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Mon, 4 Aug 2014 23:04:53 +0200 Subject: [PATCH 0077/1175] Categories of issues in oh-my-zsh (work-in-progress) --- CONTRIBUTING.md | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ae8865b35..9964c380d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -23,4 +23,20 @@ See point 1, then go ahead (unless your solution is yet another theme) ## YOU HAVE FREE TIME TO VOLUNTEER -Cool! +Cool! Please have a look at the list below to understand how oh-my-zsh categorizes its issues. + +Classification of issues and + +- Bugs, which may be: + - Specific of zsh \* + - Regressions, in which we should summon the author of the offending commit once it is located + +- Feature requests + +- Helpdesk, which may be: + - Specific of zsh \* + - Everything else + +\* In the case of bugs, I see the benefit in going through the trouble of responding to that. After all, oh-my-zsh should be the missing link that makes zsh perfect, and hunting down an upstream bug can lead to a submitted PR. +In the case of helpdesk, minimal response should be done. That is, provide a link to the wiki with the relevant information, or +add it to the FAQ of the wiki and point to it afterwards. From 25a3244353076cbffc8ddb2ee592b94b17383694 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Santiago=20Borraz=C3=A1s?= Date: Sat, 8 Dec 2012 15:31:13 -0300 Subject: [PATCH 0078/1175] Added a link to the file's license and added the commiter as plugin maintaner. --- plugins/pass/_pass | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/plugins/pass/_pass b/plugins/pass/_pass index d8ec38828..f03aa0169 100644 --- a/plugins/pass/_pass +++ b/plugins/pass/_pass @@ -4,10 +4,13 @@ # Copyright (C) 2012: # Johan Venant # Brian Mattern -# Jason A. Donenfeld . -# Santiago Borrazás +# Jason A. Donenfeld # All Rights Reserved. -# This file is licensed under the GPLv2+. Please see COPYING for more information. +# +# This file is licensed under the GPLv2+. +# Please visit http://git.zx2c4.com/password-store/tree/COPYING for more information. +# +# Oh my zsh plugin maintainer: Santiago Borrazás _pass () { From 17dd5792b4a34e65311fda6ab469b98f31cf30df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Sat, 26 Jul 2014 23:23:13 +0200 Subject: [PATCH 0079/1175] Update pass completion to upstream Conflicts: plugins/pass/_pass --- plugins/pass/_pass | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/plugins/pass/_pass b/plugins/pass/_pass index f03aa0169..9c4b669bd 100644 --- a/plugins/pass/_pass +++ b/plugins/pass/_pass @@ -1,10 +1,10 @@ #compdef pass #autoload -# Copyright (C) 2012: +# Copyright (C) 2012 - 2014: # Johan Venant # Brian Mattern -# Jason A. Donenfeld +# Jason A. Donenfeld . # All Rights Reserved. # # This file is licensed under the GPLv2+. @@ -26,8 +26,8 @@ _pass () { case "${cmd}" in init) _arguments : \ - "-r[re-encrypt existing passwords]" \ - "--reencrypt[re-encrypt existing passwords]" + "-p[gpg-id will only be applied to this subfolder]" \ + "--path[gpg-id will only be applied to this subfolder]" _pass_complete_keys ;; ls|list|edit) @@ -46,9 +46,19 @@ _pass () { "-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]" + "--clip[copy password to the clipboard]" \ + "-f[force overwrite]" \ + "--force[force overwrite]" \ + "-i[replace first line]" \ + "--in-place[replace first line]" _pass_complete_entries_with_subdirs ;; + cp|copy|mv|rename) + _arguments : \ + "-f[force rename]" \ + "--force[force rename]" + _pass_complete_entries_with_subdirs + ;; rm) _arguments : \ "-f[force deletion]" \ @@ -78,10 +88,14 @@ _pass () { subcommands=( "init:Initialize new password storage" "ls:List passwords" + "find:Find password files or directories based on pattern" + "grep:Search inside decrypted password files for matching pattern" "show:Decrypt and print a password" "insert:Insert a new password" "generate:Generate a new password using pwgen" "edit:Edit a password with \$EDITOR" + "mv:Rename the password" + "cp:Copy the password" "rm:Remove the password" "git:Call git on the password store" "version:Output version information" @@ -104,7 +118,7 @@ _pass_cmd_show () { _pass_complete_entries_helper () { local IFS=$'\n' local prefix="${PASSWORD_STORE_DIR:-$HOME/.password-store}" - _values -C 'passwords' $(find -L "$prefix" \( -name .git -o -name .gpg-id \) -prune -o $@ -print | sed -e "s#${prefix}.##" -e 's#\.gpg##' | sort) + _values -C 'passwords' $(find -L "$prefix" \( -name .git -o -name .gpg-id \) -prune -o $@ -print | sed -e "s#${prefix}/\{0,1\}##" -e 's#\.gpg##' | sort) } _pass_complete_entries_with_subdirs () { From 142a6c7fd5bcda6c45c25aca582972a7d4e1da85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Sat, 26 Jul 2014 23:26:12 +0200 Subject: [PATCH 0080/1175] Fix pass zsh completion and autoloading When autocompleting from `pass ', sometimes the following errors appear: _values:compvalues:10: not enough arguments find: `/home/user/.password-store': No such file or directory _values:compvalues:10: not enough arguments find: `/home/user/.password-store': No such file or directory The `_values' error happens when there is no password-store folder *or* there are no passwords in pass; the `find' error only when there is no password-store folder. We can trace it back to line 108, which contains the only `_values' statement that is executed when we autocomplete from pass. We confirm this by following the trail of execution, which is _pass -> _pass_cmd_show -> _pass_complete_entries -> -> _pass_complete_entries_helper If we try running the command inside `$()' on line 104, we see that it returns nothing and the output is blank. This means that `_values' only receives 1 of its 2 mandatory parameters, therefore the above error is triggered (not enough arguments). That is unless we don't have a password-store folder, in which case the `find: [...] no such file or directory' error is *also* triggered. We solve the first error by supplying a default value of "" if the command outputs nothing, using the zsh construct ${var:-else}. We solve the second error by redirecting the find command's stderr output to /dev/null, so the error is effectively suppressed. * * * * This patch also fixes the first tab completion, which currently only loads the completion function definition. We do this by adding a `_pass' statement at the end of the file, which runs the `_pass' completion function after loading its definition. This is the standard way an autoloaded function works; for other examples look at zsh's official completion files. --- plugins/pass/_pass | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/pass/_pass b/plugins/pass/_pass index 9c4b669bd..7a9b1f955 100644 --- a/plugins/pass/_pass +++ b/plugins/pass/_pass @@ -118,7 +118,7 @@ _pass_cmd_show () { _pass_complete_entries_helper () { local IFS=$'\n' local prefix="${PASSWORD_STORE_DIR:-$HOME/.password-store}" - _values -C 'passwords' $(find -L "$prefix" \( -name .git -o -name .gpg-id \) -prune -o $@ -print | sed -e "s#${prefix}/\{0,1\}##" -e 's#\.gpg##' | sort) + _values -C 'passwords' ${$(find -L "$prefix" \( -name .git -o -name .gpg-id \) -prune -o $@ -print 2>/dev/null | sed -e "s#${prefix}/\{0,1\}##" -e 's#\.gpg##' | sort):-""} } _pass_complete_entries_with_subdirs () { @@ -134,3 +134,5 @@ _pass_complete_keys () { # 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') } + +_pass From cd98283a92a5b2726e3164653e6b8c674eeedb92 Mon Sep 17 00:00:00 2001 From: Eduardo San Martin Morote Date: Fri, 29 Aug 2014 10:40:08 +0200 Subject: [PATCH 0081/1175] tmuxinator completion update: Current completion plugin isn't up to date and #2075 PR, which is also the completion plugin on the official tmuxinator repository, doesn't work. Thus this should do the trick for the moment. Also suppressed an error when no completion is available --- plugins/tmuxinator/_tmuxinator | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/tmuxinator/_tmuxinator b/plugins/tmuxinator/_tmuxinator index cd227b7df..e4f8b6ce0 100644 --- a/plugins/tmuxinator/_tmuxinator +++ b/plugins/tmuxinator/_tmuxinator @@ -11,10 +11,12 @@ _arguments -C \ case $state in cmds) _values "tmuxinator command" \ + "new[create a new project file and open it in your editor]" \ "start[start a tmux session using project's tmuxinator config]" \ "open[create a new project file and open it in your editor]" \ "copy[copy source_project project file to a new project called new_project]" \ "delete[deletes the project called project_name]" \ + "debug[output the shell commands generated by a projet]" \ "implode[deletes all existing projects!]" \ "list[list all existing projects]" \ "doctor[look for problems in your configuration]" \ @@ -24,9 +26,9 @@ case $state in ;; args) case $line[1] in - start|open|copy|delete) + start|open|copy|delete|debug) _configs=(`find ~/.tmuxinator -name \*.yml | cut -d/ -f5 | sed s:.yml::g`) - _values 'configs' $_configs + [[ -n "$_configs" ]] && _values 'configs' $_configs ret=0 ;; esac From f49220732904ed254400f14e621ea5ebe9e4a5f5 Mon Sep 17 00:00:00 2001 From: "Douglas S.D. Hall" Date: Sat, 30 Aug 2014 17:20:28 +0100 Subject: [PATCH 0082/1175] Amended to source the original aws_zsh_completer.sh rather than the mangled version installed into $(brew-prefix)/bin if using homebrew installed awscli on OSX. This was discussed here - https://github.com/Homebrew/homebrew/issues/30268 --- plugins/aws/aws.plugin.zsh | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/plugins/aws/aws.plugin.zsh b/plugins/aws/aws.plugin.zsh index 3f7fb1995..8b57d7db1 100644 --- a/plugins/aws/aws.plugin.zsh +++ b/plugins/aws/aws.plugin.zsh @@ -1,3 +1,11 @@ +_homebrew-installed() { + type brew &> /dev/null +} + +_awscli-homebrew-installed() { + brew --prefix awscli &> /dev/null +} + export AWS_HOME=~/.aws function agp { @@ -14,4 +22,9 @@ function aws_profiles { } compctl -K aws_profiles asp -source `which aws_zsh_completer.sh` + +if _homebrew-installed && _awscli-homebrew-installed ; then + source $(brew --prefix)/opt/awscli/libexec/bin/aws_zsh_completer.sh +else + source `which aws_zsh_completer.sh` +fi From 14f055d0bb737520edf6dfcf27d3e3d6e3aaa863 Mon Sep 17 00:00:00 2001 From: nervo Date: Sun, 31 Aug 2014 15:41:02 +0200 Subject: [PATCH 0083/1175] Add Composer's local binaries to PATH --- plugins/composer/composer.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/composer/composer.plugin.zsh b/plugins/composer/composer.plugin.zsh index 86f2ca4df..2243dd3c1 100644 --- a/plugins/composer/composer.plugin.zsh +++ b/plugins/composer/composer.plugin.zsh @@ -47,5 +47,5 @@ alias cdu='composer dump-autoload' # install composer in the current directory alias cget='curl -s https://getcomposer.org/installer | php' -# Add Composer's global binaries to PATH -export PATH=$PATH:~/.composer/vendor/bin +# Add Composer's global & local binaries to PATH +export PATH=$PATH:~/.composer/vendor/bin:./bin From a8dad6fa87867ff2629a55e26f78175635a0ad06 Mon Sep 17 00:00:00 2001 From: Chris Smith Date: Sun, 31 Aug 2014 12:55:46 -0500 Subject: [PATCH 0084/1175] Adding README.md --- plugins/textastic/README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 plugins/textastic/README.md diff --git a/plugins/textastic/README.md b/plugins/textastic/README.md new file mode 100644 index 000000000..369c2c137 --- /dev/null +++ b/plugins/textastic/README.md @@ -0,0 +1,15 @@ +## textastic + +Plugin for Textastic, a text and code editor for Mac OS X + +### Requirements + + * [Textastic](http://www.textasticapp.com/mac.html) + +### Usage + + * If `tt` command is called without an argument, launch Textastic + + * If `tt` is passed a directory, cd to it and open it in Textastic + + * If `tt` is passed a file, open it in Textastic From d7f77f818d3f094f42e02554b3c697c0f3d26ed6 Mon Sep 17 00:00:00 2001 From: Chris Smith Date: Sun, 31 Aug 2014 12:56:23 -0500 Subject: [PATCH 0085/1175] Adding README.md --- plugins/bbedit/README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 plugins/bbedit/README.md diff --git a/plugins/bbedit/README.md b/plugins/bbedit/README.md new file mode 100644 index 000000000..ec2b743d6 --- /dev/null +++ b/plugins/bbedit/README.md @@ -0,0 +1,20 @@ +## bbedit + +Plugin for BBEdit, an HTML and text editor for Mac OS X + +### Requirements + + * [BBEdit](http://www.barebones.com/products/bbedit/) + * [BBEdit Command-Line Tools](http://www.barebones.com/support/bbedit/cmd-line-tools.html) + +### Usage + + * If the `bb` command is called without an argument, launch BBEdit + + * If `bb` is passed a directory, cd to it and open it in BBEdit + + * If `bb` is passed a file, open it in BBEdit + + * If `bbpb` create a new BBEdit document with the contents of the clipboard + + * If `bbd` alias for BBEdit diff tool From 9bf5b90c81ce2cbde321c3d6d97d5ff6d561b83c Mon Sep 17 00:00:00 2001 From: Chris Smith Date: Sun, 31 Aug 2014 12:57:58 -0500 Subject: [PATCH 0086/1175] Adding README.md and renaming plugin --- plugins/marked2/README.md | 13 +++++++++++++ .../marked2.plugin.zsh} | 0 2 files changed, 13 insertions(+) create mode 100644 plugins/marked2/README.md rename plugins/{marked/marked.plugin.zsh => marked2/marked2.plugin.zsh} (100%) diff --git a/plugins/marked2/README.md b/plugins/marked2/README.md new file mode 100644 index 000000000..101343abb --- /dev/null +++ b/plugins/marked2/README.md @@ -0,0 +1,13 @@ +## marked2 + +Plugin for Marked 2, a previewer for Markdown files on Mac OS X + +### Requirements + + * [Marked 2](http://marked2app.com) + +### Usage + + * If `marked` is called without an argument, open Marked + + * If `marked` is passed a file, open it in Marked diff --git a/plugins/marked/marked.plugin.zsh b/plugins/marked2/marked2.plugin.zsh similarity index 100% rename from plugins/marked/marked.plugin.zsh rename to plugins/marked2/marked2.plugin.zsh From 9f8d7d85c2cacce54a5839d90b93e90b22228624 Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Sun, 31 Aug 2014 11:30:30 -0700 Subject: [PATCH 0087/1175] Adding link to the store for swag in upgrade process --- tools/upgrade.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/upgrade.sh b/tools/upgrade.sh index 9a8497d96..5f0a81f1d 100644 --- a/tools/upgrade.sh +++ b/tools/upgrade.sh @@ -9,8 +9,8 @@ then printf '\033[0;32m%s\033[0m\n' '\____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/ ' printf '\033[0;32m%s\033[0m\n' ' /____/ ' printf '\033[0;34m%s\033[0m\n' 'Hooray! Oh My Zsh has been updated and/or is at the current version.' - printf '\033[0;34m%s\033[1m%s\033[0m\n' 'To keep up on the latest, be sure to follow Oh My Zsh on twitter: ' 'http://twitter.com/ohmyzsh' + printf '\033[0;34m%s\033[1m%s\033[0m\n' 'To keep up on the latest news and updates, follow us on twitter: ' 'http://twitter.com/ohmyzsh' + printf '\033[0;34m%s\033[1m%s\033[0m\n' 'Get your Oh My Zsh swag at: ' 'http://shop.planetargon.com/' else printf '\033[0;31m%s\033[0m\n' 'There was an error updating. Try again later?' fi - From 671bd0cf4f0face60883a2b476e75e6364d0154e Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Sun, 31 Aug 2014 11:32:07 -0700 Subject: [PATCH 0088/1175] Link to swag in installer... shameless profiting --- tools/install.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/install.sh b/tools/install.sh index 7efab10b9..3ff897a01 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -43,5 +43,6 @@ echo "\033[0;32m"'\____/_/ /_/ /_/ /_/ /_/\__, / /___/____/_/ /_/ '"\033[0m echo "\033[0;32m"' /____/ ....is now installed!'"\033[0m" echo "\n\n \033[0;32mPlease look over the ~/.zshrc file to select plugins, themes, and options.\033[0m" echo "\n\n \033[0;32mp.s. Follow us at http://twitter.com/ohmyzsh.\033[0m" +echo "\n\n \033[0;32mp.p.s. Get stickers and t-shirts at http://shop.planetargon.com.\033[0m" env zsh . ~/.zshrc From 65f97a66c7fa2979ba454e9bcc578854912721d9 Mon Sep 17 00:00:00 2001 From: Tobias Preuss Date: Sun, 31 Aug 2014 21:42:49 +0200 Subject: [PATCH 0089/1175] Add README.md for adb-autocompletion plugin. --- plugins/adb/README.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 plugins/adb/README.md diff --git a/plugins/adb/README.md b/plugins/adb/README.md new file mode 100644 index 000000000..075beec0e --- /dev/null +++ b/plugins/adb/README.md @@ -0,0 +1,8 @@ +# adb autocomplete plugin + +* Adds autocomplete options for all adb commands. + + +## Requirements + +In order to make this work, you will need to have the Android adb tools set up in your path. From e7fdb028b52505947c7c3eb088586590f5b0b8cd Mon Sep 17 00:00:00 2001 From: Michael Stucki Date: Sun, 31 Aug 2014 23:50:59 +0200 Subject: [PATCH 0090/1175] Improve support for Vagrant VM definitions --- plugins/vagrant/_vagrant | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/vagrant/_vagrant b/plugins/vagrant/_vagrant index 9ddfa1be7..f842b4fbb 100644 --- a/plugins/vagrant/_vagrant +++ b/plugins/vagrant/_vagrant @@ -56,7 +56,7 @@ __box_list () __vm_list () { - _wanted application expl 'command' compadd $(command grep Vagrantfile -oe '^[^#]*\.vm\.define *:\([a-zA-Z0-9]\+\)' 2>/dev/null | cut -d: -f2) + _wanted application expl 'command' compadd $(command grep Vagrantfile -oe '^[^#]*\.vm\.define *[:"]\([a-zA-Z0-9_-]\+\)' 2>/dev/null | awk '{print substr($2, 2)}') } __vagrant-box () From 2b83accbf8d8668f4b46e449087317dc90a43873 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C3=96zg=C3=BCr?= Date: Mon, 1 Sep 2014 04:14:03 +0300 Subject: [PATCH 0091/1175] Use the library function for ruby prompt Not everyone uses rvm and the library has already got a function for this. --- themes/half-life.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/half-life.zsh-theme b/themes/half-life.zsh-theme index 1bf4c7432..942affa94 100644 --- a/themes/half-life.zsh-theme +++ b/themes/half-life.zsh-theme @@ -95,4 +95,4 @@ function steeef_precmd { } add-zsh-hook precmd steeef_precmd -PROMPT=$'%{$purple%}%n%{$reset_color%} in %{$limegreen%}%~%{$reset_color%}$(rvm-prompt " with%{$fg[red]%} " v g "%{$reset_color%}")$vcs_info_msg_0_%{$orange%} λ%{$reset_color%} ' +PROMPT=$'%{$purple%}%n%{$reset_color%} in %{$limegreen%}%~%{$reset_color%}$(ruby_prompt_info " with%{$fg[red]%} " v g "%{$reset_color%}")$vcs_info_msg_0_%{$orange%} λ%{$reset_color%} ' From 9c1255d358fa98397ce20370fa3843199c663990 Mon Sep 17 00:00:00 2001 From: Letian Zhang Date: Mon, 1 Sep 2014 09:49:31 +0800 Subject: [PATCH 0092/1175] fix missing add-zsh-hook in pygmalion.zsh-theme Fix "command not found: add-zsh-hook" since #3053 removes `autoload -U add-zsh-hook` --- themes/pygmalion.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/pygmalion.zsh-theme b/themes/pygmalion.zsh-theme index 654e0fc37..5f5fe7f9a 100644 --- a/themes/pygmalion.zsh-theme +++ b/themes/pygmalion.zsh-theme @@ -12,7 +12,7 @@ prompt_setup_pygmalion(){ base_prompt_nocolor=$(echo "$base_prompt" | perl -pe "s/%\{[^}]+\}//g") post_prompt_nocolor=$(echo "$post_prompt" | perl -pe "s/%\{[^}]+\}//g") - add-zsh-hook precmd prompt_pygmalion_precmd + precmd_functions+=(prompt_pygmalion_precmd) } prompt_pygmalion_precmd(){ From f0d5cfdc33561a16e26e9db2b2dbb9141eabe5c1 Mon Sep 17 00:00:00 2001 From: AJ Henriques Date: Sun, 31 Aug 2014 20:30:42 -0700 Subject: [PATCH 0093/1175] add git difftool alias (gdt) --- plugins/git/git.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 4b5ddf44c..bb1978f78 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -18,6 +18,7 @@ compdef _git gp=git-push alias gd='git diff' gdv() { git diff -w "$@" | view - } compdef _git gdv=git-diff +alias gdt='git difftool' alias gc='git commit -v' compdef _git gc=git-commit alias gc!='git commit -v --amend' From b8e10ca16d1caa55e3e6759b9130e32629986d98 Mon Sep 17 00:00:00 2001 From: Joshua Medeski Date: Sun, 31 Aug 2014 23:33:43 -0500 Subject: [PATCH 0094/1175] add wp-cli plugin readme --- plugins/wp-cli/README.md | 105 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 plugins/wp-cli/README.md diff --git a/plugins/wp-cli/README.md b/plugins/wp-cli/README.md new file mode 100644 index 000000000..6dda07d17 --- /dev/null +++ b/plugins/wp-cli/README.md @@ -0,0 +1,105 @@ +# WP-CLI + +**Maintainer:** [joshmedeski](https://github.com/joshmedeski) + +WordPress Command Line Interface (http://wp-cli.org/) + +WP-CLI is a set of command-line tools for managing WordPress installations. You can update plugins, set up multisite installs and much more, without using a web browser. + +## List of Aliases + +### Core +- wpcc='wp core config' +- wpcd='wp core download' +- wpci='wp core install' +- wpcii='wp core is-installed' +- wpcmc='wp core multisite-convert' +- wpcmi='wp core multisite-install' +- wpcu='wp core update' +- wpcudb='wp core update-db' +- wpcvc='wp core verify-checksums' + +### Cron +- wpcre='wp cron event' +- wpcrs='wp cron schedule' +- wpcrt='wp cron test' + +### Menu +- wpmc='wp menu create' +- wpmd='wp menu delete' +- wpmi='wp menu item' +- wpml='wp menu list' +- wpmlo='wp menu location' + +### Plugin +- wppa='activate' +- wppda='deactivate' +- wppd='delete' +- wppg='get' +- wppi='install' +- wppis='is-installed' +- wppl='list' +- wppp='path' +- wpps='search' +- wppst='status' +- wppt='toggle' +- wppu='uninstall' +- wppu='update' + +### Post +- wppoc='wp post create' +- wppod='wp post delete' +- wppoe='wp post edit' +- wppogen='wp post generate' +- wppog='wp post get' +- wppol='wp post list' +- wppom='wp post meta' +- wppou='wp post update' +- wppou='wp post url' + +### Sidebar +- wpsbl='wp sidebar list' + +### Theme +- wpta='wp theme activate' +- wptd='wp theme delete' +- wptdis='wp theme disable' +- wpte='wp theme enable' +- wptg='wp theme get' +- wpti='wp theme install' +- wptis='wp theme is-installed' +- wptl='wp theme list' +- wptm='wp theme mod' +- wptp='wp theme path' +- wpts='wp theme search' +- wptst='wp theme status' +- wptu='wp theme updatet' + +### User +- wpuac='wp user add-cap' +- wpuar='wp user add-role' +- wpuc='wp user create' +- wpud='wp user delete' +- wpugen='wp user generate' +- wpug='wp user get' +- wpui='wp user import-csv' +- wpul='wp user list' +- wpulc='wp user list-caps' +- wpum='wp user meta' +- wpurc='wp user remove-cap' +- wpurr='wp user remove-role' +- wpusr='wp user set-role' +- wpuu='wp user update' + +### Widget +- wpwa='wp widget add' +- wpwda='wp widget deactivate' +- wpwd='wp widget delete' +- wpwl='wp widget list' +- wpwm='wp widget move' +- wpwu='wp widget update' + +The entire list of wp-cli commands can be found here: http://wp-cli.org/commands/ + +I only included the commands that are most used. Please feel free to contribute to this project if you want more commands. + From 39fb6c9d35a555674de36ea02a4ae4c226c387a4 Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Mon, 1 Sep 2014 12:59:47 +0200 Subject: [PATCH 0095/1175] Revert "Add a CONTRIBUTING file to instruct people on issues and pull requests" --- CONTRIBUTING.md | 42 ------------------------------------------ 1 file changed, 42 deletions(-) delete mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index 9964c380d..000000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,42 +0,0 @@ -# CONTRIBUTING GUIDELINE - -1. [Luke, use the search](#luke-use-the-search) -2. [You have a problem](#you-have-a-problem) -3. [You have a solution](#you-have-a-solution) - -**BONUS:** [You have free time to volunteer](#you-have-free-time-to-volunteer) - -## LUKE, USE THE SEARCH - -May the experiences of other people be with you - - -## YOU HAVE A PROBLEM - -See point 1, then look at FAQ or Troubleshooting wiki pages (first we'll have to make them) - - -## YOU HAVE A SOLUTION - -See point 1, then go ahead (unless your solution is yet another theme) - - -## YOU HAVE FREE TIME TO VOLUNTEER - -Cool! Please have a look at the list below to understand how oh-my-zsh categorizes its issues. - -Classification of issues and - -- Bugs, which may be: - - Specific of zsh \* - - Regressions, in which we should summon the author of the offending commit once it is located - -- Feature requests - -- Helpdesk, which may be: - - Specific of zsh \* - - Everything else - -\* In the case of bugs, I see the benefit in going through the trouble of responding to that. After all, oh-my-zsh should be the missing link that makes zsh perfect, and hunting down an upstream bug can lead to a submitted PR. -In the case of helpdesk, minimal response should be done. That is, provide a link to the wiki with the relevant information, or -add it to the FAQ of the wiki and point to it afterwards. From a910aef0c4e33868d25e3410f1e8f8c9844b55c8 Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Mon, 1 Sep 2014 13:01:01 +0200 Subject: [PATCH 0096/1175] Revert "Add Composer's local binaries to PATH" --- plugins/composer/composer.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/composer/composer.plugin.zsh b/plugins/composer/composer.plugin.zsh index 2243dd3c1..86f2ca4df 100644 --- a/plugins/composer/composer.plugin.zsh +++ b/plugins/composer/composer.plugin.zsh @@ -47,5 +47,5 @@ alias cdu='composer dump-autoload' # install composer in the current directory alias cget='curl -s https://getcomposer.org/installer | php' -# Add Composer's global & local binaries to PATH -export PATH=$PATH:~/.composer/vendor/bin:./bin +# Add Composer's global binaries to PATH +export PATH=$PATH:~/.composer/vendor/bin From 20edd5f6de221dcf4ae818c0fa91c5121afbbf0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20K=C3=B6nig?= Date: Mon, 1 Sep 2014 15:12:36 +0200 Subject: [PATCH 0097/1175] gulp.js plugin --- gulp/gulp.plugin.zsh | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 gulp/gulp.plugin.zsh diff --git a/gulp/gulp.plugin.zsh b/gulp/gulp.plugin.zsh new file mode 100644 index 000000000..6017c7b60 --- /dev/null +++ b/gulp/gulp.plugin.zsh @@ -0,0 +1,29 @@ +#!/usr/bin/env zsh + +# +# gulp-autocompletion-zsh +# +# Autocompletion for your gulp.js tasks +# +# Copyright(c) 2014 André König +# MIT Licensed +# + +# +# André König +# Github: https://github.com/akoenig +# Twitter: https://twitter.com/caiifr +# + +# +# Grabs all available tasks from the `gulpfile.js` +# in the current directory. +# +function $$gulp_completion() { + compls=$(grep -Eo "gulp.task\(('(([a-zA-Z0-9]|-)*)',)" gulpfile.js 2>/dev/null | grep -Eo "'(([a-zA-Z0-9]|-)*)'" | sed s/"'"//g | sort) + + completions=(${=compls}) + compadd -- $completions +} + +compdef $$gulp_completion gulp \ No newline at end of file From a6ab704482f3f092b907a306eec2b3b8d908a5da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A1n=20Ko=C5=A1=C4=8Do?= <3k.stanley@gmail.com> Date: Mon, 1 Sep 2014 20:08:29 +0200 Subject: [PATCH 0098/1175] Added a short description of the plugin --- plugins/geeknote/README.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 plugins/geeknote/README.md diff --git a/plugins/geeknote/README.md b/plugins/geeknote/README.md new file mode 100644 index 000000000..a6b50e27f --- /dev/null +++ b/plugins/geeknote/README.md @@ -0,0 +1,12 @@ +## ZSH-Geeknote + +[Geeknote](https://github.com/VitaliyRodnenko/geeknote) plugin for [oh-my-zsh framework](http://github.com/robbyrussell/oh-my-zsh). + +Plugins provides: + +- auto completion of commands and their options +- alias `gn` + +You can find information how to install Geeknote and it's available commands on the [project website](http://www.geeknote.me/). + +Maintainer : Ján Koščo ([@s7anley](https://twitter.com/s7anley)) From ed6c2c9106cdaf570da6f7a260c41ca1c4b4ed2a Mon Sep 17 00:00:00 2001 From: Philipp Wahala Date: Wed, 3 Sep 2014 11:13:21 +0200 Subject: [PATCH 0099/1175] Symfony2 plugin use first console found --- plugins/symfony2/symfony2.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/symfony2/symfony2.plugin.zsh b/plugins/symfony2/symfony2.plugin.zsh index c8c102eee..fcb811fa5 100644 --- a/plugins/symfony2/symfony2.plugin.zsh +++ b/plugins/symfony2/symfony2.plugin.zsh @@ -1,7 +1,7 @@ # Symfony2 basic command completion _symfony_console () { - echo "php $(find . -maxdepth 2 -mindepth 1 -name 'console')" + echo "php $(find . -maxdepth 2 -mindepth 1 -name 'console' | head -n 1)" } _symfony2_get_command_list () { From 677d8b1a21c4b1d8cffef4cbfa259797a11f338a Mon Sep 17 00:00:00 2001 From: Philipp Wahala Date: Wed, 3 Sep 2014 11:36:22 +0200 Subject: [PATCH 0100/1175] Symfony2 plugin look for files only --- plugins/symfony2/symfony2.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/symfony2/symfony2.plugin.zsh b/plugins/symfony2/symfony2.plugin.zsh index fcb811fa5..2783cd387 100644 --- a/plugins/symfony2/symfony2.plugin.zsh +++ b/plugins/symfony2/symfony2.plugin.zsh @@ -1,7 +1,7 @@ # Symfony2 basic command completion _symfony_console () { - echo "php $(find . -maxdepth 2 -mindepth 1 -name 'console' | head -n 1)" + echo "php $(find . -maxdepth 2 -mindepth 1 -name 'console' -type f | head -n 1)" } _symfony2_get_command_list () { From 8d2dd8cc6a530e79ffdf307d444cb15430004efa Mon Sep 17 00:00:00 2001 From: Philipp Wahala Date: Wed, 3 Sep 2014 11:58:52 +0200 Subject: [PATCH 0101/1175] Symfony2 plugin autocomplete for app/console and bin/console --- plugins/symfony2/symfony2.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/symfony2/symfony2.plugin.zsh b/plugins/symfony2/symfony2.plugin.zsh index 2783cd387..8df22e9ad 100644 --- a/plugins/symfony2/symfony2.plugin.zsh +++ b/plugins/symfony2/symfony2.plugin.zsh @@ -13,6 +13,8 @@ _symfony2 () { } compdef _symfony2 '`_symfony_console`' +compdef _symfony2 'app/console' +compdef _symfony2 'bin/console' compdef _symfony2 sf #Alias From ae901fa0d5163728de3dde787071df0e2fcf47d5 Mon Sep 17 00:00:00 2001 From: Michael Stucki Date: Tue, 11 Jun 2013 13:51:17 +0200 Subject: [PATCH 0102/1175] Support dynamically defined Vagrant machines --- plugins/vagrant/_vagrant | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/vagrant/_vagrant b/plugins/vagrant/_vagrant index f842b4fbb..0c82acd42 100644 --- a/plugins/vagrant/_vagrant +++ b/plugins/vagrant/_vagrant @@ -57,6 +57,7 @@ __box_list () __vm_list () { _wanted application expl 'command' compadd $(command grep Vagrantfile -oe '^[^#]*\.vm\.define *[:"]\([a-zA-Z0-9_-]\+\)' 2>/dev/null | awk '{print substr($2, 2)}') + _wanted application expl 'command' compadd $(command ls .vagrant/machines/ 2>/dev/null) } __vagrant-box () From 87fb118dd252d7e9b658c66c51b5e3cb905f10fb Mon Sep 17 00:00:00 2001 From: Matt Walker Date: Wed, 3 Sep 2014 12:01:29 -0700 Subject: [PATCH 0103/1175] Changed brew cmd to properly report if awscli is installed via homebrew --- plugins/aws/aws.plugin.zsh | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/plugins/aws/aws.plugin.zsh b/plugins/aws/aws.plugin.zsh index 8b57d7db1..de786725f 100644 --- a/plugins/aws/aws.plugin.zsh +++ b/plugins/aws/aws.plugin.zsh @@ -3,19 +3,17 @@ _homebrew-installed() { } _awscli-homebrew-installed() { - brew --prefix awscli &> /dev/null + brew list awscli &> /dev/null } export AWS_HOME=~/.aws function agp { echo $AWS_DEFAULT_PROFILE - } function asp { export AWS_DEFAULT_PROFILE=$1 - export RPROMPT="" - + export RPROMPT="" } function aws_profiles { reply=($(grep profile $AWS_HOME/config|sed -e 's/.*profile \([a-zA-Z0-9_-]*\).*/\1/')) From 5e2591317810dba5d61f085faaf4e3050f90559c Mon Sep 17 00:00:00 2001 From: Robby Russell Date: Thu, 4 Sep 2014 12:53:43 +0200 Subject: [PATCH 0104/1175] Revert "Exit early from git plugin if not in git repo." --- plugins/git/git.plugin.zsh | 2 -- 1 file changed, 2 deletions(-) diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index bb1978f78..bf7cd1ac9 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -125,14 +125,12 @@ alias gsd='git svn dcommit' # Usage example: git pull origin $(current_branch) # function current_branch() { - if [ ! -d .git ]; then return; fi ref=$(git symbolic-ref HEAD 2> /dev/null) || \ ref=$(git rev-parse --short HEAD 2> /dev/null) || return echo ${ref#refs/heads/} } function current_repository() { - if [ ! -d .git ]; then return; fi ref=$(git symbolic-ref HEAD 2> /dev/null) || \ ref=$(git rev-parse --short HEAD 2> /dev/null) || return echo $(git remote -v | cut -d':' -f 2) From 6855dd4727a395bfe8bd471c939819d907cb6c27 Mon Sep 17 00:00:00 2001 From: Markus Faerevaag Date: Sun, 7 Sep 2014 21:56:34 +0200 Subject: [PATCH 0105/1175] [wd] New minor version (v0.4) --- plugins/wd/README.md | 110 ++++++++++- plugins/wd/_wd.sh | 6 +- plugins/wd/wd.sh | 460 +++++++++++++++++++++++++++++-------------- 3 files changed, 426 insertions(+), 150 deletions(-) diff --git a/plugins/wd/README.md b/plugins/wd/README.md index bc0ebe334..bcfeab684 100644 --- a/plugins/wd/README.md +++ b/plugins/wd/README.md @@ -1,8 +1,60 @@ -## wd +wd +== + +[![Build Status](https://travis-ci.org/mfaerevaag/wd.png?branch=master)](https://travis-ci.org/mfaerevaag/wd) + +`wd` (*warp directory*) lets you jump to custom directories in zsh, without using `cd`. Why? Because `cd` seems ineffecient when the folder is frequently visited or has a long path. + + +### Setup + +### oh-my-zsh + +`wd` comes bundles with [oh-my-zshell](https://github.com/robbyrussell/oh-my-zsh)! + +Just add the plugin in your `~/.zshrc` file: + + plugins=(... wd) + + +#### Automatic + +Run either in terminal: + + * `curl -L https://github.com/mfaerevaag/wd/raw/master/install.sh | sh` + + * `wget --no-check-certificate https://github.com/mfaerevaag/wd/raw/master/install.sh -O - | sh` + + +#### Manual + + * Clone this repo to your liking + + * Add `wd` function to `.zshrc` (or `.profile` etc.): + + wd() { + . ~/paht/to/wd/wd.sh + } + + * Install manpage. From `wd`'s base directory (requires root permissions): + + # cp wd.1 /usr/share/man/man1/wd.1 + # chmod 644 /usr/share/man/man1/wd.1 + + Note, when pulling and updating `wd`, you'll need to do this again in case of changes to the manpage. + + +#### Completion + +If you're NOT using [oh-my-zsh](https://github.com/robbyrussell/oh-my-zsh) and you want to utelize the zsh-completion feature, you will also need to add the path to your `wd` installation (`~/bin/wd` if you used the automatic installer) to your `fpath`. E.g. in your `~/.zshrc`: + + fpath=(~/path/to/wd $fpath) + +Also, you may have to force a rebuild of `zcompdump` by running: + + $ rm -f ~/.zcompdump; compinit -**Maintainer:** [mfaerevaag](https://github.com/mfaerevaag) -`wd` (*warp directory*) lets you jump to custom directories in zsh, without using `cd`. Why? Because `cd` seems ineffecient when the folder is frequently visited or has a long path. [Source](https://github.com/mfaerevaag/wd) ### Usage @@ -24,6 +76,7 @@ $ wd ... This is a wrapper for the zsh `dirs` function. + (You might need `setopt AUTO_PUSHD` in your `.zshrc` if you hare not using [oh-my-zshell](https://github.com/robbyrussell/oh-my-zsh)). * Remove warp point test point: @@ -33,8 +86,55 @@ $ wd ls - * List warp points to current directory + * List warp points to current directory, or optionally, path to given warp point: $ wd show - * Print usage with no opts or the `help` argument. + * Remove warp points to non-existent directories. + + $ wd clean + + Use `clean!` to not be prompted with confirmation (force). + + * Print usage with no opts or the `help` argument: + + $ wd help + + * Print the running version of `wd`: + + $ wd --version + + * Specifically set the config file (default `~/.warprc`), which is useful when testing: + + $ wd --config ./file + + * Force `exit` with return code after running. This is not default, as it will *exit your terminal*, though required when testing/debugging. + + $ wd --debug + + * Silence all output: + + $ wd --quiet + + +### Testing + +`wd` comes with a small test suite, run with [shunit2](https://code.google.com/p/shunit2/). This can be used to confirm that things are working as it should on your setup, or to demonstrate an issue. + +To run, simply `cd` into the `test` directory and run the `tests.sh`. + + $ ./tests.sh + + +### License + +The project is licensed under the [MIT-license](https://github.com/mfaerevaag/wd/blob/master/LICENSE). + + +### Finally + +If you have issues, feedback or improvements, don't hesitate to report it or submit a pull-request. In the case of an issue, we would much appreciate if you would include a failing test in `test/tests.sh`. Explanation on how to run the tests, read the section "Testing" in this README. + +Credit to [altschuler](https://github.com/altschuler) for awesome idea. + +Hope you enjoy! diff --git a/plugins/wd/_wd.sh b/plugins/wd/_wd.sh index 0b03d8fff..2bb58dd31 100644 --- a/plugins/wd/_wd.sh +++ b/plugins/wd/_wd.sh @@ -21,7 +21,8 @@ function _wd() { 'add!:Overwrites existing warp point' 'rm:Removes the given warp point' 'ls:Outputs all stored warp points' - 'show:Outputs all warp points that point to the current directory' + 'show:Outputs all warp points that point to the current directory or shows a specific target directory for a point' + 'show:Outputs all warp points that point to the current directory or shows a specific target directory for a point' 'help:Show this extremely helpful text' '..:Go back to last directory' ) @@ -43,6 +44,9 @@ function _wd() { add) _message 'Write the name of your warp point' && ret=0 ;; + show) + _describe -t points "Warp points" warp_points && ret=0 + ;; esac ;; esac diff --git a/plugins/wd/wd.sh b/plugins/wd/wd.sh index dfb9ad89a..4e45b48e1 100755 --- a/plugins/wd/wd.sh +++ b/plugins/wd/wd.sh @@ -7,25 +7,301 @@ # # @github.com/mfaerevaag/wd - -## variables -readonly CONFIG=$HOME/.warprc +# version +readonly WD_VERSION=0.4 # colors -readonly BLUE="\033[96m" -readonly GREEN="\033[92m" -readonly YELLOW="\033[93m" -readonly RED="\033[91m" -readonly NOC="\033[m" +readonly WD_BLUE="\033[96m" +readonly WD_GREEN="\033[92m" +readonly WD_YELLOW="\033[93m" +readonly WD_RED="\033[91m" +readonly WD_NOC="\033[m" +## functions -## init +# helpers +wd_yesorno() +{ + # variables + local question="${1}" + local prompt="${question} " + local yes_RETVAL="0" + local no_RETVAL="3" + local RETVAL="" + local answer="" + + # read-eval loop + while true ; do + printf $prompt + read -r answer + + case ${answer:=${default}} in + Y|y|YES|yes|Yes ) + RETVAL=${yes_RETVAL} && \ + break + ;; + N|n|NO|no|No ) + RETVAL=${no_RETVAL} && \ + break + ;; + * ) + echo "Please provide a valid answer (y or n)" + ;; + esac + done + + return ${RETVAL} +} + +wd_print_msg() +{ + if [[ -z $wd_quiet_mode ]] + then + local color=$1 + local msg=$2 + + if [[ $color == "" || $msg == "" ]] + then + print " ${WD_RED}*${WD_NOC} Could not print message. Sorry!" + else + print " ${color}*${WD_NOC} ${msg}" + fi + fi +} + +wd_print_usage() +{ + cat <<- EOF +Usage: wd [command] + +Commands: + add Adds the current working directory to your warp points + add! Overwrites existing warp point + rm Removes the given warp point + show Print warp points to current directory + show Print path to given warp point + ls Print all stored warp points + clean! Remove points warping to nonexistent directories + + -v | --version Print version + -d | --debug Exit after execution with exit codes (for testing) + -c | --config Specify config file (default ~/.warprc) + -q | --quiet Suppress all output + + help Show this extremely helpful text +EOF +} + +wd_exit_fail() +{ + local msg=$1 + + wd_print_msg $WD_RED $1 + WD_EXIT_CODE=1 +} + +wd_exit_warn() +{ + local msg=$1 + + wd_print_msg $WD_YELLOW $msg + WD_EXIT_CODE=1 +} + +# core + +wd_warp() +{ + local point=$1 + + if [[ $point =~ "^\.+$" ]] + then + if [ $#1 < 2 ] + then + wd_exit_warn "Warping to current directory?" + else + (( n = $#1 - 1 )) + cd -$n > /dev/null + fi + elif [[ ${points[$point]} != "" ]] + then + cd ${points[$point]} + else + wd_exit_fail "Unknown warp point '${point}'" + fi +} + +wd_add() +{ + local force=$1 + local point=$2 + + if [[ $point =~ "^[\.]+$" ]] + then + wd_exit_fail "Warp point cannot be just dots" + elif [[ $point =~ "(\s|\ )+" ]] + then + wd_exit_fail "Warp point should not contain whitespace" + elif [[ $point == *:* ]] + then + wd_exit_fail "Warp point cannot contain colons" + elif [[ $point == "" ]] + then + wd_exit_fail "Warp point cannot be empty" + elif [[ ${points[$2]} == "" ]] || $force + then + wd_remove $point > /dev/null + printf "%q:%q\n" "${point}" "${PWD}" >> $WD_CONFIG + + wd_print_msg $WD_GREEN "Warp point added" + + # override exit code in case wd_remove did not remove any points + # TODO: we should handle this kind of logic better + WD_EXIT_CODE=0 + else + wd_exit_warn "Warp point '${point}' already exists. Use 'add!' to overwrite." + fi +} + +wd_remove() +{ + local point=$1 + + if [[ ${points[$point]} != "" ]] + then + local config_tmp=$WD_CONFIG.tmp + if sed -n "/^${point}:.*$/!p" $WD_CONFIG > $config_tmp && mv $config_tmp $WD_CONFIG + then + wd_print_msg $WD_GREEN "Warp point removed" + else + wd_exit_fail "Something bad happened! Sorry." + fi + else + wd_exit_fail "Warp point was not found" + fi +} + +wd_list_all() +{ + wd_print_msg $WD_BLUE "All warp points:" + + while IFS= read -r line + do + if [[ $line != "" ]] + then + arr=(${(s,:,)line}) + key=${arr[1]} + val=${arr[2]} + + if [[ -z $wd_quiet_mode ]] + then + printf "%20s -> %s\n" $key $val + fi + fi + done <<< $(sed "s:${HOME}:~:g" $WD_CONFIG) +} + +wd_show() +{ + local name_arg=$1 + # if there's an argument we look up the value + if [[ ! -z $name_arg ]] + then + if [[ -z $points[$name_arg] ]] + then + wd_print_msg $WD_BLUE "No warp point named $name_arg" + else + wd_print_msg $WD_GREEN "Warp point: ${WD_GREEN}$name_arg${WD_NOC} -> $points[$name_arg]" + fi + else + # hax to create a local empty array + local wd_matches + wd_matches=() + # do a reverse lookup to check whether PWD is in $points + if [[ ${points[(r)$PWD]} == $PWD ]] + then + for name in ${(k)points} + do + if [[ $points[$name] == $PWD ]] + then + wd_matches[$(($#wd_matches+1))]=$name + fi + done + + wd_print_msg $WD_BLUE "$#wd_matches warp point(s) to current directory: ${WD_GREEN}$wd_matches${WD_NOC}" + else + wd_print_msg $WD_BLUE "No warp points to $cwd" + fi + fi +} + +wd_clean() { + local force=$1 + local count=0 + local wd_tmp="" + + while read line + do + if [[ $line != "" ]] + then + arr=(${(s,:,)line}) + key=${arr[1]} + val=${arr[2]} + + if [ -d "$val" ] + then + wd_tmp=$wd_tmp"\n"`echo $line` + else + wd_print_msg $WD_YELLOW "Nonexistent directory: ${key} -> ${val}" + count=$((count+1)) + fi + fi + done < $WD_CONFIG + + if [[ $count -eq 0 ]] + then + wd_print_msg $WD_BLUE "No warp points to clean, carry on!" + else + if $force || wd_yesorno "Removing ${count} warp points. Continue? (Y/n)" + then + echo $wd_tmp >! $WD_CONFIG + wd_print_msg $WD_GREEN "Cleanup complete. ${count} warp point(s) removed" + else + wd_print_msg $WD_BLUE "Cleanup aborted" + fi + fi +} + +local WD_CONFIG=$HOME/.warprc +local WD_QUIET=0 +local WD_EXIT_CODE=0 +local WD_DEBUG=0 + +# Parse 'meta' options first to avoid the need to have them before +# other commands. The `-D` flag consumes recognized options so that +# the actual command parsing won't be affected. + +zparseopts -D -E \ + c:=wd_alt_config -config:=wd_alt_config \ + q=wd_quiet_mode -quiet=wd_quiet_mode \ + v=wd_print_version -version=wd_print_version \ + d=wd_debug_mode -debug=wd_debug_mode + +if [[ ! -z $wd_print_version ]] +then + echo "wd version $WD_VERSION" +fi + +if [[ ! -z $wd_alt_config ]] +then + WD_CONFIG=$wd_alt_config[2] +fi # check if config file exists -if [ ! -e $CONFIG ] +if [ ! -e $WD_CONFIG ] then # if not, create config file - touch $CONFIG + touch $WD_CONFIG fi # load warp points @@ -37,149 +313,26 @@ do val=${arr[2]} points[$key]=$val -done < $CONFIG - - -## functions - -wd_warp() -{ - local point=$1 - - if [[ $point =~ "^\.+$" ]] - then - if [ $#1 < 2 ] - then - wd_print_msg $YELLOW "Warping to current directory?" - else - (( n = $#1 - 1 )) - cd -$n > /dev/null - fi - elif [[ ${points[$point]} != "" ]] - then - cd ${points[$point]} - else - wd_print_msg $RED "Unknown warp point '${point}'" - fi -} - -wd_add() -{ - local force=$1 - local point=$2 - - if [[ $point =~ "^[\.]+$" ]] - then - wd_print_msg $RED "Warp point cannot be just dots" - elif [[ $point =~ "(\s|\ )+" ]] - then - wd_print_msg $RED "Warp point should not contain whitespace" - elif [[ $point == *:* ]] - then - wd_print_msg $RED "Warp point cannot contain colons" - elif [[ $point == "" ]] - then - wd_print_msg $RED "Warp point cannot be empty" - elif [[ ${points[$2]} == "" ]] || $force - then - wd_remove $point > /dev/null - printf "%q:%q\n" "${point}" "${PWD}" >> $CONFIG - - wd_print_msg $GREEN "Warp point added" - else - wd_print_msg $YELLOW "Warp point '${point}' already exists. Use 'add!' to overwrite." - fi -} - -wd_remove() -{ - local point=$1 - - if [[ ${points[$point]} != "" ]] - then - if sed -i.bak "s,^${point}:.*$,,g" $CONFIG - then - wd_print_msg $GREEN "Warp point removed" - else - wd_print_msg $RED "Something bad happened! Sorry." - fi - else - wd_print_msg $RED "Warp point was not found" - fi -} - -wd_list_all() -{ - wd_print_msg $BLUE "All warp points:" - - while IFS= read -r line - do - if [[ $line != "" ]] - then - arr=(${(s,:,)line}) - key=${arr[1]} - val=${arr[2]} - - printf "%20s -> %s\n" $key $val - fi - done <<< $(sed "s:${HOME}:~:g" $CONFIG) -} - -wd_show() -{ - local cwd=$(print $PWD | sed "s:^${HOME}:~:") - - wd_print_msg $BLUE "Warp points to current directory:" - wd_list_all | grep -e "${cwd}$" -} - -wd_print_msg() -{ - local color=$1 - local msg=$2 - - if [[ $color == "" || $msg == "" ]] - then - print " ${RED}*${NOC} Could not print message. Sorry!" - else - print " ${color}*${NOC} ${msg}" - fi -} - -wd_print_usage() -{ - cat <<- EOF -Usage: wd [add|-a|--add] [rm|-r|--remove] - -Commands: - add Adds the current working directory to your warp points - add! Overwrites existing warp point - rm Removes the given warp point - show Outputs warp points to current directory - ls Outputs all stored warp points - help Show this extremely helpful text -EOF -} - - -## run +done < $WD_CONFIG # get opts -args=$(getopt -o a:r:lhs -l add:,rm:,ls,help,show -- $*) +args=$(getopt -o a:r:c:lhs -l add:,rm:,clean\!,ls,help,show -- $*) -# check if no arguments were given -if [[ $? -ne 0 || $#* -eq 0 ]] +# check if no arguments were given, and that version is not set +if [[ ($? -ne 0 || $#* -eq 0) && -z $wd_print_version ]] then wd_print_usage -# check if config file is writeable -elif [ ! -w $CONFIG ] + # check if config file is writeable +elif [ ! -w $WD_CONFIG ] then # do nothing # can't run `exit`, as this would exit the executing shell - wd_print_msg $RED "\'$CONFIG\' is not writeable." + wd_exit_fail "\'$WD_CONFIG\' is not writeable." else + + # parse rest of options for o do case "$o" @@ -205,7 +358,15 @@ else break ;; -s|--show|show) - wd_show + wd_show $2 + break + ;; + -c|--clean|clean) + wd_clean false + break + ;; + -c!|--clean!|clean!) + wd_clean true break ;; *) @@ -229,8 +390,19 @@ unset wd_remove unset wd_show unset wd_list_all unset wd_print_msg +unset wd_yesorno unset wd_print_usage +unset wd_alt_config +unset wd_quiet_mode +unset wd_print_version unset args unset points unset val &> /dev/null # fixes issue #1 + +if [[ ! -z $wd_debug_mode ]] +then + exit $WD_EXIT_CODE +else + unset wd_debug_mode +fi From b5093859af472c04dfca33adfeba49bfbe417c9d Mon Sep 17 00:00:00 2001 From: Markus Faerevaag Date: Mon, 8 Sep 2014 09:09:44 +0200 Subject: [PATCH 0106/1175] [wd] Minor bug fix in show command --- plugins/wd/wd.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/wd/wd.sh b/plugins/wd/wd.sh index 4e45b48e1..d63e92472 100755 --- a/plugins/wd/wd.sh +++ b/plugins/wd/wd.sh @@ -230,7 +230,7 @@ wd_show() wd_print_msg $WD_BLUE "$#wd_matches warp point(s) to current directory: ${WD_GREEN}$wd_matches${WD_NOC}" else - wd_print_msg $WD_BLUE "No warp points to $cwd" + wd_print_msg $WD_YELLOW "No warp point to $(echo $PWD | sed "s:$HOME:~:")" fi fi } From 7a5d68c96332b5f50969f75384f67694639dbce2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C3=96zg=C3=BCr?= Date: Sat, 13 Sep 2014 10:30:16 +0300 Subject: [PATCH 0107/1175] Remove j alias for autojump j alias conflicts with autojump's j() function. Fixes #2989 --- plugins/common-aliases/common-aliases.plugin.zsh | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/common-aliases/common-aliases.plugin.zsh b/plugins/common-aliases/common-aliases.plugin.zsh index 228a39da0..90d59910c 100644 --- a/plugins/common-aliases/common-aliases.plugin.zsh +++ b/plugins/common-aliases/common-aliases.plugin.zsh @@ -46,7 +46,6 @@ alias ff='find . -type f -name' alias h='history' alias hgrep="fc -El 0 | grep" alias help='man' -alias j='jobs' alias p='ps -f' alias sortnr='sort -n -r' alias unexport='unset' From 1e7c6743a7b221cb2069a84c70890014597672d8 Mon Sep 17 00:00:00 2001 From: Giel van Schijndel Date: Mon, 15 Sep 2014 15:36:34 +0200 Subject: [PATCH 0108/1175] sudo: maintain cursor position I.e. when prefixing the current command-line with 'sudo ' maintain the current cursor position instead of jumping to the end of the line. --- plugins/sudo/sudo.plugin.zsh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/plugins/sudo/sudo.plugin.zsh b/plugins/sudo/sudo.plugin.zsh index d12e06853..e3ba39918 100644 --- a/plugins/sudo/sudo.plugin.zsh +++ b/plugins/sudo/sudo.plugin.zsh @@ -13,9 +13,8 @@ # ------------------------------------------------------------------------------ sudo-command-line() { -[[ -z $BUFFER ]] && zle up-history -[[ $BUFFER != sudo\ * ]] && BUFFER="sudo $BUFFER" -zle end-of-line + [[ -z $BUFFER ]] && zle up-history + [[ $BUFFER != sudo\ * ]] && LBUFFER="sudo $LBUFFER" } zle -N sudo-command-line # Defined shortcut keys: [Esc] [Esc] From eb0549750fccde126584d6be59df8d2d62882750 Mon Sep 17 00:00:00 2001 From: Peter Butkovic Date: Tue, 16 Sep 2014 10:35:43 +0200 Subject: [PATCH 0109/1175] additional tmux aliases --- plugins/tmux/tmux.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/tmux/tmux.plugin.zsh b/plugins/tmux/tmux.plugin.zsh index 626c41f3d..bc32c8907 100644 --- a/plugins/tmux/tmux.plugin.zsh +++ b/plugins/tmux/tmux.plugin.zsh @@ -5,6 +5,8 @@ alias ta='tmux attach -t' alias ts='tmux new-session -s' alias tl='tmux list-sessions' +alias tksv='tmux kill-server' +alias tkss='tmux kill-session -t' # Only run if tmux is actually installed if which tmux &> /dev/null From b0013ceb29e4214a76c92bfbdc0d87354c374277 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rodrigo=20Ram=C3=ADrez=20Norambuena?= Date: Mon, 15 Sep 2014 12:13:43 -0300 Subject: [PATCH 0110/1175] remove path not found for linuxonly theme --- themes/linuxonly.zsh-theme | 1 - 1 file changed, 1 deletion(-) diff --git a/themes/linuxonly.zsh-theme b/themes/linuxonly.zsh-theme index a11b80d7f..f9e0aa07d 100644 --- a/themes/linuxonly.zsh-theme +++ b/themes/linuxonly.zsh-theme @@ -13,7 +13,6 @@ local c7=$(printf "\033[38;5;149m") local c8=$(printf "\033[38;5;126m") local c9=$(printf "\033[38;5;162m") -local foopath=$(perl /home/scp1/bin/foopath) if [ "$TERM" = "linux" ]; then c1=$(printf "\033[34;1m") From 5f38a537cef0d79c9d53c01e8f88d150e985c70a Mon Sep 17 00:00:00 2001 From: Moinak Ghosh Date: Tue, 16 Sep 2014 22:29:52 +0530 Subject: [PATCH 0111/1175] Update Solaris changes to use OSTYPE and zsh datetime module. --- lib/completion.zsh | 2 +- oh-my-zsh.sh | 1 - plugins/colored-man/colored-man.plugin.zsh | 2 +- tools/check_for_upgrade.sh | 12 ++++-------- 4 files changed, 6 insertions(+), 11 deletions(-) diff --git a/lib/completion.zsh b/lib/completion.zsh index faea36118..83b6efb66 100644 --- a/lib/completion.zsh +++ b/lib/completion.zsh @@ -25,7 +25,7 @@ bindkey -M menuselect '^o' accept-and-infer-next-history zstyle ':completion:*:*:*:*:*' menu select zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;34=0=01' -if [ "$PLAT" = "SunOS" ] +if [ "$OSTYPE[0,7]" = "solaris" ] then zstyle ':completion:*:*:*:*:processes' command "ps -u `whoami` -o pid,user,comm" else diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index 4683c2bc0..c217b91bb 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -1,4 +1,3 @@ -PLAT=`uname -s` # Check for updates on initial load... if [ "$DISABLE_AUTO_UPDATE" != "true" ]; then /usr/bin/env ZSH=$ZSH DISABLE_UPDATE_PROMPT=$DISABLE_UPDATE_PROMPT zsh -f $ZSH/tools/check_for_upgrade.sh diff --git a/plugins/colored-man/colored-man.plugin.zsh b/plugins/colored-man/colored-man.plugin.zsh index 4956f4346..5c613f49d 100644 --- a/plugins/colored-man/colored-man.plugin.zsh +++ b/plugins/colored-man/colored-man.plugin.zsh @@ -1,4 +1,4 @@ -if [ "${PLAT}" = "SunOS" ] +if [ "$OSTYPE[0,7]" = "solaris" ] then if [ ! -x ${HOME}/bin/nroff ] then diff --git a/tools/check_for_upgrade.sh b/tools/check_for_upgrade.sh index 1aba9a272..0e8845ab4 100644 --- a/tools/check_for_upgrade.sh +++ b/tools/check_for_upgrade.sh @@ -1,13 +1,9 @@ -#!/bin/sh +#!/usr/bin/env zsh + +zmodload zsh/datetime -PLAT=`uname -s` function _current_epoch() { - if [ "$PLAT" = "SunOS" ] - then - echo $(($(perl -e 'print time') / 60 / 60 / 24)) - else - echo $(($(date +%s) / 60 / 60 / 24)) - fi + echo $EPOCHSECONDS } function _update_zsh_update() { From 90762eee49efcdfd6b92ad5d5d9e5f43d113ae0b Mon Sep 17 00:00:00 2001 From: Moinak Ghosh Date: Wed, 17 Sep 2014 11:11:48 +0530 Subject: [PATCH 0112/1175] Convert epoch_target from days to seconds. --- tools/check_for_upgrade.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/check_for_upgrade.sh b/tools/check_for_upgrade.sh index 0e8845ab4..f49bb151f 100644 --- a/tools/check_for_upgrade.sh +++ b/tools/check_for_upgrade.sh @@ -22,6 +22,8 @@ if [[ -z "$epoch_target" ]]; then epoch_target=13 fi +epoch_target_seconds=$((epoch_target * 86400)) + [ -f ~/.profile ] && source ~/.profile # Cancel upgrade if the current user doesn't have write permissions for the @@ -37,7 +39,7 @@ then fi epoch_diff=$(($(_current_epoch) - $LAST_EPOCH)) - if [ $epoch_diff -gt $epoch_target ] + if [ $epoch_diff -gt $epoch_target_seconds ] then if [ "$DISABLE_UPDATE_PROMPT" = "true" ] then From 8f9a72aa7b6d23f82b027a28ffe3f3f6cec8c863 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20K=C3=B6nig?= Date: Thu, 18 Sep 2014 19:55:44 +0200 Subject: [PATCH 0113/1175] Moved plugin. --- {gulp => plugins/gulp}/gulp.plugin.zsh | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {gulp => plugins/gulp}/gulp.plugin.zsh (100%) diff --git a/gulp/gulp.plugin.zsh b/plugins/gulp/gulp.plugin.zsh similarity index 100% rename from gulp/gulp.plugin.zsh rename to plugins/gulp/gulp.plugin.zsh From 3a3973284534c318e2cb987a0db1121302d04e10 Mon Sep 17 00:00:00 2001 From: Moinak Ghosh Date: Tue, 14 Oct 2014 12:05:01 +0530 Subject: [PATCH 0114/1175] Change to epoch target in days instead of seconds. --- tools/check_for_upgrade.sh | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tools/check_for_upgrade.sh b/tools/check_for_upgrade.sh index f49bb151f..a8ba4820c 100644 --- a/tools/check_for_upgrade.sh +++ b/tools/check_for_upgrade.sh @@ -3,7 +3,7 @@ zmodload zsh/datetime function _current_epoch() { - echo $EPOCHSECONDS + echo $(( $EPOCHSECONDS / 60 / 60 / 24 )) } function _update_zsh_update() { @@ -22,8 +22,6 @@ if [[ -z "$epoch_target" ]]; then epoch_target=13 fi -epoch_target_seconds=$((epoch_target * 86400)) - [ -f ~/.profile ] && source ~/.profile # Cancel upgrade if the current user doesn't have write permissions for the @@ -39,7 +37,7 @@ then fi epoch_diff=$(($(_current_epoch) - $LAST_EPOCH)) - if [ $epoch_diff -gt $epoch_target_seconds ] + if [ $epoch_diff -gt $epoch_target ] then if [ "$DISABLE_UPDATE_PROMPT" = "true" ] then From 71ee0d7b2bc717e815cddc9ee8e062f84587d2c4 Mon Sep 17 00:00:00 2001 From: Nikhil Gupta Date: Sun, 12 Oct 2014 08:30:08 +0530 Subject: [PATCH 0115/1175] added support for GNU version of `date` --- plugins/emoji-clock/emoji-clock.plugin.zsh | 28 ++++++++++++---------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/plugins/emoji-clock/emoji-clock.plugin.zsh b/plugins/emoji-clock/emoji-clock.plugin.zsh index a69446e3c..0a55528f0 100644 --- a/plugins/emoji-clock/emoji-clock.plugin.zsh +++ b/plugins/emoji-clock/emoji-clock.plugin.zsh @@ -8,21 +8,25 @@ # ----------------------------------------------------------------------------- function emoji-clock() { - hour=$(date -v '+15M' '+%I') - minutes=$(date -v '+15M' '+%M') + # Add 15 minutes to the current time and save the value as $minutes. + (( minutes = $(date '+%M') + 15 )) + (( hour = $(date '+%I') + minutes / 60 )) + # make sure minutes and hours don't exceed 60 nor 12 respectively + (( minutes %= 60 )); (( hour %= 12 )) + case $hour in - 01) clock="🕐"; [ $minutes -ge 30 ] && clock="🕜";; - 02) clock="🕑"; [ $minutes -ge 30 ] && clock="🕝";; - 03) clock="🕒"; [ $minutes -ge 30 ] && clock="🕞";; - 04) clock="🕓"; [ $minutes -ge 30 ] && clock="🕟";; - 05) clock="🕔"; [ $minutes -ge 30 ] && clock="🕠";; - 06) clock="🕕"; [ $minutes -ge 30 ] && clock="🕡";; - 07) clock="🕖"; [ $minutes -ge 30 ] && clock="🕢";; - 08) clock="🕗"; [ $minutes -ge 30 ] && clock="🕣";; - 09) clock="🕘"; [ $minutes -ge 30 ] && clock="🕤";; + 0) clock="🕛"; [ $minutes -ge 30 ] && clock="🕧";; + 1) clock="🕐"; [ $minutes -ge 30 ] && clock="🕜";; + 2) clock="🕑"; [ $minutes -ge 30 ] && clock="🕝";; + 3) clock="🕒"; [ $minutes -ge 30 ] && clock="🕞";; + 4) clock="🕓"; [ $minutes -ge 30 ] && clock="🕟";; + 5) clock="🕔"; [ $minutes -ge 30 ] && clock="🕠";; + 6) clock="🕕"; [ $minutes -ge 30 ] && clock="🕡";; + 7) clock="🕖"; [ $minutes -ge 30 ] && clock="🕢";; + 8) clock="🕗"; [ $minutes -ge 30 ] && clock="🕣";; + 9) clock="🕘"; [ $minutes -ge 30 ] && clock="🕤";; 10) clock="🕙"; [ $minutes -ge 30 ] && clock="🕥";; 11) clock="🕚"; [ $minutes -ge 30 ] && clock="🕦";; - 12) clock="🕛"; [ $minutes -ge 30 ] && clock="🕧";; *) clock="⌛";; esac echo $clock From d794a502f6e551c2ccb1479fc68dbae352c839f5 Mon Sep 17 00:00:00 2001 From: Neal Date: Tue, 14 Oct 2014 13:57:02 -0500 Subject: [PATCH 0116/1175] Update path for the iOS simulator. --- plugins/xcode/xcode.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/xcode/xcode.plugin.zsh b/plugins/xcode/xcode.plugin.zsh index e59bee8c7..3d7781bf9 100644 --- a/plugins/xcode/xcode.plugin.zsh +++ b/plugins/xcode/xcode.plugin.zsh @@ -16,4 +16,4 @@ function xcsel { alias xcb='xcodebuild' alias xcp='xcode-select --print-path' -alias simulator='open $(xcode-select -p)/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone\ Simulator.app' +alias simulator='open $(xcode-select -p)/Applications/iOS\ Simulator.app' From 6f1eb081e343208f881b19d1c9499e6e93b29e4b Mon Sep 17 00:00:00 2001 From: willmendesneto Date: Thu, 16 Oct 2014 23:32:42 -0300 Subject: [PATCH 0117/1175] Fix error using compass search alias --- plugins/frontend-search/frontend-search.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/frontend-search/frontend-search.plugin.zsh b/plugins/frontend-search/frontend-search.plugin.zsh index 38b1a80ea..f1d45b0d1 100644 --- a/plugins/frontend-search/frontend-search.plugin.zsh +++ b/plugins/frontend-search/frontend-search.plugin.zsh @@ -118,7 +118,7 @@ alias jquery='frontend jquery' alias mdn='frontend mdn' # pre processors frameworks -alias compass='frontend compass' +alias compassdoc='frontend compass' # important links alias html5please='frontend html5please' From 9f801ff48d46847e3c91e58b2ba2f5b61f6dcef8 Mon Sep 17 00:00:00 2001 From: Markus Faerevaag Date: Tue, 21 Oct 2014 09:51:13 +0200 Subject: [PATCH 0118/1175] [wd] fix space in path --- plugins/wd/wd.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/wd/wd.sh b/plugins/wd/wd.sh index d63e92472..5ecbdc503 100755 --- a/plugins/wd/wd.sh +++ b/plugins/wd/wd.sh @@ -139,7 +139,7 @@ wd_add() if [[ $point =~ "^[\.]+$" ]] then wd_exit_fail "Warp point cannot be just dots" - elif [[ $point =~ "(\s|\ )+" ]] + elif [[ $point =~ "[[:space:]]+" ]] then wd_exit_fail "Warp point should not contain whitespace" elif [[ $point == *:* ]] @@ -151,7 +151,7 @@ wd_add() elif [[ ${points[$2]} == "" ]] || $force then wd_remove $point > /dev/null - printf "%q:%q\n" "${point}" "${PWD}" >> $WD_CONFIG + printf "%q:%s\n" "${point}" "${PWD}" >> $WD_CONFIG wd_print_msg $WD_GREEN "Warp point added" From 36e05e95adf6218eb8c154706a5a101b687d6368 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Wed, 22 Oct 2014 15:16:15 +0200 Subject: [PATCH 0119/1175] Don't set auto_name_dirs because it messes up prompts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From http://zsh.sourceforge.net/Doc/Release/Options.html#Completion-4 > AUTO_NAME_DIRS > Any parameter that is set to the absolute name of a directory immediately > becomes a name for that directory, that will be used by the ‘%~’ and > related prompt sequences, and will be available when completion is performed > on a word starting with ‘~’. > (Otherwise, the parameter must be used in the form ‘~param’ first.) Explained in more detail in https://github.com/wayneeseguin/rvm/issues/3091#issuecomment-60083194 Related issues: https://github.com/robbyrussell/oh-my-zsh/issues/2857 https://github.com/robbyrussell/oh-my-zsh/issues/3238 https://github.com/wayneeseguin/rvm/issues/3091 --- lib/directories.zsh | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/directories.zsh b/lib/directories.zsh index 1896945f4..02743e0c7 100644 --- a/lib/directories.zsh +++ b/lib/directories.zsh @@ -1,5 +1,4 @@ # Changing/making/removing directory -setopt auto_name_dirs setopt auto_pushd setopt pushd_ignore_dups setopt pushdminus From b9a11b16fec80c5d68f8a215565da3624748197f Mon Sep 17 00:00:00 2001 From: Andrii Kostenko Date: Sat, 6 Sep 2014 22:44:18 +0300 Subject: [PATCH 0120/1175] fixed URL on github.io github.io moved to https and http returns 301 redirect --- plugins/gitignore/gitignore.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/gitignore/gitignore.plugin.zsh b/plugins/gitignore/gitignore.plugin.zsh index be037d87a..5bf302452 100644 --- a/plugins/gitignore/gitignore.plugin.zsh +++ b/plugins/gitignore/gitignore.plugin.zsh @@ -1,7 +1,7 @@ -function gi() { curl http://www.gitignore.io/api/$@ ;} +function gi() { curl https://www.gitignore.io/api/$@ ;} _gitignireio_get_command_list() { - curl -s http://www.gitignore.io/api/list | tr "," "\n" + curl -s https://www.gitignore.io/api/list | tr "," "\n" } _gitignireio () { From 69a0b280c7939406c930082469756e217d1bd789 Mon Sep 17 00:00:00 2001 From: Alex Shaindlin Date: Wed, 15 Oct 2014 09:33:49 -0400 Subject: [PATCH 0121/1175] Fix misspellings in gitignore plugin --- plugins/gitignore/gitignore.plugin.zsh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/gitignore/gitignore.plugin.zsh b/plugins/gitignore/gitignore.plugin.zsh index 5bf302452..3f2a6dec1 100644 --- a/plugins/gitignore/gitignore.plugin.zsh +++ b/plugins/gitignore/gitignore.plugin.zsh @@ -1,12 +1,12 @@ function gi() { curl https://www.gitignore.io/api/$@ ;} -_gitignireio_get_command_list() { +_gitignoreio_get_command_list() { curl -s https://www.gitignore.io/api/list | tr "," "\n" } -_gitignireio () { +_gitignoreio () { compset -P '*,' - compadd -S '' `_gitignireio_get_command_list` + compadd -S '' `_gitignoreio_get_command_list` } -compdef _gitignireio gi +compdef _gitignoreio gi From 04d1428fcbda05a96d54396679c6c74c7006b032 Mon Sep 17 00:00:00 2001 From: WooParadog Date: Thu, 9 Oct 2014 13:17:35 +0800 Subject: [PATCH 0122/1175] Fix gitignore curl, should follow redirects --- plugins/gitignore/gitignore.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/gitignore/gitignore.plugin.zsh b/plugins/gitignore/gitignore.plugin.zsh index 3f2a6dec1..484c6a699 100644 --- a/plugins/gitignore/gitignore.plugin.zsh +++ b/plugins/gitignore/gitignore.plugin.zsh @@ -1,4 +1,4 @@ -function gi() { curl https://www.gitignore.io/api/$@ ;} +function gi() { curl -L https://www.gitignore.io/api/$@ ;} _gitignoreio_get_command_list() { curl -s https://www.gitignore.io/api/list | tr "," "\n" From b452cafb163cde6619ac741027251bed2709f78e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Wed, 15 Oct 2014 17:17:04 +0200 Subject: [PATCH 0123/1175] Follow-redirect and silent mode curl throughout gitignore This commit completes previous efforts and standardizes both curl commands into using silent mode and following redirects in case the URL changes again in the future. --- plugins/gitignore/gitignore.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/gitignore/gitignore.plugin.zsh b/plugins/gitignore/gitignore.plugin.zsh index 484c6a699..481d487ba 100644 --- a/plugins/gitignore/gitignore.plugin.zsh +++ b/plugins/gitignore/gitignore.plugin.zsh @@ -1,7 +1,7 @@ -function gi() { curl -L https://www.gitignore.io/api/$@ ;} +function gi() { curl -sL https://www.gitignore.io/api/$@ ;} _gitignoreio_get_command_list() { - curl -s https://www.gitignore.io/api/list | tr "," "\n" + curl -sL https://www.gitignore.io/api/list | tr "," "\n" } _gitignoreio () { From 071de5fb39ff951bffe75a4d6f590d85f25871f3 Mon Sep 17 00:00:00 2001 From: Neal Date: Mon, 27 Oct 2014 22:17:11 -0500 Subject: [PATCH 0124/1175] Make the simulator alias work with older Xcode versions as well. --- plugins/xcode/xcode.plugin.zsh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/xcode/xcode.plugin.zsh b/plugins/xcode/xcode.plugin.zsh index 3d7781bf9..b7b75cf93 100644 --- a/plugins/xcode/xcode.plugin.zsh +++ b/plugins/xcode/xcode.plugin.zsh @@ -16,4 +16,9 @@ function xcsel { alias xcb='xcodebuild' alias xcp='xcode-select --print-path' -alias simulator='open $(xcode-select -p)/Applications/iOS\ Simulator.app' + +if [[ -d $(xcode-select -p)/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone\ Simulator.app ]]; then + alias simulator='open $(xcode-select -p)/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone\ Simulator.app' +else + alias simulator='open $(xcode-select -p)/Applications/iOS\ Simulator.app' +fi From b6012bc2c32a124183d7c5713edee4e2341e1d3f Mon Sep 17 00:00:00 2001 From: Pavol Juhas Date: Wed, 2 Apr 2014 19:25:47 -0400 Subject: [PATCH 0125/1175] Update to the upstream smart-change-directory. Synced with the master branch pavoljuhas/smart-change-directory@20b5a80cf05f72c07e88a9b166593f52517029e4. --- plugins/scd/README.md | 15 +++--- plugins/scd/scd | 119 +++++++++++++++++++++++++++--------------- 2 files changed, 86 insertions(+), 48 deletions(-) diff --git a/plugins/scd/README.md b/plugins/scd/README.md index 197cea50a..86ab67203 100644 --- a/plugins/scd/README.md +++ b/plugins/scd/README.md @@ -11,12 +11,9 @@ the index. A selection menu is displayed in case of several matches, with a preference given to recently visited paths. `scd` can create permanent directory aliases, which appear as named directories in zsh session. -## INSTALLATION +## INSTALLATION NOTES -For oh-my-zsh, add `scd` to the `plugins` array in the ~/.zshrc file as in the -[template file](../../templates/zshrc.zsh-template#L45). - -Besides zsh, `scd` can be used with *bash*, *dash* or *tcsh* +Besides oh-my-zsh, `scd` can be used with *bash*, *dash* or *tcsh* shells and is also available as [Vim](http://www.vim.org/) plugin and [IPython](http://ipython.org/) extension. For installation details, see https://github.com/pavoljuhas/smart-change-directory. @@ -34,7 +31,7 @@ scd [options] [pattern1 pattern2 ...] add specified directories to the directory index.
--unindex
- remove specified directories from the index.
+ remove current or specified directories from the index.
-r, --recursive
apply options --add or --unindex recursively.
@@ -47,6 +44,10 @@ scd [options] [pattern1 pattern2 ...] remove ALIAS definition for the current or specified directory from ~/.scdalias.zsh.
+-A, --all
+ include all matching directories. Disregard matching by directory + alias and filtering of less likely paths.
+ --list
show matching directories and exit.
@@ -70,7 +71,7 @@ scd doc scd a b c # Change to a directory path that ends with "ts" -scd "ts(#e)" +scd "ts$" # Show selection menu and ranking of 20 most likely directories scd -v diff --git a/plugins/scd/scd b/plugins/scd/scd index 1567d2736..39b28237d 100755 --- a/plugins/scd/scd +++ b/plugins/scd/scd @@ -11,20 +11,22 @@ fi local DOC='scd -- smart change to a recently used directory usage: scd [options] [pattern1 pattern2 ...] Go to a directory path that contains all fixed string patterns. Prefer -recently visited directories and directories with patterns in their tail -component. Display a selection menu in case of multiple matches. +recent or frequently visited directories as found in the directory index. +Display a selection menu in case of multiple matches. Options: - -a, --add add specified directories to the directory index - --unindex remove specified directories from the index - -r, --recursive apply options --add or --unindex recursively + -a, --add add specified directories to the directory index. + --unindex remove current or specified directories from the index. + -r, --recursive apply options --add or --unindex recursively. --alias=ALIAS create alias for the current or specified directory and - store it in ~/.scdalias.zsh + store it in ~/.scdalias.zsh. --unalias remove ALIAS definition for the current or specified - directory from ~/.scdalias.zsh - --list show matching directories and exit - -v, --verbose display directory rank in the selection menu - -h, --help display this message and exit + directory from ~/.scdalias.zsh. + -A, --all include all matching directories. Disregard matching by + directory alias and filtering of less likely paths. + --list show matching directories and exit. + -v, --verbose display directory rank in the selection menu. + -h, --help display this message and exit. ' local SCD_HISTFILE=${SCD_HISTFILE:-${HOME}/.scdhistory} @@ -35,9 +37,9 @@ local SCD_THRESHOLD=${SCD_THRESHOLD:-0.005} local SCD_SCRIPT=${RUNNING_AS_COMMAND:+$SCD_SCRIPT} local SCD_ALIAS=~/.scdalias.zsh -local ICASE a d m p i tdir maxrank threshold +local ICASE a d m p i maxrank threshold local opt_help opt_add opt_unindex opt_recursive opt_verbose -local opt_alias opt_unalias opt_list +local opt_alias opt_unalias opt_all opt_list local -A drank dalias local dmatching local last_directory @@ -56,7 +58,8 @@ zmodload -i zsh/zutil zmodload -i zsh/datetime zparseopts -D -- a=opt_add -add=opt_add -unindex=opt_unindex \ r=opt_recursive -recursive=opt_recursive \ - -alias:=opt_alias -unalias=opt_unalias -list=opt_list \ + -alias:=opt_alias -unalias=opt_unalias \ + A=opt_all -all=opt_all -list=opt_list \ v=opt_verbose -verbose=opt_verbose h=opt_help -help=opt_help \ || $EXIT $? @@ -68,6 +71,11 @@ fi # load directory aliases if they exist [[ -r $SCD_ALIAS ]] && source $SCD_ALIAS +# Private internal functions are prefixed with _scd_Y19oug_. +# Clean them up when the scd function returns. +setopt localtraps +trap 'unfunction -m "_scd_Y19oug_*"' EXIT + # works faster than the (:a) modifier and is compatible with zsh 4.2.6 _scd_Y19oug_abspath() { set -A $1 ${(ps:\0:)"$( @@ -123,11 +131,52 @@ if [[ -n $opt_unalias ]]; then $EXIT $? fi +# The "compress" function collapses repeated directories to +# one entry with a time stamp that gives equivalent-probability. +_scd_Y19oug_compress() { + awk -v epochseconds=$EPOCHSECONDS -v meanlife=$SCD_MEANLIFE ' + BEGIN { FS = "[:;]"; } + length($0) < 4096 && $2 > 0 { + tau = 1.0 * ($2 - epochseconds) / meanlife; + if (tau < -6.9078) tau = -6.9078; + prob = exp(tau); + sub(/^[^;]*;/, ""); + if (NF) { + dlist[last[$0]] = ""; + dlist[NR] = $0; + last[$0] = NR; + ptot[$0] += prob; + } + } + END { + for (i = 1; i <= NR; ++i) { + d = dlist[i]; + if (d) { + ts = log(ptot[d]) * meanlife + epochseconds; + printf(": %.0f:0;%s\n", ts, d); + } + } + } + ' $* +} + # Rewrite directory index if it is at least 20% oversized if [[ -s $SCD_HISTFILE ]] && \ (( $(wc -l <$SCD_HISTFILE) > 1.2 * $SCD_HISTSIZE )); then - m=( ${(f)"$(<$SCD_HISTFILE)"} ) - print -lr -- ${m[-$SCD_HISTSIZE,-1]} >| ${SCD_HISTFILE} + # compress repeated entries + m=( ${(f)"$(_scd_Y19oug_compress $SCD_HISTFILE)"} ) + # purge non-existent directories + m=( ${(f)"$( + for a in $m; do + if [[ -d ${a#*;} ]]; then print -r -- $a; fi + done + )"} + ) + # cut old entries if still oversized + if [[ $#m -gt $SCD_HISTSIZE ]]; then + m=( ${m[-$SCD_HISTSIZE,-1]} ) + fi + print -lr -- $m >| ${SCD_HISTFILE} fi # Determine the last recorded directory @@ -135,7 +184,6 @@ if [[ -s ${SCD_HISTFILE} ]]; then last_directory=${"$(tail -1 ${SCD_HISTFILE})"#*;} fi -# Internal functions are prefixed with "_scd_Y19oug_". # The "record" function adds its arguments to the directory index. _scd_Y19oug_record() { while [[ -n $last_directory && $1 == $last_directory ]]; do @@ -217,7 +265,7 @@ _scd_Y19oug_action() { # set global arrays dmatching and drank _scd_Y19oug_match() { ## single argument that is an existing directory or directory alias - if [[ $# == 1 ]] && \ + if [[ -z $opt_all && $# == 1 ]] && \ [[ -d ${d::=$1} || -d ${d::=${nameddirs[$1]}} ]] && [[ -x $d ]]; then _scd_Y19oug_abspath dmatching $d @@ -227,6 +275,8 @@ _scd_Y19oug_match() { # ignore case unless there is an argument with an uppercase letter [[ "$*" == *[[:upper:]]* ]] || ICASE='(#i)' + # support "$" as an anchor for the directory name ending + argv=( ${argv/(#m)?[$](#e)/${MATCH[1]}(#e)} ) # calculate rank of all directories in the SCD_HISTFILE and keep it as drank # include a dummy entry for splitting of an empty string is buggy @@ -237,10 +287,10 @@ _scd_Y19oug_match() { BEGIN { FS = "[:;]"; } length($0) < 4096 && $2 > 0 { tau = 1.0 * ($2 - epochseconds) / meanlife; - if (tau < -4.61) tau = -4.61; - prec = exp(tau); + if (tau < -6.9078) tau = -6.9078; + prob = exp(tau); sub(/^[^;]*;/, ""); - if (NF) ptot[$0] += prec; + if (NF) ptot[$0] += prob; } END { for (di in ptot) { print di; print ptot[di]; } }' )"} @@ -249,9 +299,12 @@ _scd_Y19oug_match() { # filter drank to the entries that match all arguments for a; do - p=${ICASE}"*${a}*" + p=${ICASE}"*(${a})*" drank=( ${(kv)drank[(I)${~p}]} ) done + # require at least one argument matches the directory name + p=${ICASE}"*(${(j:|:)argv})[^/]#" + drank=( ${(kv)drank[(I)${~p}]} ) # build a list of matching directories reverse-sorted by their probabilities dmatching=( ${(f)"$( @@ -261,26 +314,6 @@ _scd_Y19oug_match() { )"} ) - # if some directory paths match all patterns in order, discard all others - p=${ICASE}"*${(j:*:)argv}*" - m=( ${(M)dmatching:#${~p}} ) - [[ -d ${m[1]} ]] && dmatching=( $m ) - # if some directory names match last pattern, discard all others - p=${ICASE}"*${(j:*:)argv}[^/]#" - m=( ${(M)dmatching:#${~p}} ) - [[ -d ${m[1]} ]] && dmatching=( $m ) - # if some directory names match all patterns, discard all others - m=( $dmatching ) - for a; do - p=${ICASE}"*/[^/]#${a}[^/]#" - m=( ${(M)m:#${~p}} ) - done - [[ -d ${m[1]} ]] && dmatching=( $m ) - # if some directory names match all patterns in order, discard all others - p=${ICASE}"/*${(j:[^/]#:)argv}[^/]#" - m=( ${(M)dmatching:#${~p}} ) - [[ -d ${m[1]} ]] && dmatching=( $m ) - # do not match $HOME or $PWD when run without arguments if [[ $# == 0 ]]; then dmatching=( ${dmatching:#(${HOME}|${PWD})} ) @@ -302,6 +335,9 @@ _scd_Y19oug_match() { # discard all directories below the rank threshold threshold=$(( maxrank * SCD_THRESHOLD )) + if [[ -n ${opt_all} ]]; then + threshold=0 + fi dmatching=( ${^dmatching}(Ne:'(( ${drank[$REPLY]} >= threshold ))':) ) } @@ -339,6 +375,7 @@ fi ## here we have multiple matches - display selection menu a=( {a-z} {A-Z} ) +a=( ${a[1,${#dmatching}]} ) p=( ) for i in {1..${#dmatching}}; do [[ -n ${a[i]} ]] || break From eae70054d15948cc6ddb3d8d4f252ff2c7cf6ad5 Mon Sep 17 00:00:00 2001 From: Jaap Broekhuizen Date: Mon, 3 Nov 2014 12:29:19 +0100 Subject: [PATCH 0126/1175] Added VIRTUAL_ENV_DISABLE_PROMPT to steeef.zsh-theme This stops the virtual env name from being printed before it is actually being used in the zsh prompt. --- themes/steeef.zsh-theme | 2 ++ 1 file changed, 2 insertions(+) diff --git a/themes/steeef.zsh-theme b/themes/steeef.zsh-theme index 9d27410b8..e38188d35 100644 --- a/themes/steeef.zsh-theme +++ b/themes/steeef.zsh-theme @@ -7,6 +7,8 @@ # git untracked files modification from Brian Carper: # http://briancarper.net/blog/570/git-info-in-your-zsh-prompt +export VIRTUAL_ENV_DISABLE_PROMPT=1 + function virtualenv_info { [ $VIRTUAL_ENV ] && echo '('$fg[blue]`basename $VIRTUAL_ENV`%{$reset_color%}') ' } From 74177c5320b2a1b2f8c4c695c05984b57fd7c6ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Thu, 9 Oct 2014 13:44:54 +0200 Subject: [PATCH 0127/1175] Change all whoami calls for $USER variable This avoid spawning additional processes, as the $USER variable will **always** contain the current logged-in user. --- lib/completion.zsh | 4 ++-- plugins/systemadmin/systemadmin.plugin.zsh | 2 +- themes/adben.zsh-theme | 5 ++--- themes/agnoster.zsh-theme | 6 ++---- themes/flazz.zsh-theme | 2 +- themes/obraun.zsh-theme | 2 +- themes/re5et.zsh-theme | 2 +- themes/sunrise.zsh-theme | 2 +- themes/ys.zsh-theme | 2 +- 9 files changed, 12 insertions(+), 15 deletions(-) diff --git a/lib/completion.zsh b/lib/completion.zsh index 83b6efb66..3a19a4eba 100644 --- a/lib/completion.zsh +++ b/lib/completion.zsh @@ -27,9 +27,9 @@ zstyle ':completion:*:*:*:*:*' menu select zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#) ([0-9a-z-]#)*=01;34=0=01' if [ "$OSTYPE[0,7]" = "solaris" ] then - zstyle ':completion:*:*:*:*:processes' command "ps -u `whoami` -o pid,user,comm" + zstyle ':completion:*:*:*:*:processes' command "ps -u $USER -o pid,user,comm" else - zstyle ':completion:*:*:*:*:processes' command "ps -u `whoami` -o pid,user,comm -w -w" + zstyle ':completion:*:*:*:*:processes' command "ps -u $USER -o pid,user,comm -w -w" fi # disable named-directories autocompletion diff --git a/plugins/systemadmin/systemadmin.plugin.zsh b/plugins/systemadmin/systemadmin.plugin.zsh index f5e44c66f..e0b1773ad 100644 --- a/plugins/systemadmin/systemadmin.plugin.zsh +++ b/plugins/systemadmin/systemadmin.plugin.zsh @@ -30,7 +30,7 @@ function retlog() { } alias ping='ping -c 5' -alias clr='clear;echo "Currently logged in on $(tty), as $(whoami) in directory $(pwd)."' +alias clr='clear;echo "Currently logged in on $(tty), as $USER in directory $(pwd)."' alias path='echo -e ${PATH//:/\\n}' alias mkdir='mkdir -pv' # get top process eating memory diff --git a/themes/adben.zsh-theme b/themes/adben.zsh-theme index aa3093f64..6869c8a20 100644 --- a/themes/adben.zsh-theme +++ b/themes/adben.zsh-theme @@ -89,9 +89,8 @@ function precmd { # Context: user@directory or just directory prompt_context () { - local user=`whoami` - if [[ "$user" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then - echo -n "${PR_RESET}${PR_RED}$user@%m${PR_RESET}${PR_BRIGHT_YELLOW}%~%<<${PR_RESET}" + if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then + echo -n "${PR_RESET}${PR_RED}$USER@%m${PR_RESET}${PR_BRIGHT_YELLOW}%~%<<${PR_RESET}" else echo -n "${PR_RESET}${PR_BRIGHT_YELLOW}%~%<<${PR_RESET}" fi diff --git a/themes/agnoster.zsh-theme b/themes/agnoster.zsh-theme index 2b33c48bc..7a62bd860 100644 --- a/themes/agnoster.zsh-theme +++ b/themes/agnoster.zsh-theme @@ -60,10 +60,8 @@ prompt_end() { # Context: user@hostname (who am I and where am I) prompt_context() { - local user=`whoami` - - if [[ "$user" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then - prompt_segment black default "%(!.%{%F{yellow}%}.)$user@%m" + if [[ "$USER" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then + prompt_segment black default "%(!.%{%F{yellow}%}.)$USER@%m" fi } diff --git a/themes/flazz.zsh-theme b/themes/flazz.zsh-theme index 280794f2b..c0a7fb5d0 100644 --- a/themes/flazz.zsh-theme +++ b/themes/flazz.zsh-theme @@ -1,4 +1,4 @@ -if [ "$(whoami)" = "root" ] +if [ "$USER" = "root" ] then CARETCOLOR="red" else CARETCOLOR="blue" fi diff --git a/themes/obraun.zsh-theme b/themes/obraun.zsh-theme index 08d137665..7af44056f 100644 --- a/themes/obraun.zsh-theme +++ b/themes/obraun.zsh-theme @@ -1,4 +1,4 @@ -if [ "$(whoami)" = "root" ]; then CARETCOLOR="red"; else CARETCOLOR="blue"; fi +if [ "$USER" = "root" ]; then CARETCOLOR="red"; else CARETCOLOR="blue"; fi local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})" diff --git a/themes/re5et.zsh-theme b/themes/re5et.zsh-theme index 5bded76a3..95af1e2ee 100644 --- a/themes/re5et.zsh-theme +++ b/themes/re5et.zsh-theme @@ -1,4 +1,4 @@ -if [ "$(whoami)" = "root" ]; then CARETCOLOR="red"; else CARETCOLOR="magenta"; fi +if [ "$USER" = "root" ]; then CARETCOLOR="red"; else CARETCOLOR="magenta"; fi local return_code="%(?..%{$fg_bold[red]%}:( %?%{$reset_color%})" diff --git a/themes/sunrise.zsh-theme b/themes/sunrise.zsh-theme index 4bea20a1b..28befd01b 100644 --- a/themes/sunrise.zsh-theme +++ b/themes/sunrise.zsh-theme @@ -10,7 +10,7 @@ Y=$fg_no_bold[yellow] B=$fg_no_bold[blue] RESET=$reset_color -if [ "$(whoami)" = "root" ]; then +if [ "$USER" = "root" ]; then PROMPTCOLOR="%{$R%}" PREFIX="-!-"; else PROMPTCOLOR="" PREFIX="---"; diff --git a/themes/ys.zsh-theme b/themes/ys.zsh-theme index a44f295f4..65448964d 100644 --- a/themes/ys.zsh-theme +++ b/themes/ys.zsh-theme @@ -33,7 +33,7 @@ ${git_info} \ %{$fg[white]%}[%*] %{$terminfo[bold]$fg[red]%}$ %{$reset_color%}" -if [[ "$(whoami)" == "root" ]]; then +if [[ "$USER" == "root" ]]; then PROMPT=" %{$terminfo[bold]$fg[blue]%}#%{$reset_color%} \ %{$bg[yellow]%}%{$fg[cyan]%}%n%{$reset_color%} \ From 4310a15de5d0587ef135f9e12857620c4788dec2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Thu, 9 Oct 2014 13:55:50 +0200 Subject: [PATCH 0128/1175] Change all pwd calls for $PWD variable This avoids spawning additional processes as $PWD **always** contains the current working directory. --- plugins/dirhistory/dirhistory.plugin.zsh | 6 +++--- plugins/jump/jump.plugin.zsh | 6 +++--- plugins/pow/pow.plugin.zsh | 8 ++++---- plugins/svn/svn.plugin.zsh | 2 +- plugins/systemadmin/systemadmin.plugin.zsh | 2 +- plugins/vim-interaction/vim-interaction.plugin.zsh | 2 +- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/plugins/dirhistory/dirhistory.plugin.zsh b/plugins/dirhistory/dirhistory.plugin.zsh index 504d7ec14..d101cfcae 100644 --- a/plugins/dirhistory/dirhistory.plugin.zsh +++ b/plugins/dirhistory/dirhistory.plugin.zsh @@ -3,7 +3,7 @@ # that the user has changed to in the past, and ALT-RIGHT undoes ALT-LEFT. # -dirhistory_past=(`pwd`) +dirhistory_past=($PWD) dirhistory_future=() export dirhistory_past export dirhistory_future @@ -50,7 +50,7 @@ function push_future() { # Called by zsh when directory changes function chpwd() { - push_past `pwd` + push_past $PWD # If DIRHISTORY_CD is not set... if [[ -z "${DIRHISTORY_CD+x}" ]]; then # ... clear future. @@ -73,7 +73,7 @@ function dirhistory_back() { pop_past cw if [[ "" == "$cw" ]]; then # Someone overwrote our variable. Recover it. - dirhistory_past=(`pwd`) + dirhistory_past=($PWD) return fi diff --git a/plugins/jump/jump.plugin.zsh b/plugins/jump/jump.plugin.zsh index 1b23b5d42..b16814fe4 100644 --- a/plugins/jump/jump.plugin.zsh +++ b/plugins/jump/jump.plugin.zsh @@ -14,12 +14,12 @@ jump() { mark() { if (( $# == 0 )); then - MARK=$(basename "$(pwd)") + MARK=$(basename "$PWD") else MARK="$1" fi - if read -q \?"Mark $(pwd) as ${MARK}? (y/n) "; then - mkdir -p "$MARKPATH"; ln -s "$(pwd)" "$MARKPATH/$MARK" + if read -q \?"Mark $PWD as ${MARK}? (y/n) "; then + mkdir -p "$MARKPATH"; ln -s "$PWD" "$MARKPATH/$MARK" fi } diff --git a/plugins/pow/pow.plugin.zsh b/plugins/pow/pow.plugin.zsh index d85c88777..ded3336a7 100644 --- a/plugins/pow/pow.plugin.zsh +++ b/plugins/pow/pow.plugin.zsh @@ -21,13 +21,13 @@ rack_root(){ setopt chaselinks - local orgdir="$(pwd)" - local basedir="$(pwd)" + local orgdir="$PWD" + local basedir="$PWD" while [[ $basedir != '/' ]]; do test -e "$basedir/config.ru" && break builtin cd ".." 2>/dev/null - basedir="$(pwd)" + basedir="$PWD" done builtin cd "$orgdir" 2>/dev/null @@ -56,7 +56,7 @@ kapow(){ compctl -W ~/.pow -/ kapow powit(){ - local basedir="$(pwd)" + local basedir="$PWD" local vhost=$1 [ ! -n "$vhost" ] && vhost=$(rack_root_detect) if [ ! -h ~/.pow/$vhost ] diff --git a/plugins/svn/svn.plugin.zsh b/plugins/svn/svn.plugin.zsh index ef6da5bd3..ba281d790 100644 --- a/plugins/svn/svn.plugin.zsh +++ b/plugins/svn/svn.plugin.zsh @@ -77,7 +77,7 @@ function svn_dirty() { function svn_dirty_choose_pwd () { if in_svn; then - root=`pwd` + root=$PWD if $(svn status $root 2> /dev/null | grep -Eq '^\s*[ACDIM!?L]'); then # Grep exits with 0 when "One or more lines were selected", return "dirty". echo $1 diff --git a/plugins/systemadmin/systemadmin.plugin.zsh b/plugins/systemadmin/systemadmin.plugin.zsh index e0b1773ad..4ae70dfa7 100644 --- a/plugins/systemadmin/systemadmin.plugin.zsh +++ b/plugins/systemadmin/systemadmin.plugin.zsh @@ -30,7 +30,7 @@ function retlog() { } alias ping='ping -c 5' -alias clr='clear;echo "Currently logged in on $(tty), as $USER in directory $(pwd)."' +alias clr='clear;echo "Currently logged in on $(tty), as $USER in directory $PWD."' alias path='echo -e ${PATH//:/\\n}' alias mkdir='mkdir -pv' # get top process eating memory diff --git a/plugins/vim-interaction/vim-interaction.plugin.zsh b/plugins/vim-interaction/vim-interaction.plugin.zsh index 5142f1f9b..b0b9414cd 100644 --- a/plugins/vim-interaction/vim-interaction.plugin.zsh +++ b/plugins/vim-interaction/vim-interaction.plugin.zsh @@ -9,7 +9,7 @@ function resolveFile if [ -f "$1" ]; then echo $(readlink -f "$1") elif [[ "${1#/}" == "$1" ]]; then - echo "$(pwd)/$1" + echo "$PWD/$1" else echo $1 fi From 95d795e8cad7d1a754dfad520309d7a41b69275f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Thu, 9 Oct 2014 17:05:48 +0200 Subject: [PATCH 0129/1175] Change all hostname calls for $HOST or $SHORT_HOST --- plugins/profiles/profiles.plugin.zsh | 2 +- themes/candy-kingdom.zsh-theme | 2 +- themes/dieter.zsh-theme | 2 +- themes/fino-time.zsh-theme | 2 +- themes/fino.zsh-theme | 2 +- themes/kardan.zsh-theme | 2 +- themes/michelebologna.zsh-theme | 2 +- themes/ys.zsh-theme | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/plugins/profiles/profiles.plugin.zsh b/plugins/profiles/profiles.plugin.zsh index 8faae6b53..4b3d6a852 100644 --- a/plugins/profiles/profiles.plugin.zsh +++ b/plugins/profiles/profiles.plugin.zsh @@ -2,7 +2,7 @@ # This will look for a custom profile for the local machine and each domain or # subdomain it belongs to. (e.g. com, example.com and foo.example.com) -parts=(${(s:.:)$(hostname)}) +parts=(${(s:.:)$HOST}) for i in {${#parts}..1}; do profile=${(j:.:)${parts[$i,${#parts}]}} file=$ZSH_CUSTOM/profiles/$profile diff --git a/themes/candy-kingdom.zsh-theme b/themes/candy-kingdom.zsh-theme index 718977d90..889128758 100644 --- a/themes/candy-kingdom.zsh-theme +++ b/themes/candy-kingdom.zsh-theme @@ -13,7 +13,7 @@ patches: Date: Thu, 6 Nov 2014 10:34:26 -0800 Subject: [PATCH 0130/1175] Add bgnotify plugin, a cross-platform background notifier! --- plugins/bgnotify/README.md | 39 +++++++++++++++++ plugins/bgnotify/bgnotify.plugin.zsh | 65 ++++++++++++++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 plugins/bgnotify/README.md create mode 100755 plugins/bgnotify/bgnotify.plugin.zsh diff --git a/plugins/bgnotify/README.md b/plugins/bgnotify/README.md new file mode 100644 index 000000000..bf4b1fd09 --- /dev/null +++ b/plugins/bgnotify/README.md @@ -0,0 +1,39 @@ +# bgnotify zsh plugin + +cross-platform background notifications for long running commands! Supports OSX and Ubuntu linux. + +Standalone homepage: [t413/zsh-background-notify](https://github.com/t413/zsh-background-notify) + +---------------------------------- + +## How to use! + +Just add bgnotify to your plugins list in your `.zshrc` + +- On OS X you'll need [terminal-notifer](https://github.com/alloy/terminal-notifier) + * `brew install terminal-notifier` (or `gem install terminal-notifier`) +- On ubuntu you're already all set! + + +## Configuration + +One can configure a few things: + +- `bgnotify_threshold` sets the notification threshold time (default 6 seconds) +- `function bgnotify_formatted` lets you change the notification + +Use these by adding a function definition before the your call to source. Example: + +~~~ sh +bgnotify_threshold=4 ## set your own notification threshold + +function bgnotify_formatted { + ## $1=exit_status, $2=command, $3=elapsed_time + [ $1 -eq 0 ] && title="Holy Smokes Batman!" || title="Holy Graf Zeppelin!" + bgnotify "$title -- after $3 s" "$2"; +} + +plugins=(git bgnotify) ## add to plugins list +source $ZSH/oh-my-zsh.sh ## existing source call +~~~ + diff --git a/plugins/bgnotify/bgnotify.plugin.zsh b/plugins/bgnotify/bgnotify.plugin.zsh new file mode 100755 index 000000000..f204d9dc8 --- /dev/null +++ b/plugins/bgnotify/bgnotify.plugin.zsh @@ -0,0 +1,65 @@ +#!/usr/bin/env zsh + + +## setup ## + +[[ -o interactive ]] || return #interactive only! +zmodload zsh/datetime || { print "can't load zsh/datetime"; return } # faster than date() +autoload -Uz add-zsh-hook || { print "can't add zsh hook!"; return } + +(( ${+bgnotify_threshold} )) || bgnotify_threshold=5 #default 10 seconds + + +## definitions ## + +if ! (type notify_formatted | grep -q 'function'); then + echo "using default notify_formatted" + function bgnotify_formatted { + ## exit_status, command, elapsed_time + [ $1 -eq 0 ] && title="#win (took $3 s)" || title="#fail (took $3 s)" + bgnotify "$title" "$2" + } +fi + +currentWindowId () { + if hash notify-send 2>/dev/null; then #ubuntu! + xprop -root | awk '/NET_ACTIVE_WINDOW/ { print $5; exit }' + elif hash osascript 2>/dev/null; then #osx + osascript -e 'tell application (path to frontmost application as text) to id of front window' 2&> /dev/null + fi +} + +bgnotify () { + if hash notify-send 2>/dev/null; then #ubuntu! + notify-send $1 $2 + elif hash terminal-notifier 2>/dev/null; then #osx + terminal-notifier -message $2 -title $1 + elif hash growlnotify 2>/dev/null; then #osx growl + growlnotify -m $1 $2 + fi +} + + +## Zsh hooks ## + +bgnotify_begin() { + bgnotify_timestamp=$EPOCHSECONDS + bgnotify_lastcmd=$1 + bgnotify_windowid=$(currentWindowId) +} + +bgnotify_end() { + didexit=$? + elapsed=$(( $EPOCHSECONDS - $bgnotify_timestamp )) + past_threshold=$(( $elapsed >= $bgnotify_threshold )) + if (( bgnotify_timestamp > 0 )) && (( past_threshold )); then + if [ $(currentWindowId) != "$bgnotify_windowid" ]; then + print -n "\a" + bgnotify_formatted "$didexit" "$bgnotify_lastcmd" "$elapsed" + fi + fi + bgnotify_timestamp=0 #reset it to 0! +} + +add-zsh-hook preexec bgnotify_begin +add-zsh-hook precmd bgnotify_end From 0b0cc2cdea1e3b3e4af78d8d4a9992be468031eb Mon Sep 17 00:00:00 2001 From: Tim O'Brien Date: Thu, 6 Nov 2014 10:31:27 -0800 Subject: [PATCH 0131/1175] Fixed math on linux, removed debug echo. --- plugins/bgnotify/bgnotify.plugin.zsh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/plugins/bgnotify/bgnotify.plugin.zsh b/plugins/bgnotify/bgnotify.plugin.zsh index f204d9dc8..b5fb76f7e 100755 --- a/plugins/bgnotify/bgnotify.plugin.zsh +++ b/plugins/bgnotify/bgnotify.plugin.zsh @@ -13,7 +13,6 @@ autoload -Uz add-zsh-hook || { print "can't add zsh hook!"; return } ## definitions ## if ! (type notify_formatted | grep -q 'function'); then - echo "using default notify_formatted" function bgnotify_formatted { ## exit_status, command, elapsed_time [ $1 -eq 0 ] && title="#win (took $3 s)" || title="#fail (took $3 s)" @@ -50,8 +49,8 @@ bgnotify_begin() { bgnotify_end() { didexit=$? - elapsed=$(( $EPOCHSECONDS - $bgnotify_timestamp )) - past_threshold=$(( $elapsed >= $bgnotify_threshold )) + elapsed=$(( EPOCHSECONDS - bgnotify_timestamp )) + past_threshold=$(( elapsed >= bgnotify_threshold )) if (( bgnotify_timestamp > 0 )) && (( past_threshold )); then if [ $(currentWindowId) != "$bgnotify_windowid" ]; then print -n "\a" From adafe271f02ab767c29f80f5657f448d593cdaf6 Mon Sep 17 00:00:00 2001 From: Tim O'Brien Date: Thu, 6 Nov 2014 10:32:29 -0800 Subject: [PATCH 0132/1175] add cygwin windows support with notifu, add to readme --- plugins/bgnotify/README.md | 2 +- plugins/bgnotify/bgnotify.plugin.zsh | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/bgnotify/README.md b/plugins/bgnotify/README.md index bf4b1fd09..68fa7529e 100644 --- a/plugins/bgnotify/README.md +++ b/plugins/bgnotify/README.md @@ -13,6 +13,7 @@ Just add bgnotify to your plugins list in your `.zshrc` - On OS X you'll need [terminal-notifer](https://github.com/alloy/terminal-notifier) * `brew install terminal-notifier` (or `gem install terminal-notifier`) - On ubuntu you're already all set! +- On windows you can use [notifu](http://www.paralint.com/projects/notifu/) or the Cygwin Ports libnotify package ## Configuration @@ -36,4 +37,3 @@ function bgnotify_formatted { plugins=(git bgnotify) ## add to plugins list source $ZSH/oh-my-zsh.sh ## existing source call ~~~ - diff --git a/plugins/bgnotify/bgnotify.plugin.zsh b/plugins/bgnotify/bgnotify.plugin.zsh index b5fb76f7e..42129bd06 100755 --- a/plugins/bgnotify/bgnotify.plugin.zsh +++ b/plugins/bgnotify/bgnotify.plugin.zsh @@ -35,6 +35,8 @@ bgnotify () { terminal-notifier -message $2 -title $1 elif hash growlnotify 2>/dev/null; then #osx growl growlnotify -m $1 $2 + elif hash notifu 2>/dev/null; then #cygwyn support! + notifu /m "$2" /p "$1" fi } From 11253336cfc771537f63268fd03d466cd27936a0 Mon Sep 17 00:00:00 2001 From: Benjamin Stier Date: Fri, 7 Nov 2014 10:47:27 +0100 Subject: [PATCH 0133/1175] Fixes the profiles-plugin An error was introduced with 7f75bb9, which uses special vars. This is the fix. --- plugins/profiles/profiles.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/profiles/profiles.plugin.zsh b/plugins/profiles/profiles.plugin.zsh index 4b3d6a852..5bc56cea0 100644 --- a/plugins/profiles/profiles.plugin.zsh +++ b/plugins/profiles/profiles.plugin.zsh @@ -2,7 +2,7 @@ # This will look for a custom profile for the local machine and each domain or # subdomain it belongs to. (e.g. com, example.com and foo.example.com) -parts=(${(s:.:)$HOST}) +parts=(${(s:.:)HOST}) for i in {${#parts}..1}; do profile=${(j:.:)${parts[$i,${#parts}]}} file=$ZSH_CUSTOM/profiles/$profile From 3d376bbd5b0a230e9e1a2d5497623d92ec94615e Mon Sep 17 00:00:00 2001 From: Tim O'Brien Date: Fri, 7 Nov 2014 08:35:31 -0800 Subject: [PATCH 0134/1175] Fix renamed method issue. --- plugins/bgnotify/bgnotify.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/bgnotify/bgnotify.plugin.zsh b/plugins/bgnotify/bgnotify.plugin.zsh index 42129bd06..722213734 100755 --- a/plugins/bgnotify/bgnotify.plugin.zsh +++ b/plugins/bgnotify/bgnotify.plugin.zsh @@ -12,7 +12,7 @@ autoload -Uz add-zsh-hook || { print "can't add zsh hook!"; return } ## definitions ## -if ! (type notify_formatted | grep -q 'function'); then +if ! (type bgnotify_formatted | grep -q 'function'); then function bgnotify_formatted { ## exit_status, command, elapsed_time [ $1 -eq 0 ] && title="#win (took $3 s)" || title="#fail (took $3 s)" From cbec1d77b2b238eadcdad5d926339d4a034240e9 Mon Sep 17 00:00:00 2001 From: Tim O'Brien Date: Fri, 7 Nov 2014 10:57:02 -0800 Subject: [PATCH 0135/1175] Add window ID fallback for windows. - maybe someday use GetForegroundWindow() from User32.lib ... --- plugins/bgnotify/bgnotify.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/bgnotify/bgnotify.plugin.zsh b/plugins/bgnotify/bgnotify.plugin.zsh index 722213734..f3cf0e3b8 100755 --- a/plugins/bgnotify/bgnotify.plugin.zsh +++ b/plugins/bgnotify/bgnotify.plugin.zsh @@ -25,6 +25,8 @@ currentWindowId () { xprop -root | awk '/NET_ACTIVE_WINDOW/ { print $5; exit }' elif hash osascript 2>/dev/null; then #osx osascript -e 'tell application (path to frontmost application as text) to id of front window' 2&> /dev/null + else + echo $EPOCHSECONDS #fallback for windows fi } From 8bd8597e12d25ada4a288bffef946ac62b9f9de4 Mon Sep 17 00:00:00 2001 From: Ian Lancaster Date: Sat, 8 Nov 2014 04:58:52 -0500 Subject: [PATCH 0136/1175] Remove deprecated brew commands, update core commands `brew services` and `brew server` were moved to homebrew-boneyard. --- plugins/brew/_brew | 38 +++++++++----------------------------- 1 file changed, 9 insertions(+), 29 deletions(-) diff --git a/plugins/brew/_brew b/plugins/brew/_brew index 40442a1d3..d11aa245d 100644 --- a/plugins/brew/_brew +++ b/plugins/brew/_brew @@ -19,21 +19,18 @@ _brew_outdated_formulae() { outdated_formulae=(`brew outdated`) } -_brew_running_services() { - running_services=(`brew services list | awk '{print $1}'`) -} - local -a _1st_arguments _1st_arguments=( 'audit:check formulae for Homebrew coding style' - 'bundle:look for a Brewfile and run each line as a brew command' 'cat:display formula file for a formula' 'cleanup:uninstall unused and old versions of packages' 'commands:show a list of commands' 'create:create a new formula' - 'deps:list dependencies and dependants of a formula' + 'deps:list dependencies of a formula' 'doctor:audits your installation for common issues' 'edit:edit a formula' + 'fetch:download formula resources to the cache' + 'gist-logs:generate a gist of the full build logs' 'home:visit the homepage of a formula or the brew project' 'info:information about a formula' 'install:install a formula' @@ -44,32 +41,24 @@ _1st_arguments=( 'missing:check all installed formuale for missing dependencies.' 'outdated:list formulae for which a newer version is available' 'pin:pin specified formulae' + 'postinstall:perform post_install for a given formula' 'prune:remove dead links' 'remove:remove a formula' 'search:search for a formula (/regex/ or string)' - 'server:start a local web app that lets you browse formulae (requires Sinatra)' - 'services:small wrapper around `launchctl` for supported formulae' + 'switch:switch linkage between installed versions of a formula' 'tap:tap a new formula repository from GitHub, or list existing taps' + 'test-bot:test a formula and build a bottle' 'uninstall:uninstall a formula' 'unlink:unlink a formula' 'unpin:unpin specified formulae' 'untap:remove a tapped repository' - 'update:freshen up links' + 'update:pull latest repository' 'upgrade:upgrade outdated formulae' 'uses:show formulae which depend on a formula' ) -local -a _service_arguments -_service_arguments=( - 'cleanup:get rid of stale services and unused plists' - 'list:list all services managed by `brew services`' - 'restart:gracefully restart selected service' - 'start:start selected service' - 'stop:stop selected service' -) - local expl -local -a formulae installed_formulae installed_taps outdated_formulae running_services +local -a formulae installed_formulae installed_taps outdated_formulae _arguments \ '(-v)-v[verbose]' \ @@ -80,6 +69,7 @@ _arguments \ '(--version)--version[version information]' \ '(--prefix)--prefix[where brew lives on this system]' \ '(--cache)--cache[brew cache]' \ + '(--force)--force[brew force]' \ '*:: :->subcmds' && return 0 if (( CURRENT == 1 )); then @@ -109,16 +99,6 @@ case "$words[1]" in _arguments \ '(--macports)--macports[search the macports repository]' \ '(--fink)--fink[search the fink repository]' ;; - services) - if [[ -n "$words[2]" ]]; then - case "$words[2]" in - restart|start|stop) - _brew_running_services - _wanted running_services expl 'running services' compadd -a running_services ;; - esac - else - _describe -t commands "brew services subcommand" _service_arguments - fi ;; untap) _brew_installed_taps _wanted installed_taps expl 'installed taps' compadd -a installed_taps ;; From 98fc8dd91adb5e8754b857127c4d121871d5fadb Mon Sep 17 00:00:00 2001 From: Tim O'Brien Date: Sat, 8 Nov 2014 14:16:56 -0800 Subject: [PATCH 0137/1175] Fix for OS X when no window id is returned (like on the desktop) --- plugins/bgnotify/bgnotify.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/bgnotify/bgnotify.plugin.zsh b/plugins/bgnotify/bgnotify.plugin.zsh index f3cf0e3b8..259d27424 100755 --- a/plugins/bgnotify/bgnotify.plugin.zsh +++ b/plugins/bgnotify/bgnotify.plugin.zsh @@ -24,7 +24,7 @@ currentWindowId () { if hash notify-send 2>/dev/null; then #ubuntu! xprop -root | awk '/NET_ACTIVE_WINDOW/ { print $5; exit }' elif hash osascript 2>/dev/null; then #osx - osascript -e 'tell application (path to frontmost application as text) to id of front window' 2&> /dev/null + osascript -e 'tell application (path to frontmost application as text) to id of front window' 2&> /dev/null || echo "0" else echo $EPOCHSECONDS #fallback for windows fi From fd69c34e0ccb8b7754b05e6f0c797abddb00f920 Mon Sep 17 00:00:00 2001 From: Tim O'Brien Date: Sat, 8 Nov 2014 14:20:37 -0800 Subject: [PATCH 0138/1175] Add screenshots to readme --- plugins/bgnotify/README.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/plugins/bgnotify/README.md b/plugins/bgnotify/README.md index 68fa7529e..b154916d6 100644 --- a/plugins/bgnotify/README.md +++ b/plugins/bgnotify/README.md @@ -16,6 +16,21 @@ Just add bgnotify to your plugins list in your `.zshrc` - On windows you can use [notifu](http://www.paralint.com/projects/notifu/) or the Cygwin Ports libnotify package +## Screenshots + +**Linux** + +![screenshot from 2014-11-07 15 58 36](https://cloud.githubusercontent.com/assets/326829/4962187/256b465c-66da-11e4-927d-cc2fc105e31f.png) + +**OS X** + +![screenshot 2014-11-08 14 15 12](https://cloud.githubusercontent.com/assets/326829/4965780/19fa3eac-6795-11e4-8ed6-0355711123a9.png) + +**Windows** + +![screenshot from 2014-11-07 15 55 00](https://cloud.githubusercontent.com/assets/326829/4962159/a2625ca0-66d9-11e4-9e91-c5834913190e.png) + + ## Configuration One can configure a few things: From d0f3fb3a4fdce51e1f59bdf4817c7adec80b0784 Mon Sep 17 00:00:00 2001 From: Jarin Udom Date: Tue, 10 Jun 2014 07:24:38 -0700 Subject: [PATCH 0139/1175] Merge simplified superjarin theme --- themes/superjarin.zsh-theme | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/themes/superjarin.zsh-theme b/themes/superjarin.zsh-theme index 2920d17a2..86fa9c706 100644 --- a/themes/superjarin.zsh-theme +++ b/themes/superjarin.zsh-theme @@ -1,11 +1,5 @@ -# Grab the current version of ruby in use (via RVM): [ruby-1.8.7] -if [ -e ~/.rvm/bin/rvm-prompt ]; then - JARIN_CURRENT_RUBY_="%{$fg[white]%}[%{$fg[red]%}\$(~/.rvm/bin/rvm-prompt i v)%{$fg[white]%}]%{$reset_color%}" -else - if which rbenv &> /dev/null; then - JARIN_CURRENT_RUBY_="%{$fg[white]%}[%{$fg[red]%}\$(rbenv version | sed -e 's/ (set.*$//')%{$fg[white]%}]%{$reset_color%}" - fi -fi +# Grab the current version of ruby in use: [ruby-1.8.7] +JARIN_CURRENT_RUBY_="%{$fg[white]%}[%{$fg[red]%}\$(ruby_prompt_info)%{$fg[white]%}]%{$reset_color%}" # Grab the current filepath, use shortcuts: ~/Desktop # Append the current git branch, if in a git repository From 95d5f2c641d698b479dc8817ed1a85dcbc965fb6 Mon Sep 17 00:00:00 2001 From: Manfred Touron Date: Thu, 13 Nov 2014 18:59:04 +0100 Subject: [PATCH 0140/1175] [boot2docker plugin] Initial version --- plugins/boot2docker/README.md | 6 +++ plugins/boot2docker/_boot2docker | 70 ++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 plugins/boot2docker/README.md create mode 100644 plugins/boot2docker/_boot2docker diff --git a/plugins/boot2docker/README.md b/plugins/boot2docker/README.md new file mode 100644 index 000000000..9551e2351 --- /dev/null +++ b/plugins/boot2docker/README.md @@ -0,0 +1,6 @@ +## Boot2docker autocomplete plugin + +- Adds autocomplete options for all boot2docker commands. + + +Maintainer : Manfred Touron ([@moul](https://github.com/moul)) diff --git a/plugins/boot2docker/_boot2docker b/plugins/boot2docker/_boot2docker new file mode 100644 index 000000000..baa08b26d --- /dev/null +++ b/plugins/boot2docker/_boot2docker @@ -0,0 +1,70 @@ +#compdef boot2docker + +# Boot2docker autocompletion for oh-my-zsh +# Requires: Boot2docker installed +# Author: Manfred Touron (@moul) + +local -a _1st_arguments +_1st_arguments=( + "init":"Create a new Boot2Docker VM." + "up":"Start VM from any states." + "start":"Start VM from any states." + "boot":"Start VM from any states." + "ssh":"[ssh-command] Login to VM via SSH." + "save":"Suspend VM and save state to disk." + "suspend":"Suspend VM and save state to disk." + "down":"Gracefully shutdown the VM." + "stop":"Gracefully shutdown the VM." + "halt":"Gracefully shutdown the VM." + "restart":"Gracefully reboot the VM." + "poweroff":"Forcefully power off the VM (may corrupt disk image)." + "reset":"Forcefully power cycle the VM (may corrupt disk image)." + "delete":"Delete Boot2Docker VM and its disk image." + "destroy":"Delete Boot2Docker VM and its disk image." + "config":"Show selected profile file settings." + "cfg":"Show selected profile file settings." + "info":"Display detailed information of VM." + "ip":"Display the IP address of the VM's Host-only network." + "socket":"Display the DOCKER_HOST socket to connect to." + "shellinit":"Display the shell command to set up the Docker client." + "status":"Display current state of VM." + "download":"Download Boot2Docker ISO image." + "upgrade":"Upgrade the Boot2Docker ISO image (restart if running)." + "version":"Display version information." +) + +_arguments \ + '(--basevmdk)--basevmdk[Path to VMDK to use as base for persistent partition]' \ + '(--dhcp)--dhcp[enable VirtualBox host-only network DHCP.]' \ + '(--dhcpip)--dhcpip[VirtualBox host-only network DHCP server address.]' \ + '(-s --disksize)'{-s,--disksize}'[boot2docker disk image size (in MB).]' \ + '(--dockerport)--dockerport[host Docker port (forward to port 2376 in VM). (deprecated - use with care)]' \ + '(--driver)--driver[hypervisor driver.]' \ + '(--hostip)--hostip[VirtualBox host-only network IP address.]' \ + '(--iso)--iso[path to boot2docker ISO image.]' \ + '(--iso-url)--iso-url[/api.github.com/repos/boot2docker/boot2docker/releases": source URL to provision the boot2docker ISO image.]' \ + '(--lowerip)--lowerip[VirtualBox host-only network DHCP lower bound.]' \ + '(--memory)'{-m,--memory}'[virtual machine memory size (in MB).]' \ + '(--netmask)--netmask[VirtualBox host-only network mask.]' \ + '(--no-dummy)--no-dummy[Example parameter for the dummy driver.]' \ + '(--retries)--retries[number of port knocking retries during 'start']' \ + '(--serial)--serial[try serial console to get IP address (experimental)]' \ + '(--serialfile)--serialfile[path to the serial socket/pipe.]' \ + '(--ssh)--ssh[path to SSH client utility.]' \ + '(--ssh-keygen)--ssh-keygen[path to ssh-keygen utility.]' \ + '(--sshkey)--sshkey[path to SSH key to use.]' \ + '(--sshport)--sshport[host SSH port (forward to port 22 in VM).]' \ + '(--upperip)--upperip[VirtualBox host-only network DHCP upper bound.]' \ + '(--vbm)--vbm[path to VirtualBox management utility.]' \ + '(--vbox-share)--vbox-share[(defaults to "/Users=Users" if no shares are specified; use "disable" to explicitly prevent any shares from being created) List of directories to share during "up|start|boot" via VirtualBox Guest Additions, with optional labels]' \ + '(--verbose)'{-v,--verbose}'[display verbose command invocations.]' \ + '(--vm)--vm[virtual machine name.]' \ + '(--waittime)--waittime[Time in milliseconds to wait between port knocking retries during 'start']' \ + '*:: :->subcmds' && return 0 + +#_arguments '*:: :->command' + +if (( CURRENT == 1 )); then + _describe -t commands "boot2docker command" _1st_arguments + return +fi From b7fcdc736417086c3623888763f3ba7a40162fb1 Mon Sep 17 00:00:00 2001 From: Manfred Touron Date: Thu, 13 Nov 2014 19:00:27 +0100 Subject: [PATCH 0141/1175] [tmux-cssh plugin] Initial version --- plugins/tmux-cssh/_tmux-cssh | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 plugins/tmux-cssh/_tmux-cssh diff --git a/plugins/tmux-cssh/_tmux-cssh b/plugins/tmux-cssh/_tmux-cssh new file mode 100644 index 000000000..604e2e478 --- /dev/null +++ b/plugins/tmux-cssh/_tmux-cssh @@ -0,0 +1,25 @@ +#compdef tmux-cssh + +# tmux-cssh autocompletion for oh-my-zsh +# Requires: tmux-cssh installed +# Author: Manfred Touron (@moul) + +_arguments \ +'(-h --help)'{-h,--help}'[This help.]' \ +'(-u --user)'{-u,--user}'[User to use.]' \ +'(-c --certificate)'{-c,--certificate}'[Path to ssh-certificate to use.]' \ +'(-sc --ssh)'{-sc,--ssh}'[SSH-connection-string, multiple.]' \ +'(-sa --ssh)'{-sa,--ssh}'[SSH connection arguments, used on every session.]' \ +'(-ts --tmux)'{-ts,--tmux}'[Alternative tmux-session-name, default: tmux-cssh]' \ +'(-ns --new)'{-ns,--new}'[Initializes a new session, like -ts \[name\].]' \ +'(-q --quiet)'{-q,--quiet}'[Quiet-mode.]' \ +'(-f --filename)'{-f,--filename}'[Filename of textfile to get -sc connection-strings from, line separated.]' \ +'(-cs --config)'{-cs,--config}'[Name of config-settings which should be get from config-file "$HOME/.tmux-cssh". Which can be a grep-regular expression to find the name(s).]' \ + ':hosts:_hosts' \ + '*:: :->subcmds' \ + && return 0 + +if (( CURRENT == 1 )); then + _describe -t commands "tmux-cssh command" + return +fi From 923d2c85b40e14ea90d4342be1e1905bb238ea0b Mon Sep 17 00:00:00 2001 From: Geoffrey Washburn Date: Sun, 19 Jan 2014 14:10:16 -0500 Subject: [PATCH 0142/1175] Fix autojump script to support Nix installations --- plugins/autojump/autojump.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/autojump/autojump.plugin.zsh b/plugins/autojump/autojump.plugin.zsh index 50a694764..652d22696 100644 --- a/plugins/autojump/autojump.plugin.zsh +++ b/plugins/autojump/autojump.plugin.zsh @@ -1,6 +1,8 @@ if [ $commands[autojump] ]; then # check if autojump is installed if [ -f $HOME/.autojump/etc/profile.d/autojump.zsh ]; then # manual user-local installation . $HOME/.autojump/etc/profile.d/autojump.zsh + elif [ -f $HOME/.nix-profile/etc/profile.d/autojump.zsh ]; then # nix installation + . $HOME/.nix-profile/etc/profile.d/autojump.zsh elif [ -f /usr/share/autojump/autojump.zsh ]; then # debian and ubuntu package . /usr/share/autojump/autojump.zsh elif [ -f /etc/profile.d/autojump.zsh ]; then # manual installation From 00ec11d3c0a2b2b7413ad84940ddec299aafbb04 Mon Sep 17 00:00:00 2001 From: DanielFGray Date: Sun, 16 Nov 2014 02:47:35 -0600 Subject: [PATCH 0143/1175] ignore any grep aliases that might be defined --- lib/git.zsh | 2 +- plugins/mercurial/mercurial.plugin.zsh | 2 +- plugins/svn-fast-info/svn-fast-info.plugin.zsh | 12 ++++++------ plugins/svn/svn.plugin.zsh | 4 ++-- themes/agnoster.zsh-theme | 4 ++-- themes/bureau.zsh-theme | 2 +- themes/mortalscumbag.zsh-theme | 6 +++--- 7 files changed, 16 insertions(+), 16 deletions(-) diff --git a/lib/git.zsh b/lib/git.zsh index aba095422..913a642b3 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -78,7 +78,7 @@ function git_prompt_long_sha() { git_prompt_status() { INDEX=$(command git status --porcelain -b 2> /dev/null) STATUS="" - if $(echo "$INDEX" | grep -E '^\?\? ' &> /dev/null); then + if $(echo "$INDEX" | command grep -E '^\?\? ' &> /dev/null); then STATUS="$ZSH_THEME_GIT_PROMPT_UNTRACKED$STATUS" fi if $(echo "$INDEX" | grep '^A ' &> /dev/null); then diff --git a/plugins/mercurial/mercurial.plugin.zsh b/plugins/mercurial/mercurial.plugin.zsh index ff95d5e40..ed4d23713 100644 --- a/plugins/mercurial/mercurial.plugin.zsh +++ b/plugins/mercurial/mercurial.plugin.zsh @@ -42,7 +42,7 @@ $ZSH_THEME_REPO_NAME_COLOR$_DISPLAY$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_HG_PROMPT_SU function hg_dirty_choose { if [ $(in_hg) ]; then - hg status 2> /dev/null | grep -Eq '^\s*[ACDIM!?L]' + hg status 2> /dev/null | command grep -Eq '^\s*[ACDIM!?L]' if [ $pipestatus[-1] -eq 0 ]; then # Grep exits with 0 when "One or more lines were selected", return "dirty". echo $1 diff --git a/plugins/svn-fast-info/svn-fast-info.plugin.zsh b/plugins/svn-fast-info/svn-fast-info.plugin.zsh index ea19bcea0..9ea7f641d 100644 --- a/plugins/svn-fast-info/svn-fast-info.plugin.zsh +++ b/plugins/svn-fast-info/svn-fast-info.plugin.zsh @@ -63,11 +63,11 @@ function svn_current_revision() { function svn_status_info() { local svn_status_string="$ZSH_THEME_SVN_PROMPT_CLEAN" local svn_status="$(svn status 2> /dev/null)"; - if grep -E '^\s*A' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string ${ZSH_THEME_SVN_PROMPT_ADDITIONS:-+}"; fi - if grep -E '^\s*D' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string ${ZSH_THEME_SVN_PROMPT_DELETIONS:-✖}"; fi - if grep -E '^\s*M' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string ${ZSH_THEME_SVN_PROMPT_MODIFICATIONS:-✎}"; fi - if grep -E '^\s*[R~]' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string ${ZSH_THEME_SVN_PROMPT_REPLACEMENTS:-∿}"; fi - if grep -E '^\s*\?' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string ${ZSH_THEME_SVN_PROMPT_UNTRACKED:-?}"; fi - if grep -E '^\s*[CI!L]' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string ${ZSH_THEME_SVN_PROMPT_DIRTY:-'!'}"; fi + if command grep -E '^\s*A' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string ${ZSH_THEME_SVN_PROMPT_ADDITIONS:-+}"; fi + if command grep -E '^\s*D' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string ${ZSH_THEME_SVN_PROMPT_DELETIONS:-✖}"; fi + if command grep -E '^\s*M' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string ${ZSH_THEME_SVN_PROMPT_MODIFICATIONS:-✎}"; fi + if command grep -E '^\s*[R~]' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string ${ZSH_THEME_SVN_PROMPT_REPLACEMENTS:-∿}"; fi + if command grep -E '^\s*\?' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string ${ZSH_THEME_SVN_PROMPT_UNTRACKED:-?}"; fi + if command grep -E '^\s*[CI!L]' &> /dev/null <<< $svn_status; then svn_status_string="$svn_status_string ${ZSH_THEME_SVN_PROMPT_DIRTY:-'!'}"; fi echo $svn_status_string } diff --git a/plugins/svn/svn.plugin.zsh b/plugins/svn/svn.plugin.zsh index ba281d790..9f7a4c6eb 100644 --- a/plugins/svn/svn.plugin.zsh +++ b/plugins/svn/svn.plugin.zsh @@ -61,7 +61,7 @@ function svn_get_rev_nr() { function svn_dirty_choose() { if in_svn; then root=`svn info 2> /dev/null | sed -n 's/^Working Copy Root Path: //p'` - if $(svn status $root 2> /dev/null | grep -Eq '^\s*[ACDIM!?L]'); then + if $(svn status $root 2> /dev/null | command grep -Eq '^\s*[ACDIM!?L]'); then # Grep exits with 0 when "One or more lines were selected", return "dirty". echo $1 else @@ -78,7 +78,7 @@ function svn_dirty() { function svn_dirty_choose_pwd () { if in_svn; then root=$PWD - if $(svn status $root 2> /dev/null | grep -Eq '^\s*[ACDIM!?L]'); then + if $(svn status $root 2> /dev/null | command grep -Eq '^\s*[ACDIM!?L]'); then # Grep exits with 0 when "One or more lines were selected", return "dirty". echo $1 else diff --git a/themes/agnoster.zsh-theme b/themes/agnoster.zsh-theme index 7a62bd860..8c7be6e01 100644 --- a/themes/agnoster.zsh-theme +++ b/themes/agnoster.zsh-theme @@ -123,10 +123,10 @@ prompt_hg() { st="" rev=$(hg id -n 2>/dev/null | sed 's/[^-0-9]//g') branch=$(hg id -b 2>/dev/null) - if `hg st | grep -Eq "^\?"`; then + if `hg st | grep -q "^\?"`; then prompt_segment red black st='±' - elif `hg st | grep -Eq "^(M|A)"`; then + elif `hg st | grep -q "^(M|A)"`; then prompt_segment yellow black st='±' else diff --git a/themes/bureau.zsh-theme b/themes/bureau.zsh-theme index 443d1d5ee..148abec10 100644 --- a/themes/bureau.zsh-theme +++ b/themes/bureau.zsh-theme @@ -31,7 +31,7 @@ bureau_git_status () { if $(echo "$_INDEX" | grep '^.[MTD] ' &> /dev/null); then _STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_UNSTAGED" fi - if $(echo "$_INDEX" | grep -E '^\?\? ' &> /dev/null); then + if $(echo "$_INDEX" | command grep -E '^\?\? ' &> /dev/null); then _STATUS="$_STATUS$ZSH_THEME_GIT_PROMPT_UNTRACKED" fi if $(echo "$_INDEX" | grep '^UU ' &> /dev/null); then diff --git a/themes/mortalscumbag.zsh-theme b/themes/mortalscumbag.zsh-theme index 5dbf2e4f6..ccce4197a 100644 --- a/themes/mortalscumbag.zsh-theme +++ b/themes/mortalscumbag.zsh-theme @@ -10,12 +10,12 @@ function my_git_prompt() { fi # is anything staged? - if $(echo "$INDEX" | grep -E -e '^(D[ M]|[MARC][ MD]) ' &> /dev/null); then + if $(echo "$INDEX" | command grep -E -e '^(D[ M]|[MARC][ MD]) ' &> /dev/null); then STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_STAGED" fi # is anything unstaged? - if $(echo "$INDEX" | grep -E -e '^[ MARC][MD] ' &> /dev/null); then + if $(echo "$INDEX" | command grep -E -e '^[ MARC][MD] ' &> /dev/null); then STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_UNSTAGED" fi @@ -25,7 +25,7 @@ function my_git_prompt() { fi # is anything unmerged? - if $(echo "$INDEX" | grep -E -e '^(A[AU]|D[DU]|U[ADU]) ' &> /dev/null); then + if $(echo "$INDEX" | command grep -E -e '^(A[AU]|D[DU]|U[ADU]) ' &> /dev/null); then STATUS="$STATUS$ZSH_THEME_GIT_PROMPT_UNMERGED" fi From 0c04470f6370c329ce8252371fe617673b515d45 Mon Sep 17 00:00:00 2001 From: "Kravchuk S.V" Date: Fri, 14 Nov 2014 13:05:11 +0300 Subject: [PATCH 0144/1175] [~] fix plugin pj https://github.com/robbyrussell/oh-my-zsh/commit/bce74975d055529cbd186782e2fd99e6da840460 --- plugins/pj/pj.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/pj/pj.plugin.zsh b/plugins/pj/pj.plugin.zsh index f9cbddf1a..1572e9363 100644 --- a/plugins/pj/pj.plugin.zsh +++ b/plugins/pj/pj.plugin.zsh @@ -42,8 +42,8 @@ function _pj () { # might be possible to improve this using glob, without the basename trick typeset -a projects projects=($PROJECT_PATHS/*) - projects=$projects:t - _arguments '*:file:($projects)' + projects=$projects:t + _arguments "*:file:($projects)" } compdef _pj pj From a301f567e3a7ac2eb0b1f77d6ff97f50d63ba864 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Wed, 19 Nov 2014 18:33:00 +0100 Subject: [PATCH 0145/1175] Switch back to oh-my-zsh.hide-dirty setting again Commit 81004dfaba509ff62a13ba303ab941938d619326 reverted the change in 9b811fb625c03c30a766191cdf65a1c7c1fd96b2 when editing the merge conflict from #2928. This commit fixes that so that we don't make the same mistake again. First seen in http://git.io/Cdaj5Q --- lib/git.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/git.zsh b/lib/git.zsh index aba095422..748520a6f 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -13,7 +13,7 @@ parse_git_dirty() { local STATUS='' local FLAGS FLAGS=('--porcelain') - if [[ "$(command git config --get oh-my-zsh.hide-status)" != "1" ]]; then + if [[ "$(command git config --get oh-my-zsh.hide-dirty)" != "1" ]]; then if [[ $POST_1_7_2_GIT -gt 0 ]]; then FLAGS+='--ignore-submodules=dirty' fi From b6b1dd3cd713751c5295b8346af071b420a99f87 Mon Sep 17 00:00:00 2001 From: Doan Truong Thi Date: Fri, 21 Nov 2014 10:07:23 +0900 Subject: [PATCH 0146/1175] Fix Yosemite broken zsh where $PATH var does not get appended correctly. Sourcing oh-my-zsh immediately after export PATH. --- templates/zshrc.zsh-template | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/templates/zshrc.zsh-template b/templates/zshrc.zsh-template index a12eca2a0..763288dfd 100644 --- a/templates/zshrc.zsh-template +++ b/templates/zshrc.zsh-template @@ -47,13 +47,13 @@ ZSH_THEME="robbyrussell" # Add wisely, as too many plugins slow down shell startup. plugins=(git) -source $ZSH/oh-my-zsh.sh - # User configuration export PATH=$HOME/bin:/usr/local/bin:$PATH # export MANPATH="/usr/local/man:$MANPATH" +source $ZSH/oh-my-zsh.sh + # You may need to manually set your language environment # export LANG=en_US.UTF-8 From 1dfadc734cb10c5512be4ec1dbe329a3e362ab20 Mon Sep 17 00:00:00 2001 From: Eric Ripa Date: Mon, 24 Nov 2014 09:54:50 +0100 Subject: [PATCH 0147/1175] Fix chruby plugin to not complain if chruby is *not* installed --- plugins/chruby/chruby.plugin.zsh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/chruby/chruby.plugin.zsh b/plugins/chruby/chruby.plugin.zsh index 2a2c80cf6..b461b0c9b 100644 --- a/plugins/chruby/chruby.plugin.zsh +++ b/plugins/chruby/chruby.plugin.zsh @@ -24,7 +24,7 @@ _homebrew-installed() { } _chruby-from-homebrew-installed() { - brew --prefix chruby &> /dev/null + [ -r $(brew --prefix chruby)] &> /dev/null } _ruby-build_installed() { @@ -45,11 +45,11 @@ _source_from_omz_settings() { zstyle -s :omz:plugins:chruby path _chruby_path zstyle -s :omz:plugins:chruby auto _chruby_auto - if _chruby_path && [[ -r _chruby_path ]]; then + if ${_chruby_path} && [[ -r ${_chruby_path} ]]; then source ${_chruby_path} fi - if _chruby_auto && [[ -r _chruby_auto ]]; then + if ${_chruby_auto} && [[ -r ${_chruby_auto} ]]; then source ${_chruby_auto} fi } From 663d43241cd890c2fa78040a612c6d424674c5f9 Mon Sep 17 00:00:00 2001 From: Christopher Harrison Date: Mon, 24 Nov 2014 09:56:47 +0000 Subject: [PATCH 0148/1175] Minor cosmetic fix to minimal theme Set the closing square-brace's FG colour to white, to match the opening brace, when the repo directory is dirty. --- themes/minimal.zsh-theme | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/themes/minimal.zsh-theme b/themes/minimal.zsh-theme index a2a16031f..fbd620225 100644 --- a/themes/minimal.zsh-theme +++ b/themes/minimal.zsh-theme @@ -1,6 +1,6 @@ ZSH_THEME_GIT_PROMPT_PREFIX="%{$reset_color%}%{$fg[white]%}[" ZSH_THEME_GIT_PROMPT_SUFFIX="" -ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}●%{$reset_color%}]%{$reset_color%} " +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[red]%}●%{$fg[white]%}]%{$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 @@ -15,4 +15,4 @@ vcs_status() { fi } -PROMPT='%2~ $(vcs_status)»%b ' \ No newline at end of file +PROMPT='%2~ $(vcs_status)»%b ' From db8eacf6fd0570c8e49e59a44c214bd927479861 Mon Sep 17 00:00:00 2001 From: Will Boyce Date: Mon, 9 Jun 2014 18:04:16 +0100 Subject: [PATCH 0149/1175] use pigz if available in extract plugin --- plugins/extract/extract.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/extract/extract.plugin.zsh b/plugins/extract/extract.plugin.zsh index a6e16ddf7..898d3d36e 100644 --- a/plugins/extract/extract.plugin.zsh +++ b/plugins/extract/extract.plugin.zsh @@ -38,7 +38,7 @@ function extract() { file_name="$( basename "$1" )" extract_dir="$( echo "$file_name" | sed "s/\.${1##*.}//g" )" case "$1" in - (*.tar.gz|*.tgz) tar xvzf "$1" ;; + (*.tar.gz|*.tgz) [ -z $commands[pigz] ] && tar zxvf "$1" || pigz -dc "$1" | tar xv ;; (*.tar.bz2|*.tbz|*.tbz2) tar xvjf "$1" ;; (*.tar.xz|*.txz) tar --xz --help &> /dev/null \ && tar --xz -xvf "$1" \ @@ -47,7 +47,7 @@ function extract() { && tar --lzma -xvf "$1" \ || lzcat "$1" | tar xvf - ;; (*.tar) tar xvf "$1" ;; - (*.gz) gunzip "$1" ;; + (*.gz) [ -z $commands[pigz] ] && gunzip "$1" || pigz -d "$1" ;; (*.bz2) bunzip2 "$1" ;; (*.xz) unxz "$1" ;; (*.lzma) unlzma "$1" ;; From 4b05e548d0b56238521b07dac1969e8cd2dcf608 Mon Sep 17 00:00:00 2001 From: benjaoming Date: Fri, 22 Nov 2013 11:48:13 +0100 Subject: [PATCH 0150/1175] Throw an error message when $WORKON_HOME is not set Took me a while to figure this one out, and I have a default installation of virtualenvwrapper -- this is a soft fix, just put an error message. But perhaps the fix should be to use the default value `~/.virtualenvs`. --- .../virtualenvwrapper.plugin.zsh | 100 ++++++++++-------- 1 file changed, 53 insertions(+), 47 deletions(-) diff --git a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh index f58bda1ad..52e02d3e0 100644 --- a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh +++ b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh @@ -1,57 +1,63 @@ virtualenvwrapper='virtualenvwrapper.sh' if (( $+commands[$virtualenvwrapper] )); then + source ${${virtualenvwrapper}:c} - if [[ ! $DISABLE_VENV_CD -eq 1 ]]; then - # Automatically activate Git projects's virtual environments based on the - # directory name of the project. Virtual environment name can be overridden - # by placing a .venv file in the project root with a virtualenv name in it - function workon_cwd { - if [ ! $WORKON_CWD ]; then - WORKON_CWD=1 - # Check if this is a Git repo - PROJECT_ROOT=`git rev-parse --show-toplevel 2> /dev/null` - if (( $? != 0 )); then - PROJECT_ROOT="." - fi - # Check for virtualenv name override - if [[ -f "$PROJECT_ROOT/.venv" ]]; then - ENV_NAME=`cat "$PROJECT_ROOT/.venv"` - elif [[ -f "$PROJECT_ROOT/.venv/bin/activate" ]];then - ENV_NAME="$PROJECT_ROOT/.venv" - elif [[ "$PROJECT_ROOT" != "." ]]; then - ENV_NAME=`basename "$PROJECT_ROOT"` - else - ENV_NAME="" - fi - if [[ "$ENV_NAME" != "" ]]; then - # Activate the environment only if it is not already active - if [[ "$VIRTUAL_ENV" != "$WORKON_HOME/$ENV_NAME" ]]; then - if [[ -e "$WORKON_HOME/$ENV_NAME/bin/activate" ]]; then - workon "$ENV_NAME" && export CD_VIRTUAL_ENV="$ENV_NAME" - elif [[ -e "$ENV_NAME/bin/activate" ]]; then - source $ENV_NAME/bin/activate && export CD_VIRTUAL_ENV="$ENV_NAME" - fi - fi - elif [ $CD_VIRTUAL_ENV ]; then - # We've just left the repo, deactivate the environment - # Note: this only happens if the virtualenv was activated automatically - deactivate && unset CD_VIRTUAL_ENV - fi - unset PROJECT_ROOT - unset WORKON_CWD - fi - } + if [[ "$WORKON_HOME" == "" ]]; then + echo "\$WORKON_HOME is not defined so ZSH plugin virtualenvwrapper will not work" + else - # Append workon_cwd to the chpwd_functions array, so it will be called on cd - # http://zsh.sourceforge.net/Doc/Release/Functions.html - # TODO: replace with 'add-zsh-hook chpwd workon_cwd' when oh-my-zsh min version is raised above 4.3.4 - if (( ${+chpwd_functions} )); then - if (( $chpwd_functions[(I)workon_cwd] == 0 )); then - set -A chpwd_functions $chpwd_functions workon_cwd + if [[ ! $DISABLE_VENV_CD -eq 1 ]]; then + # Automatically activate Git projects's virtual environments based on the + # directory name of the project. Virtual environment name can be overridden + # by placing a .venv file in the project root with a virtualenv name in it + function workon_cwd { + if [ ! $WORKON_CWD ]; then + WORKON_CWD=1 + # Check if this is a Git repo + PROJECT_ROOT=`git rev-parse --show-toplevel 2> /dev/null` + if (( $? != 0 )); then + PROJECT_ROOT="." + fi + # Check for virtualenv name override + if [[ -f "$PROJECT_ROOT/.venv" ]]; then + ENV_NAME=`cat "$PROJECT_ROOT/.venv"` + elif [[ -f "$PROJECT_ROOT/.venv/bin/activate" ]];then + ENV_NAME="$PROJECT_ROOT/.venv" + elif [[ "$PROJECT_ROOT" != "." ]]; then + ENV_NAME=`basename "$PROJECT_ROOT"` + else + ENV_NAME="" + fi + if [[ "$ENV_NAME" != "" ]]; then + # Activate the environment only if it is not already active + if [[ "$VIRTUAL_ENV" != "$WORKON_HOME/$ENV_NAME" ]]; then + if [[ -e "$WORKON_HOME/$ENV_NAME/bin/activate" ]]; then + workon "$ENV_NAME" && export CD_VIRTUAL_ENV="$ENV_NAME" + elif [[ -e "$ENV_NAME/bin/activate" ]]; then + source $ENV_NAME/bin/activate && export CD_VIRTUAL_ENV="$ENV_NAME" + fi + fi + elif [ $CD_VIRTUAL_ENV ]; then + # We've just left the repo, deactivate the environment + # Note: this only happens if the virtualenv was activated automatically + deactivate && unset CD_VIRTUAL_ENV + fi + unset PROJECT_ROOT + unset WORKON_CWD fi - else + } + + # Append workon_cwd to the chpwd_functions array, so it will be called on cd + # http://zsh.sourceforge.net/Doc/Release/Functions.html + # TODO: replace with 'add-zsh-hook chpwd workon_cwd' when oh-my-zsh min version is raised above 4.3.4 + if (( ${+chpwd_functions} )); then + if (( $chpwd_functions[(I)workon_cwd] == 0 )); then + set -A chpwd_functions $chpwd_functions workon_cwd + fi + else set -A chpwd_functions workon_cwd + fi fi fi else From c6a8b2ea6d80e33716ce5590f4c4aff96776f06e Mon Sep 17 00:00:00 2001 From: mizabrik Date: Fri, 28 Nov 2014 19:40:56 +0300 Subject: [PATCH 0151/1175] Save ZSH path in newly created .zshrc --- tools/install.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/install.sh b/tools/install.sh index a53ac48ab..35548005a 100755 --- a/tools/install.sh +++ b/tools/install.sh @@ -23,8 +23,8 @@ fi echo "\033[0;34mUsing the Oh My Zsh template file and adding it to ~/.zshrc\033[0m" cp $ZSH/templates/zshrc.zsh-template ~/.zshrc -sed -i -e "/^ZSH=/ c\\ -ZSH=$ZSH +sed -i -e "/^export ZSH=/ c\\ +export ZSH=$ZSH " ~/.zshrc echo "\033[0;34mCopying your current PATH and adding it to the end of ~/.zshrc for you.\033[0m" From 1ebc98b9ede5ad5084b3e504e4fc8c01cb93be71 Mon Sep 17 00:00:00 2001 From: Joe Block Date: Sun, 30 Nov 2014 17:37:47 -0800 Subject: [PATCH 0152/1175] Don't clobber HISTSIZE or SAVEHIST if they're already set --- lib/history.zsh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/history.zsh b/lib/history.zsh index 1d83e56e3..12dbcf4ee 100644 --- a/lib/history.zsh +++ b/lib/history.zsh @@ -1,9 +1,13 @@ ## Command history configuration -if [ -z $HISTFILE ]; then +if [ -z "$HISTFILE" ]; then HISTFILE=$HOME/.zsh_history fi -HISTSIZE=10000 -SAVEHIST=10000 +if [ -z "$HISTSIZE" ]; then + HISTSIZE=10000 +fi +if [ -z "$SAVEHIST" ]; then + SAVEHIST=10000 +fi setopt extended_history setopt hist_expire_dups_first From 5bf715787a4483cafd70461417cb9a1bf8d1509f Mon Sep 17 00:00:00 2001 From: Joe Block Date: Sun, 30 Nov 2014 17:39:21 -0800 Subject: [PATCH 0153/1175] Existing code indents with spaces, not tabs, conform. --- lib/history.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/history.zsh b/lib/history.zsh index 12dbcf4ee..179c22848 100644 --- a/lib/history.zsh +++ b/lib/history.zsh @@ -3,10 +3,10 @@ if [ -z "$HISTFILE" ]; then HISTFILE=$HOME/.zsh_history fi if [ -z "$HISTSIZE" ]; then - HISTSIZE=10000 + HISTSIZE=10000 fi if [ -z "$SAVEHIST" ]; then - SAVEHIST=10000 + SAVEHIST=10000 fi setopt extended_history From 575bb91b5f2e1220e566385e2982ca4f72521819 Mon Sep 17 00:00:00 2001 From: Emil Marashliev Date: Mon, 1 Dec 2014 13:34:18 +0200 Subject: [PATCH 0154/1175] Added Xcode alias for deleting Derived Data. --- plugins/xcode/xcode.plugin.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/xcode/xcode.plugin.zsh b/plugins/xcode/xcode.plugin.zsh index b7b75cf93..1d1205b80 100644 --- a/plugins/xcode/xcode.plugin.zsh +++ b/plugins/xcode/xcode.plugin.zsh @@ -16,6 +16,7 @@ function xcsel { alias xcb='xcodebuild' alias xcp='xcode-select --print-path' +alias xcdd='rm -rf ~/Library/Developer/Xcode/DerivedData/*' if [[ -d $(xcode-select -p)/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone\ Simulator.app ]]; then alias simulator='open $(xcode-select -p)/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone\ Simulator.app' From 011f25d492ab23b0f1dd50ea0f406892810e781e Mon Sep 17 00:00:00 2001 From: Ion Marusic Date: Tue, 2 Dec 2014 20:10:47 +0200 Subject: [PATCH 0155/1175] Fixed command autocomplete for Symfony 2.6.x --- plugins/symfony2/symfony2.plugin.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/symfony2/symfony2.plugin.zsh b/plugins/symfony2/symfony2.plugin.zsh index 8df22e9ad..7a19cbdd3 100644 --- a/plugins/symfony2/symfony2.plugin.zsh +++ b/plugins/symfony2/symfony2.plugin.zsh @@ -5,7 +5,7 @@ _symfony_console () { } _symfony2_get_command_list () { - `_symfony_console` --no-ansi | sed "1,/Available commands/d" | awk '/^ [a-z]+/ { print $1 }' + `_symfony_console` --no-ansi | sed "1,/Available commands/d" | awk '/^ ?[a-z]+/ { print $1 }' } _symfony2 () { @@ -23,4 +23,4 @@ alias sfcl='sf cache:clear' alias sfcw='sf cache:warmup' alias sfroute='sf router:debug' alias sfcontainer='sf container:debug' -alias sfgb='sf generate:bundle' \ No newline at end of file +alias sfgb='sf generate:bundle' From a19d1d1f05281fc286991ff85010d6d431ae1d58 Mon Sep 17 00:00:00 2001 From: ZHANG Biao Date: Thu, 4 Dec 2014 11:38:37 +0800 Subject: [PATCH 0156/1175] autojump installed from github has mv the autojump.zsh to $HOME/.autojump/share/autojump/autojump.zsh --- plugins/autojump/autojump.plugin.zsh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/autojump/autojump.plugin.zsh b/plugins/autojump/autojump.plugin.zsh index 652d22696..4cf036401 100644 --- a/plugins/autojump/autojump.plugin.zsh +++ b/plugins/autojump/autojump.plugin.zsh @@ -1,6 +1,8 @@ if [ $commands[autojump] ]; then # check if autojump is installed if [ -f $HOME/.autojump/etc/profile.d/autojump.zsh ]; then # manual user-local installation . $HOME/.autojump/etc/profile.d/autojump.zsh + elif [ -f $HOME/.autojump/share/autojump/autojump.zsh ]; then # another manual user-local installation + . $HOME/.autojump/share/autojump/autojump.zsh elif [ -f $HOME/.nix-profile/etc/profile.d/autojump.zsh ]; then # nix installation . $HOME/.nix-profile/etc/profile.d/autojump.zsh elif [ -f /usr/share/autojump/autojump.zsh ]; then # debian and ubuntu package From ed029f18010ea10c7bc4a2a90f75111503e613d9 Mon Sep 17 00:00:00 2001 From: Will Boyce Date: Tue, 29 Apr 2014 14:38:48 +0100 Subject: [PATCH 0157/1175] allow overriding lib/*.zsh in custom/lib --- oh-my-zsh.sh | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/oh-my-zsh.sh b/oh-my-zsh.sh index d0e89f31b..d75b521c7 100644 --- a/oh-my-zsh.sh +++ b/oh-my-zsh.sh @@ -8,18 +8,20 @@ fi # add a function path fpath=($ZSH/functions $ZSH/completions $fpath) -# Load all of the config files in ~/oh-my-zsh that end in .zsh -# TIP: Add files you don't want in git to .gitignore -for config_file ($ZSH/lib/*.zsh); do - source $config_file -done - # Set ZSH_CUSTOM to the path where your custom config files # and plugins exists, or else we will use the default custom/ if [[ -z "$ZSH_CUSTOM" ]]; then ZSH_CUSTOM="$ZSH/custom" fi +# Load all of the config files in ~/oh-my-zsh that end in .zsh +# TIP: Add files you don't want in git to .gitignore +for config_file ($ZSH/lib/*.zsh); do + custom_config_file="${ZSH_CUSTOM}/lib/${config_file:t}" + [ -f "${custom_config_file}" ] && config_file=${custom_config_file} + source $config_file +done + is_plugin() { local base_dir=$1 From 9bab8ccb89466be8bc8c579264f51b194aa89612 Mon Sep 17 00:00:00 2001 From: Anatoly Bubenkov Date: Wed, 10 Dec 2014 13:40:34 +0100 Subject: [PATCH 0158/1175] add current bookmark to rkj-repos theme --- themes/rkj-repos.zsh-theme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/rkj-repos.zsh-theme b/themes/rkj-repos.zsh-theme index 6289427c2..eed084f15 100644 --- a/themes/rkj-repos.zsh-theme +++ b/themes/rkj-repos.zsh-theme @@ -4,7 +4,7 @@ function hg_prompt_info { hg prompt --angle-brackets "\ -%{$reset_color%}>\ +%{$reset_color%}><:%{$fg[magenta]%}%{$reset_color%}>\ %{$reset_color%}>\ %{$fg[red]%}%{$reset_color%}< patches: >" 2>/dev/null From 6f70d288cc4625142413227109bf1eeac7e2a180 Mon Sep 17 00:00:00 2001 From: zghember Date: Thu, 11 Dec 2014 19:47:29 +0800 Subject: [PATCH 0159/1175] Update theme "jispwoso" to support ret status and git --- themes/jispwoso.zsh-theme | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/themes/jispwoso.zsh-theme b/themes/jispwoso.zsh-theme index cdfef3871..748430573 100644 --- a/themes/jispwoso.zsh-theme +++ b/themes/jispwoso.zsh-theme @@ -1,4 +1,10 @@ -PROMPT=$'%{$fg[green]%}%n@%m: %{$reset_color%}%{$fg[blue]%}%/%{$reset_color%} -%{$fg_bold[red]%}➜ %{$reset_color%} ' +local ret_status="%(?:%{$fg_bold[green]%}➜ :%{$fg_bold[red]%}➜ %s)" +PROMPT=$'%{$fg[green]%}%n@%m: %{$reset_color%}%{$fg[blue]%}%/ %{$reset_color%}%{$fg_bold[blue]%}$(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%} +${ret_status} %{$reset_color%} ' PROMPT2="%{$fg_blod[black]%}%_> %{$reset_color%}" + +ZSH_THEME_GIT_PROMPT_PREFIX="git:(%{$fg[red]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}✗%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%})" From 9677cfb34e896a59896c4cc747108ca8e3d20e86 Mon Sep 17 00:00:00 2001 From: Rotem Yaari Date: Thu, 11 Dec 2014 23:41:47 +0200 Subject: [PATCH 0160/1175] Fix dircycle plugin dircycle right did not behave as expected and was fixed --- plugins/dircycle/dircycle.plugin.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/dircycle/dircycle.plugin.zsh b/plugins/dircycle/dircycle.plugin.zsh index 46a0ab268..c6b6ba785 100644 --- a/plugins/dircycle/dircycle.plugin.zsh +++ b/plugins/dircycle/dircycle.plugin.zsh @@ -5,6 +5,6 @@ eval "insert-cycledleft () { zle push-line; LBUFFER='pushd -q +1'; zle accept-line }" zle -N insert-cycledleft bindkey "\e[1;6D" insert-cycledleft -eval "insert-cycledright () { zle push-line; LBUFFER='pushd -q -0'; zle accept-line }" +eval "insert-cycledright () { zle push-line; LBUFFER='pushd -q +0'; zle accept-line }" zle -N insert-cycledright bindkey "\e[1;6C" insert-cycledright From 1d2c1e8ab80922fb673a08440a8e2b33b9231de1 Mon Sep 17 00:00:00 2001 From: "Pete \"Peteches\" McCabe" Date: Fri, 12 Dec 2014 17:37:35 +0000 Subject: [PATCH 0161/1175] Fixed output issues webith websearch plugin. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - if user has rm set as an alias to 'rm -i' user is prompted to whether to remove the nohup.out file. $ ddg fools nohup: ignoring input and appending output to ‘nohup.out’ rm: remove regular empty file ‘nohup.out’? - if output redirected to a file nohup will not create nohup.out and rm is unecessary. --- plugins/web-search/web-search.plugin.zsh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugins/web-search/web-search.plugin.zsh b/plugins/web-search/web-search.plugin.zsh index 371e3a303..28559deb9 100644 --- a/plugins/web-search/web-search.plugin.zsh +++ b/plugins/web-search/web-search.plugin.zsh @@ -37,8 +37,7 @@ function web_search() { done url="${url%?}" # remove the last '+' - nohup $open_cmd "$url" - rm nohup.out + nohup $open_cmd "$url" >/dev/null 2&>1 } From 43a2e24c25531c27e502313d23c44bd5d7e0c405 Mon Sep 17 00:00:00 2001 From: Ryan Robeson Date: Fri, 12 Dec 2014 15:56:59 -0500 Subject: [PATCH 0162/1175] Add itunes shuffle command to OSX plugin. Added shuffle functionality to the itunes command in the OSX plugin. iTunes 12 doesn't support setting the "shuffle" property on the playlist from what I've read, so this simulates the user interacting with the iTunes interface. The toggle option "clicks" the shuffle button in the Now Playing area. This has the effect of toggling the shuffle setting on whatever is currently playing. The on and off options use the Shuffle menu bar items. Usage: itunes shuffle [on|off|toggle] --- plugins/osx/osx.plugin.zsh | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/plugins/osx/osx.plugin.zsh b/plugins/osx/osx.plugin.zsh index 2eea0d8ef..d366f1fc8 100644 --- a/plugins/osx/osx.plugin.zsh +++ b/plugins/osx/osx.plugin.zsh @@ -177,12 +177,43 @@ function itunes() { vol) opt="set sound volume to $1" #$1 Due to the shift ;; + shuf|shuff|shuffle) + # The shuffle property of current playlist can't be changed in iTunes 12, + # so this workaround uses AppleScript to simulate user input instead. + # Defaults to toggling when no options are given. + # The toggle option depends on the shuffle button being visible in the Now playing area. + # On and off use the menu bar items. + local state=$1 + + if [[ -n "$state" && ! "$state" =~ "^(on|off|toggle)$" ]] + then + print "Usage: itunes shuffle [on|off|toggle]. Invalid option." + return 1 + fi + + case "$state" in + on|off) + # Inspired by: http://stackoverflow.com/a/14675583 + osascript 1>/dev/null 2>&1 <<-EOF + tell application "System Events" to perform action "AXPress" of (menu item "${state}" of menu "Shuffle" of menu item "Shuffle" of menu "Controls" of menu bar item "Controls" of menu bar 1 of application process "iTunes" ) +EOF + return 0 + ;; + toggle|*) + osascript 1>/dev/null 2>&1 <<-EOF + tell application "System Events" to perform action "AXPress" of (button 2 of process "iTunes"'s window "iTunes"'s scroll area 1) +EOF + return 0 + ;; + esac + ;; ""|-h|--help) echo "Usage: itunes