Mate.Driver behaviour (Mate v0.1.8) View Source
This is the behaviour for Mate Drivers.
The idea behind supporting multiple drivers is allowing the user to decide
how and where they want to build their application. By default it will use
the SSH driver, but you can also use Docker or Local. It is also possible
to write your own. For an example I recommend looking at Mate.Driver.SSH
.
NOTE: Deployments (after build) currently always use the Mate.Driver.SSH
.
Link to this section Summary
Callbacks
This one is optional and can be used to close the current connection, cleanup or whatever else might be needed.
Copy a file from remote to local
Copy a file from local to remote
Returns a description of the current host (defaults to context hostname)
Executes a command using the driver
Executes a script using the driver
Prepare the source for building, for example send it to the build server.
Starts the driver, for example create an SSH connection, start a docker container, or whatever else might be needed for your new session.
Link to this section Callbacks
Specs
close(session :: Mate.Session.t()) :: {:ok, Mate.Session.t()}
This one is optional and can be used to close the current connection, cleanup or whatever else might be needed.
Specs
copy_from(session :: Mate.Session.t(), src :: String.t(), dest :: String.t()) :: {:ok, String.t()} | {:error, String.t()}
Copy a file from remote to local
Specs
copy_to(session :: Mate.Session.t(), src :: String.t(), dest :: String.t()) :: {:ok, String.t()} | {:error, String.t()}
Copy a file from local to remote
Specs
current_host(session :: Mate.Session.t()) :: String.t()
Returns a description of the current host (defaults to context hostname)
Specs
exec(session :: Mate.Session.t(), command :: String.t(), args :: [String.t()]) :: {:ok, String.t()} | {:error, String.t()}
Executes a command using the driver
Specs
exec_script(session :: Mate.Session.t(), script :: String.t()) :: {:ok, String.t()} | {:error, String.t()}
Executes a script using the driver
Specs
prepare_source(session :: Mate.Session.t()) :: {:ok, Mate.Session.t()} | {:error, String.t()}
Prepare the source for building, for example send it to the build server.
Specs
start(session :: Mate.Session.t(), host :: String.t()) :: {:ok, Mate.Session.t()} | {:error, String.t()}
Starts the driver, for example create an SSH connection, start a docker container, or whatever else might be needed for your new session.