   defp do_overlay(_release, output_dir, {:link, from, to}, vars) when is_binary(from) and is_binary(to) do
     with {:ok, from} <- template_str(from, vars),
          {:ok, to}   <- template_str(to, vars),
+         _           <- Logger.debug("Applying link overlay from #{from} to #{to}"),
          expanded_to <- Path.join(output_dir, to),
          :ok         <- File.ln_s(from, expanded_to),
       do: {:ok, to}

  defp do_overlay(_release, output_dir, {:copy, from, to}, vars) when is_binary(from) and is_binary(to) do
    with {:ok, from} <- template_str(from, vars),
         {:ok, to}   <- template_str(to, vars),
         expanded_to <- Path.join(output_dir, to),
         {:ok, _}    <- File.cp_r(from, expanded_to),
      do: {:ok, to}

  relative to the project root, but overlay output paths are relative to the root directory for the current
  release, which is why the directory is created in `rel/my_release`, and not in the project root.
  """
  alias Mix.Releases.{Logger, Release}

  @typep overlay :: {:mkdir, String.t} |
                    {:copy, String.t, String.t} |
