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