Browse Source

Merge remote-tracking branch 'upstream/master'

Amila Perera 11 years ago
parent
commit
27d048aa57

+ 25 - 23
plugins/bundler/bundler.plugin.zsh

@@ -4,18 +4,6 @@ alias bp="bundle package"
 alias bo="bundle open"
 alias bu="bundle update"
 
-bundler_version=`bundle version | cut -d' ' -f3`
-if [[ $bundler_version > '1.4.0' || $bundler_version = '1.4.0' ]]; then
-  if [[ "$(uname)" == 'Darwin' ]]
-  then
-    local cores_num="$(sysctl hw.ncpu | awk '{print $2}')"
-  else
-    local cores_num="$(nproc)"
-  fi
-  eval "alias bi='bundle install --jobs=$cores_num'"
-else
-  alias bi='bundle install' 
-fi
 
 # The following is based on https://github.com/gma/bundler-exec
 
@@ -44,14 +32,28 @@ _run-with-bundler() {
   fi
 }
 
-## Main program
-for cmd in $bundled_commands; do
-  eval "function unbundled_$cmd () { $cmd \$@ }"
-  eval "function bundled_$cmd () { _run-with-bundler $cmd \$@}"
-  alias $cmd=bundled_$cmd
-
-  if which _$cmd > /dev/null 2>&1; then
-        compdef _$cmd bundled_$cmd=$cmd
-  fi
-done
-
+if _bundler-installed; then
+	bundler_version=`bundle version | cut -d' ' -f3`
+	if [[ $bundler_version > '1.4.0' || $bundler_version = '1.4.0' ]]; then
+		if [[ "$(uname)" == 'Darwin' ]]
+		then
+			local cores_num="$(sysctl hw.ncpu | awk '{print $2}')"
+		else
+			local cores_num="$(nproc)"
+		fi
+		eval "alias bi='bundle install --jobs=$cores_num'"
+	else
+		alias bi='bundle install' 
+	fi
+
+	## Main program
+	for cmd in $bundled_commands; do
+		eval "function unbundled_$cmd () { $cmd \$@ }"
+		eval "function bundled_$cmd () { _run-with-bundler $cmd \$@}"
+		alias $cmd=bundled_$cmd
+
+		if which _$cmd > /dev/null 2>&1; then
+			compdef _$cmd bundled_$cmd=$cmd
+		fi
+	done
+fi

+ 1 - 1
plugins/jira/jira.plugin.zsh

