Akd v0.2.1 Akd.Fetch.Scp View Source

A native Hook module that comes shipped with Akd.

This module uses Akd.Hook.

Provides a set of operations that fetch source code using scp from a given source to a destination.

Ensures to cleanup and empty the desination directory. (Doesn’t run this by default)

Doesn’t have any Rollback operations.

Options:

  • run_ensure: boolean. Specifies whether to a run a command or not.
  • ignore_failure: boolean. Specifies whether to continue if this hook fails.
  • src: string. Source of the code from where to scp the data.
  • exclude: list. Scp all folders except the ones given in exclude.

Defaults:

  • run_ensure: false
  • ignore_failure: false
  • src: Current working directory, .
  • exclude: ["_build", ".git", "deps", ".gitignore"]

Link to this section Summary

Functions

Callback implementation for get_hooks/2

Link to this section Functions

Link to this function get_hooks(deployment, opts) View Source
get_hooks(Akd.Deployment.t(), Keyword.t()) :: [Akd.Hook.t()]
get_hooks(Akd.Deployment.t(), list()) :: Akd.Hook.t()

Callback implementation for get_hooks/2.

This function returns a list of operations that can be used to fetch source code using scp from a given source.

Examples

iex> deployment = %Akd.Deployment{mix_env: "prod",
...> build_at: Akd.Destination.local(),
...> publish_to: Akd.Destination.local(),
...> name: "name",
...> vsn: "0.1.1"}
iex> Akd.Fetch.Scp.get_hooks(deployment, [exclude: []])
[%Akd.Hook{ensure: [%Akd.Operation{cmd: "rm -rf ./*", cmd_envs: [],
      destination: %Akd.Destination{host: :local, path: ".",
       user: :current}}], ignore_failure: false,
    main: [%Akd.Operation{cmd: "rsync -krav -e ssh . .", cmd_envs: [],
      destination: %Akd.Destination{host: :local, path: ".",
       user: :current}}], rollback: [], run_ensure: true}]
iex> Akd.Fetch.Scp.get_hooks(deployment, [src: Akd.Destination.local()])
[%Akd.Hook{ensure: [%Akd.Operation{cmd: "rm -rf ./*", cmd_envs: [],
     destination: %Akd.Destination{host: :local, path: ".",
      user: :current}}], ignore_failure: false,
     main: [%Akd.Operation{cmd: "rsync -krav -e ssh --exclude=\"_build\" --exclude=\".git\" --exclude=\"deps\" . .",
     cmd_envs: [],
     destination: %Akd.Destination{host: :local, path: ".",
      user: :current}}], rollback: [], run_ensure: true}]