summaryrefslogtreecommitdiff
path: root/plugins/bundler
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/bundler')
-rw-r--r--plugins/bundler/_bundler9
-rw-r--r--plugins/bundler/bundler.plugin.zsh30
2 files changed, 37 insertions, 2 deletions
diff --git a/plugins/bundler/_bundler b/plugins/bundler/_bundler
index 5d22cac9a..2ec3a5f9c 100644
--- a/plugins/bundler/_bundler
+++ b/plugins/bundler/_bundler
@@ -23,6 +23,7 @@ case $state in
"viz[Generate a visual representation of your dependencies]" \
"init[Generate a simple Gemfile, placed in the current directory]" \
"gem[Create a simple gem, suitable for development with bundler]" \
+ "clean[Cleans up unused gems in your bundler directory]" \
"help[Describe available tasks or one specific task]"
ret=0
;;
@@ -62,6 +63,14 @@ case $state in
exec)
_normal && ret=0
;;
+ clean)
+ _arguments \
+ '(--force)--force[forces clean even if --path is not set]' \
+ '(--dry-run)--dry-run[only print out changes, do not actually clean gems]' \
+ '(--no-color)--no-color[Disable colorization in output]' \
+ '(--verbose)--verbose[Enable verbose output mode]'
+ ret=0
+ ;;
(open|show)
_gems=( $(bundle show 2> /dev/null | sed -e '/^ \*/!d; s/^ \* \([^ ]*\) .*/\1/') )
if [[ $_gems != "" ]]; then
diff --git a/plugins/bundler/bundler.plugin.zsh b/plugins/bundler/bundler.plugin.zsh
index 1ca48089e..e4b03e7b0 100644
--- a/plugins/bundler/bundler.plugin.zsh
+++ b/plugins/bundler/bundler.plugin.zsh
@@ -1,15 +1,39 @@
alias be="bundle exec"
-alias bi="bundle install"
alias bl="bundle list"
alias bp="bundle package"
+alias bo="bundle open"
alias bu="bundle update"
# The following is based on https://github.com/gma/bundler-exec
-bundled_commands=(annotate cap capify cucumber foreman guard middleman nanoc rackup rainbows rails rake rspec ruby shotgun spec spork thin thor unicorn unicorn_rails)
+bundled_commands=(annotate berks cap capify cucumber foodcritic foreman guard irb jekyll kitchen knife mailcatcher middleman nanoc puma rackup rainbows rake rspec ruby shotgun spec spin spork strainer tailor taps thin thor unicorn unicorn_rails)
+
+# Remove $UNBUNDLED_COMMANDS from the bundled_commands list
+for cmd in $UNBUNDLED_COMMANDS; do
+ bundled_commands=(${bundled_commands#$cmd});
+done
## Functions
+bi() {
+ 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' ]]
+ then
+ local cores_num="$(sysctl hw.ncpu | awk '{print $2}')"
+ else
+ local cores_num="$(nproc)"
+ fi
+ bundle install --jobs=$cores_num $@
+ else
+ bundle install $@
+ fi
+ else
+ echo "Can't 'bundle install' outside a bundled project"
+ fi
+}
+
_bundler-installed() {
which bundle > /dev/null 2>&1
}
@@ -33,6 +57,7 @@ _run-with-bundler() {
## 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
@@ -40,3 +65,4 @@ for cmd in $bundled_commands; do
compdef _$cmd bundled_$cmd=$cmd
fi
done
+