@@ -31,7 +31,7 @@ open_jira_issue () {
 
   if [ -z "$1" ]; then
     echo "Opening new issue"
-    `open $jira_url/secure/CreateIssue!default.jspa`
+    $open_cmd "$jira_url/secure/CreateIssue!default.jspa"
   else
     echo "Opening issue #$1"
     if [[ "x$JIRA_RAPID_BOARD" = "xtrue" ]]; then

+ 2 - 2
plugins/pip/_pip

@@ -6,8 +6,8 @@
 _pip_all() {
   # we cache the list of packages (originally from the macports plugin)
   if (( ! $+piplist )); then
-      echo -n " (caching package index...)"
-      piplist=($(pip search * | cut -d ' ' -f 1 | tr '[A-Z]' '[a-z]'))
+      zsh-pip-cache-packages
+      piplist=($(cat $ZSH_PIP_CACHE_FILE))
   fi
 }
 

+ 78 - 0
plugins/pip/pip.plugin.zsh

@@ -0,0 +1,78 @@
+# Usage:
+# Just add pip to your installed plugins.
+
+# If you would like to change the cheeseshops used for autocomplete set
+# ZSH_PIP_INDEXES in your zshrc. If one of your indexes are bogus you won't get
+# any kind of error message, pip will just not autocomplete from them. Double
+# check!
+#
+# If you would like to clear your cache, go ahead and do a
+# "zsh-pip-clear-cache".
+
+ZSH_PIP_CACHE_FILE=~/.pip/zsh-cache
+ZSH_PIP_INDEXES=(https://pypi.python.org/simple/)
+
+zsh-pip-clear-cache() {
+  rm $ZSH_PIP_CACHE_FILE
+  unset piplist
+}
+
+zsh-pip-clean-packages() {
+    sed -nr '/<a href/ s/.*>([^<]+).*/\1/p'
+}
+
+zsh-pip-cache-packages() {
+  if [[ ! -d ${PIP_CACHE_FILE:h} ]]; then
+      mkdir -p ${PIP_CACHE_FILE:h}
+  fi
+
+  if [[ ! -f $ZSH_PIP_CACHE_FILE ]]; then
+      echo -n "(...caching package index...)"
+      tmp_cache=/tmp/zsh_tmp_cache
+      for index in $ZSH_PIP_INDEXES ; do
+          # well... I've already got two problems
+          curl $index 2>/dev/null | \
+              zsh-pip-clean-packages \
+               >> $tmp_cache
+      done
+      sort $tmp_cache | uniq | tr '\n' ' ' > $ZSH_PIP_CACHE_FILE
+      rm $tmp_cache
+  fi
+}
+
+# A test function that validates the regex against known forms of the simple
+# index. If you modify the regex to make it work for you, you should add a test
+# case in here and make sure that your changes don't break things for someone
+# else.
+zsh-pip-test-clean-packages() {
+    local expected
+    local actual
+    expected="0x10c-asm
+1009558_nester"
+
+    actual=$(echo -n "<html><head><title>Simple Index</title><meta name=\"api-version\" value=\"2\" /></head><body>
+<a href='0x10c-asm'>0x10c-asm</a><br/>
+<a href='1009558_nester'>1009558_nester</a><br/>
+</body></html>" | zsh-pip-clean-packages)
+
+    if [[ $actual != $expected ]] ; then
+        echo -e "python's simple index is broken:\n$actual\n  !=\n$expected"
+    else
+        echo "python's simple index is fine"
+    fi
+
+    actual=$(echo -n '<html>
+  <head>
+    <title>Simple Package Index</title>
+  </head>
+  <body>
+    <a href="0x10c-asm">0x10c-asm</a><br/>
+    <a href="1009558_nester">1009558_nester</a><br/>
+</body></html>' | zsh-pip-clean-packages)
+
+    if [[ $actual != $expected ]] ; then
+        echo -e "the djangopypi2 index is broken:\n$actual\n  !=\n$expected"
+    else
+        echo "the djangopypi2 index is fine"
+    fi
+}

+ 12 - 4
plugins/pod/_pod

@@ -3,18 +3,19 @@
 
 # -----------------------------------------------------------------------------
 #          FILE:  _pod
-#   DESCRIPTION:  Cocoapods autocomplete plugin for Oh-My-Zsh
+#   DESCRIPTION:  Cocoapods (0.27.1) autocomplete plugin for Oh-My-Zsh
 #                 http://cocoapods.org
 #        AUTHOR:  Alexandre Joly (alexandre.joly@mekanics.ch)
 #        GITHUB:  https://github.com/mekanics
 #       TWITTER:  @jolyAlexandre
-#       VERSION:  0.0.1
+#       VERSION:  0.0.3
 #       LICENSE:  MIT
 # -----------------------------------------------------------------------------
 
 local -a _1st_arguments
 _1st_arguments=(
-    'help:Show help for the given command.'
+    'help:Show help for the given command'
+    'init:Generate a Podfile for the current directory'
     'install:Install project dependencies'
     'ipc:Inter-process communication'
     'list:List pods'
@@ -32,6 +33,7 @@ local -a _repo_arguments
 _repo_arguments=(
     'add:Add a spec repo'
     'lint:Validates all specs in a repo'
+    'remove:Remove a spec repo.'
     'update:Update a spec repo'
 )
 
@@ -158,7 +160,7 @@ __first_command_list ()
 }
 
 __repo_list() {
-    _wanted application expl 'repo' compadd $(command ls -1 ~/.cocoapods 2>/dev/null | sed -e 's/ /\\ /g')
+    _wanted application expl 'repo' compadd $(command ls -1 ~/.cocoapods/repos 2>/dev/null | sed -e 's/ /\\ /g')
 }
 
 __pod-repo() {
@@ -193,6 +195,12 @@ __pod-repo() {
                 (add)
                     _arguments \
                         $_inherited_options
+
+                (remove)
+                    _arguments \
+                        $_inherited_options \
+                        ':feature:__repo_list'
+                ;;
             esac
         ;;
     esac

+ 1 - 0
plugins/python/python.plugin.zsh

@@ -6,6 +6,7 @@ alias pyfind='find . -name "*.py"'
 function pyclean() {
     ZSH_PYCLEAN_PLACES=${*:-'.'}
     find ${ZSH_PYCLEAN_PLACES} -type f -name "*.py[co]" -delete
+    find ${ZSH_PYCLEAN_PLACES} -type d -name "__pycache__" -delete
 }
 
 # Grep among .py files

+ 9 - 0
plugins/wd2/wd2/wd.plugin.zsh

@@ -0,0 +1,9 @@
+#!/bin/zsh
+
+# WARP
+# ====
+# oh-my-zsh plugin
+#
+# @github.com/mfaerevaag/wd
+
+alias wd='. ~/.oh-my-zsh/plugins/wd/wd.sh'

+ 201 - 0
plugins/wd2/wd2/wd.sh

@@ -0,0 +1,201 @@
+#!/bin/zsh
+
+# WARP
+# ====
+# Jump to custom directories in terminal
+# because `cd` takes too long...
+#
+# @github.com/mfaerevaag/wd
+
+
+## variables
+CONFIG=$HOME/.warprc
+
+## colors
+BLUE="\033[96m"
+GREEN="\033[92m"
+YELLOW="\033[93m"
+RED="\033[91m"
+NOC="\033[m"
+
+
+## load warp points
+typeset -A points
+while read line
+do
+    arr=(${(s,:,)line})
+    key=${arr[1]}
+    val=${arr[2]}
+
+    points[$key]=$val
+done < $CONFIG
+
+
+## functions
+# prepended wd_ to not conflict with your environment (no sub shell)
+
+wd_warp()
+{
+    if [[ $1 =~ "^\.+$" ]]
+    then
+        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]} != "" ]]
+    then
+        wd_print_msg $BLUE "Warping..."
+        cd ${points[$1]}
+    else
+        wd_print_msg $RED "Unkown warp point '$1'"
+    fi
+}
+
+wd_add()
+{
+    if [[ $1 =~ "^\.+$" ]]
+    then
+        wd_print_msg $RED "Illeagal warp point (see README)."
+    elif [[ ${points[$1]} == "" ]] || $2
+    then
+        wd_remove $1 > /dev/null
+        print "$1:$PWD" >> $CONFIG
+        wd_print_msg $GREEN "Warp point added"
+    else
+        wd_print_msg $YELLOW "Warp point '$1' alredy exists. Use 'add!' to overwrite."
+    fi
+}
+
+wd_remove()
+{
+    if [[ ${points[$1]} != "" ]]
+    then
+        if wd_tmp=`sed "/^$1:/d" $CONFIG`
+        then
+            echo $wd_tmp > $CONFIG
+            wd_print_msg $GREEN "Warp point removed"
+        else
+            wd_print_msg $RED "Warp point unsuccessfully removed. 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
+    do
+        if [[ $line != "" ]]
+        then
+            arr=(${(s,:,)line})
+            key=${arr[1]}
+            val=${arr[2]}
+
+            print "\t" $key "\t -> \t" $val
+        fi
+    done < $CONFIG
+}
+
+wd_print_msg()
+{
+    if [[ $1 == "" || $2 == "" ]]
+    then
+        print " $RED*$NOC Could not print message. Sorry!"
+    else
+        print " $1*$NOC $2"
+    fi
+}
+
+wd_print_usage()
+{
+		print "Usage: wd [add|-a|--add] [rm|-r|--remove] [ls|-l|--list] <point>"
+    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 remove  Removes the given warp point"
+    print "\t list \t Outputs all stored warp points"
+    print "\t help \t Show this extremely helpful text"
+}
+
+
+## run
+
+# get opts
+args=`getopt -o a:r:lhs -l add:,remove:,list,help,show -- $*`
+
+if [[ $? -ne 0 || $#* -eq 0 ]]
+then
+    wd_print_usage
+else
+    # can't exit, as this would exit the excecuting shell
+    # e.i. your terminal
+
+    #set -- $args # WTF
+
+    for i
+    do
+		    case "$i"
+		        in
+			      -a|--add|add)
+                wd_add $2 false
+				        shift
+                shift
+                break
+                ;;
+            -a!|--add!|add!)
+                wd_add $2 true
+				        shift
+                shift
+                break
+                ;;
+			      -r|--remove|rm)
+				        wd_remove $2
+                shift
+				        shift
+                break
+                ;;
+			      -l|--list|ls)
+				        wd_list_all
+				        shift
+                break
+                ;;
+			      -h|--help|help)
+				        wd_print_usage
+				        shift
+                break
+                ;;
+			      -s|--show|show)
+				        wd_show
+				        shift
+                break
+                ;;
+            *)
+                wd_warp $i
+                shift
+                break
+                ;;
+			      --)
+				        shift; break;;
+		    esac
+    done
+fi
+
+
+## garbage collection
+# if not, next time warp will pick up variables from this run
+# remember, there's no sub shell
+points=""
+args=""
+unhash -d val &> /dev/null # fixes issue #1

