Current section

Files

Jump to
mandrag lib mandrag.ex
Raw

lib/mandrag.ex

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