Packages
deli
0.1.15
0.2.0-rc.6
0.2.0-rc.5
0.2.0-rc.4
0.2.0-rc.3
0.2.0-rc.2
0.2.0-rc.1
0.1.28
0.1.27
0.1.26
0.1.25
0.1.23
0.1.22
0.1.21
0.1.20
0.1.19
0.1.18
0.1.17
0.1.15
0.1.14
0.1.13
0.1.12
0.1.11
0.1.10
0.1.9
0.1.8
retired
0.1.7
retired
0.1.6
retired
0.1.5
retired
0.1.4
retired
0.1.3
retired
0.1.2
retired
0.1.1
retired
0.1.0
retired
Easy deployment for Elixir apps
Current section
Files
Jump to
Current section
Files
lib/deli/controller/bin.ex
defmodule Deli.Controller.Bin do
import Deli.Shell
@moduledoc "Provides support for bin on deploy"
@behaviour Deli.Controller
@impl true
def start_host(app, host) do
bin_cmd(app, host, :start)
end
@impl true
def stop_host(app, host) do
bin_cmd(app, host, :stop)
end
@impl true
def restart_host(app, host) do
bin_cmd(app, host, :restart)
end
@impl true
def service_running?(app, host) do
status = app |> service_status(host)
status =~ ~r/pong/
end
@impl true
def service_status(app, host) do
app |> bin(host, :ping) |> cmd_result
end
defp bin_cmd(app, host, op) do
command = app |> bin(host, op)
cmd(command)
end
defp bin(app, host, cmd) do
"ssh #{app}@#{host} '/opt/#{app}/bin/#{app} #{cmd}'"
end
end