+ 33 - 33
themes/agnoster.zsh-theme

@@ -95,38 +95,38 @@ prompt_git() {
 }
 
 prompt_hg() {
-	local rev status
-	if $(hg id >/dev/null 2>&1); then
-		if $(hg prompt >/dev/null 2>&1); then
-			if [[ $(hg prompt "{status|unknown}") = "?" ]]; then
-				# if files are not added
-				prompt_segment red white
-				st='±'
-			elif [[ -n $(hg prompt "{status|modified}") ]]; then
-				# if any modification
-				prompt_segment yellow black
-				st='±'
-			else
-				# if working copy is clean
-				prompt_segment green black
-			fi
-			echo -n $(hg prompt "☿ {rev}@{branch}") $st
-		else
-			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
-				prompt_segment red black
-				st='±'
-			elif `hg st | grep -Eq "^(M|A)"`; then
-				prompt_segment yellow black
-				st='±'
-			else
-				prompt_segment green black
-			fi
-			echo -n " $rev@$branch" $st
-		fi
-	fi
+  local rev status
+  if $(hg id >/dev/null 2>&1); then
+    if $(hg prompt >/dev/null 2>&1); then
+      if [[ $(hg prompt "{status|unknown}") = "?" ]]; then
+        # if files are not added
+        prompt_segment red white
+        st='±'
+      elif [[ -n $(hg prompt "{status|modified}") ]]; then
+        # if any modification
+        prompt_segment yellow black
+        st='±'
+      else
+        # if working copy is clean
+        prompt_segment green black
+      fi
+      echo -n $(hg prompt "☿ {rev}@{branch}") $st
+    else
+      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
+        prompt_segment red black
+        st='±'
+      elif `hg st | grep -Eq "^(M|A)"`; then
+        prompt_segment yellow black
+        st='±'
+      else
+        prompt_segment green black
+      fi
+      echo -n "☿ $rev@$branch" $st
+    fi
+  fi
 }
 
 # Dir: current working directory
@@ -137,7 +137,7 @@ prompt_dir() {
 # Virtualenv: current working virtualenv
 prompt_virtualenv() {
   local virtualenv_path="$VIRTUAL_ENV"
-  if [[ -n $virtualenv_path && -z $VIRTUAL_ENV_DISABLE_PROMPT ]]; then
+  if [[ -n $virtualenv_path && -n $VIRTUAL_ENV_DISABLE_PROMPT ]]; then
     prompt_segment blue black "(`basename $virtualenv_path`)"
   fi
 }

themes/linuxonly → themes/linuxonly.zsh-theme