class VagrantPlugins::CommandAddress::Command

Public Class Methods

synopsis() click to toggle source
# File lib/command.rb, line 6
def self.synopsis
  "outputs public IP address of a guest machine"
end

Public Instance Methods

execute() click to toggle source
# File lib/command.rb, line 10
def execute
  opts = OptionParser.new do |o|
    o.banner = "Usage: vagrant address [name]"
  end
  argv = parse_options(opts)
  return if !argv

  with_target_vms(argv, {:single_target=>true}) do |machine|
    ip = machine.provider.capability(:public_address)

    if machine.state.id != :running
      raise ::VagrantPlugins::CommandAddress::Errors::NotRunning
    end
    if ip == nil
      raise ::VagrantPlugins::CommandAddress::Errors::Unknown
    end

    message = ENV['TEAMCITY_VERSION'] ? "##teamcity[setParameter name='env.VAGRANT_ADDRESS' value='#{ip}']" : ip
    @env.ui.info(message)
  end
end