summaryrefslogtreecommitdiff
path: root/bin/spring
blob: f3d9e81b53f76eae1c5b8c44a642c5fdd75244ed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/usr/bin/env ruby

# This file loads Spring without using Bundler, in order to be fast.
# It gets overwritten when you run the `spring binstub` command.

unless (defined?(Spring) || ENV['ENABLE_SPRING'] != '1') && File.basename($0) != 'spring'
  require 'rubygems'
  require 'bundler'

  lockfile = Bundler::LockfileParser.new(Bundler.default_lockfile.read)
  spring = lockfile.specs.detect { |spec| spec.name == 'spring' }
  if spring
    Gem.use_paths Gem.dir, Bundler.bundle_path.to_s, *Gem.path
    begin
      gem 'spring', spring.version
      require 'spring/binstub'
    rescue Gem::MissingSpecError => e
      $stderr.puts 'INFO: Spring not available.'
    end
  end
end