defmodule Mandrag do def message(text), do: if output_level > 0, do: IO.puts(text) def run_command(command), do: ssh("#{name}/run/bin/#{name} #{command}") # SSH helpers def ssh_options, do: "-i#{key} -oStrictHostKeyChecking=no" def ssh(command), do: Mix.Shell.IO.cmd "ssh #{user}@#{host} #{ssh_options} '#{command}'" def scp(source, destination), do: Mix.Shell.IO.cmd "scp #{ssh_options} #{source} #{user}@#{host}:#{destination}" # config helpers def user, do: Application.get_env(:mandrag, :user) def host, do: Application.get_env(:mandrag, :host) def key, do: Application.get_env(:mandrag, :key) def name, do: Application.get_env(:mandrag, :name) def version, do: Application.get_env(:mandrag, :version) def repo, do: Application.get_env(:mandrag, :repo) def location, do: Application.get_env(:mandrag, :build_location) || :local def output, do: Application.get_env(:mandrag, :output) || :info def output_level, do: %{error: 0, info: 1, debug: 2} |> Map.get(output) end