Class: VagrantPlugins::Vagga::Provisioner

Inherits:
Object
  • Object
show all
Defined in:
lib/vagrant-vagga/provisioner.rb

Instance Method Summary collapse

Constructor Details

#initialize(machine, config) ⇒ Provisioner

Returns a new instance of Provisioner.



7
8
9
# File 'lib/vagrant-vagga/provisioner.rb', line 7

def initialize(machine, config)
  super(machine, config)
end

Instance Method Details

#provisionObject



11
12
13
14
# File 'lib/vagrant-vagga/provisioner.rb', line 11

def provision
  setup_vagga
  setup_exec_script
end

#setup_exec_scriptObject



38
39
40
41
42
43
# File 'lib/vagrant-vagga/provisioner.rb', line 38

def setup_exec_script
  setup_script_destination = "/tmp/exec_vagga.sh"
  setup_script_path = Pathname.new("../exec_vagga.sh").expand_path(__FILE__)
  @machine.communicate.upload(setup_script_path.to_s, setup_script_destination)
  @machine.communicate.sudo("chmod +x %s" % setup_script_destination)
end

#setup_vaggaObject



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/vagrant-vagga/provisioner.rb', line 16

def setup_vagga
  if @machine.config.vm.communicator != :winrm
    # workaround for mkdir("/vagrant/.vagga/.mnt", 0777) = -1 EACCES
    FileUtils.mkdir_p File.join(@machine.env.root_path, ".vagga", ".mnt")

    # run setup script
    setup_script_destination = "/tmp/setup_vagga.sh"
    setup_script_path = Pathname.new("../setup_vagga.sh").expand_path(__FILE__)
    @machine.communicate.upload(setup_script_path.to_s, setup_script_destination)
    @machine.communicate.sudo("chmod +x %s" % setup_script_destination)

    if @machine.config.vagga.testing
      repository = "vagga-testing"
    else
      repository = "vagga"
    end
    setup_call = @machine.communicate.sudo("%s %s" % [setup_script_destination, repository]) do |type, data|
      @machine.env.ui.info(data.rstrip)
    end
  end
end