Current section
Files
Jump to
Current section
Files
lib/SSH/api.ex
defmodule SSH.Api do
@moduledoc """
You might want to run mocked tests against a component that uses the SSH Api.
Here is provided the behaviour module to support this testing pattern.
generally speaking, these sorts of features should not be using the
quick-and-dirty banged commands, so only the api for the fully error-tupled
forms is provided.
"""
@callback connect(SSH.remote, keyword) :: SSH.connect_result
@callback connect(SSH.remote) :: SSH.connect_result
@callback connect!(SSH.remote, keyword) :: SSH.conn | no_return
@callback connect!(SSH.remote) :: SSH.conn | no_return
@callback run(SSH.conn, String.t, keyword) :: SSH.run_result
@callback run(SSH.conn, String.t) :: SSH.run_result
@callback run!(SSH.conn, String.t, keyword) :: iodata | {String.t, String.t}
@callback run!(SSH.conn, String.t) :: iodata | {String.t, String.t}
@callback fetch(SSH.conn, Path.t, keyword) :: SSH.fetch_result
@callback fetch(SSH.conn, Path.t) :: SSH.fetch_result
@callback fetch!(SSH.conn, Path.t, keyword) :: binary | no_return
@callback fetch!(SSH.conn, Path.t) :: binary | no_return
@callback send(SSH.conn, iodata, Path.t, keyword) :: SSH.send_result
@callback send(SSH.conn, iodata, Path.t) :: SSH.send_result
@callback send!(SSH.conn, iodata, Path.t, keyword) :: :ok | no_return
@callback send!(SSH.conn, iodata, Path.t) :: :ok | no_return
@callback close(term) :: :ok | {:error, String.t}
@optional_callbacks [
connect: 1, connect!: 2, connect!: 1,
run: 2, run!: 3, run!: 2,
fetch: 2, fetch!: 3, fetch!: 2,
send: 3, send!: 4, send!: 3
]
end