Packages
deli
0.1.22
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
alias Deli.Config
@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
[command | args] = app |> bin(host, :ping)
{:ok, content} = command |> cmd_result(args, [0, 1, 127])
content
end
defp bin_cmd(app, host, op) do
[command | args] = app |> bin(host, op)
cmd(command, args)
end
defp bin(app, host, cmd) do
[:ssh, "#{app}@#{host}", Config.bin_path(), cmd]
end
end