Module: VagrantPlugins::Ventriloquist::Cap::Debian::ElixirInstall

Defined in:
lib/ventriloquist/cap/platforms/debian/elixir_install.rb

Constant Summary collapse

ELIXIR_PRECOMPILED_1 =
"https://github.com/elixir-lang/elixir/releases/download/vVERSION/Precompiled.zip"
ELIXIR_PRECOMPILED_2 =
"https://github.com/elixir-lang/elixir/releases/download/vVERSION/vVERSION.zip"

Class Method Summary collapse

Class Method Details

.elixir_install(machine, version) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/ventriloquist/cap/platforms/debian/elixir_install.rb', line 9

def self.elixir_install(machine,version)
  @version = version

  machine.communicate.tap do |comm|
    if comm.test('which iex > /dev/null')
      machine.env.ui.info("Skipping Elixir installation")
      return
    end

    bin_path = "/usr/local/elixir/bin"
    srcs = [
      ELIXIR_PRECOMPILED_1.gsub(/VERSION/, @version),
      ELIXIR_PRECOMPILED_2.gsub(/VERSION/, @version)
    ]

    machine.env.ui.info("Installing Elixir #{@version}")

    path = download_path(comm)

    unless comm.test("test -f #{path}")
      machine.guest.capability(:download, srcs, path)
    end

    # TODO: Create unzip capability
    comm.sudo('apt-get install -y unzip')
    comm.sudo("unzip -o #{path} -d /usr/local/elixir")

    if ! comm.test("grep -q '#{bin_path}' /etc/profile.d/ventriloquist.sh 2>/dev/null")
      comm.sudo("echo 'export PATH=$PATH:#{bin_path}' >> /etc/profile.d/ventriloquist.sh")
    end
  end
end