diff --git a/lib/traject/command_line.rb b/lib/traject/command_line.rb
index <HASH>..<HASH> 100644
--- a/lib/traject/command_line.rb
+++ b/lib/traject/command_line.rb
@@ -33,14 +33,8 @@ module Traject
     # Returns true on success or false on failure; may also raise exceptions;
     # may also exit program directly itself (yeah, could use some normalization)
     def execute
-      if options[:version]
-        self.console.puts "traject version #{Traject::VERSION}"
-        return
-      end
-      if options[:help]
-        self.console.puts slop.help
-        return
-      end
+      # Do bundler setup FIRST to try and initialize all gems from gemfile
+      # if requested.
 
       # have to use Slop object to tell diff between
       # no arg supplied and no option -g given at all
@@ -48,11 +42,21 @@ module Traject
         require_bundler_setup(options[:Gemfile])
       end
 
+
       # We require them here instead of top of file,
       # so we have done bundler require before we require these.
       require 'traject'
       require 'traject/indexer'
 
+      if options[:version]
+        self.console.puts "traject version #{Traject::VERSION}"
+        return
+      end
+      if options[:help]
+        self.console.puts slop.help
+        return
+      end
+
 
       (options[:load_path] || []).each do |path|
         $LOAD_PATH << path unless $LOAD_PATH.include? path
do bundler setup absolutely first, don't try to do version etc until requires happen