Current section

Files

Jump to
mandrag lib mix tasks mandrag.start.ex
Raw

lib/mix/tasks/mandrag.start.ex

defmodule Mix.Tasks.Mandrag.Start do
use Mix.Task
import Mandrag
def run(_) do
message "Starting #{name} for the first time."
start(location)
ssh "cd #{name}/run && tar xf #{name}.tar.gz && rm #{name}.tar.gz"
run_command("start")
end
defp start(:local) do
if Code.ensure_loaded?(Ecto) do
Mix.Task.run "ecto.create", []
Mix.Task.run "ecto.migrate", []
Mix.Task.run "run", ["priv/repo/seeds.exs"]
end
scp "rel/#{name}/releases/#{version}/#{name}.tar.gz", "#{name}/run/#{name}.tar.gz"
end
defp start(:remote) do
if Code.ensure_loaded?(Ecto), do: ssh "cd #{name} && MIX_ENV=#{Mix.env} mix do ecto.create, ecto.migrate, run priv/repo/seeds.exs"
ssh "cp #{name}/rel/#{name}/releases/#{version}/#{name}.tar.gz #{name}/run"
end
end