Sha256: cbaf82f5da18c24f099b38b1f4060bc51662c1e3c48e2e5c047adbc01a82376b

Contents?: true

Size: 1.34 KB

Versions: 11

Compression:

Stored size: 1.34 KB

Contents

require 'serverspec'
require 'pathname'
require 'net/ssh'

include SpecInfra::Helper::Ssh
include SpecInfra::Helper::DetectOS

RSpec.configure do |c|
  if ENV['ASK_SUDO_PASSWORD']
    require 'highline/import'
    c.sudo_password = ask("Enter sudo password: ") { |q| q.echo = false }
  else
    c.sudo_password = ENV['SUDO_PASSWORD']
  end
  c.before :all do
    block = self.class.metadata[:example_group_block]
    if RUBY_VERSION.start_with?('1.8')
      file = block.to_s.match(/.*@(.*):[0-9]+>/)[1]
    else
      file = block.source_location.first
    end
    host  = File.basename(Pathname.new(file).dirname)
    if c.host != host
      c.ssh.close if c.ssh
      c.host  = host
      options = Net::SSH::Config.for(c.host)
      user    = options[:user] || Etc.getlogin
      vagrant_up = `vagrant up default`
      config = `vagrant ssh-config default`
      if config != ''
        config.each_line do |line|
          if match = /HostName (.*)/.match(line)
            host = match[1]
          elsif  match = /User (.*)/.match(line)
            user = match[1]
          elsif match = /IdentityFile (.*)/.match(line)
            options[:keys] =  [match[1].gsub(/"/,'')]
          elsif match = /Port (.*)/.match(line)
            options[:port] = match[1]
          end
        end
      end
      c.ssh   = Net::SSH.start(host, user, options)
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
opskeleton-0.6.3 templates/parent/spec/spec_helper.rb
opskeleton-0.6.2 templates/parent/spec/spec_helper.rb
opskeleton-0.6.0 templates/parent/spec/spec_helper.rb
opskeleton-0.5.3 templates/parent/spec/spec_helper.rb
opskeleton-0.5.2 templates/parent/spec/spec_helper.rb
opskeleton-0.5.1 templates/parent/spec/spec_helper.rb
opskeleton-0.5.0 templates/parent/spec/spec_helper.rb
opskeleton-0.4.9 templates/parent/spec/spec_helper.rb
opskeleton-0.4.8 templates/parent/spec/spec_helper.rb
opskeleton-0.4.7 templates/parent/spec/spec_helper.rb
opskeleton-0.4.6 templates/parent/spec/spec_helper.rb