Current section

Files

Jump to
mandrag lib mix tasks mandrag.upgrade.hot.ex
Raw

lib/mix/tasks/mandrag.upgrade.hot.ex

defmodule Mix.Tasks.Mandrag.Upgrade.Hot do
use Mix.Task
import Mandrag
def run(_) do
message "Performing hot upgrade. Updating #{name} to #{version}."
upgrade(location)
run_command("upgrade '#{version}'")
end
defp upgrade(:local) do
ssh "mkdir #{name}/releases/#{version}"
scp "rel/#{name}/releases/#{version}/#{name}.tar.gz", "#{name}/releases/#{version}/#{name}.tar.gz"
end
defp upgrade(:remote) do
ssh "mkdir #{name}/run/releases/#{version}"
ssh "cp #{name}/rel/#{name}/releases/#{version}/#{name}.tar.gz #{name}/run/releases/#{version}/"
scp "config/prod.secret.exs", "#{name}/config/prod.secret.exs"
end
end