Akd v0.2.1 Akd.DestinationResolver View Source
This module defines helper functions which can be used to resolve a destination for based on deployment and the destination type
Link to this section Summary
Functions
This function takes a destination
variable and a Deployment.t
struct
Link to this section Functions
Link to this function
resolve(dest, deployment)
View Source
resolve(Akd.Destination.t() | :build | :publish | :local, Akd.Deployment.t()) :: Akd.Destination.t()
This function takes a destination
variable and a Deployment.t
struct.
destination
variable could be either a Destination.t
struct or one of the
atoms: :build, :publish, :local
This function returns a resolved Destination.t
struct.
Examples
When a Destination.t
struct is passed:
iex> destination = Akd.Destination.local()
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.DestinationResolver.resolve(destination, deployment)
%Akd.Destination{user: :current, host: :local, path: "."}
When :build
is passed:
iex> deployment = %Akd.Deployment{mix_env: "prod",
...> build_at: Akd.Destination.local("build"),
...> publish_to: Akd.Destination.local("publish"),
...> name: "name",
...> vsn: "0.1.1"}
iex> Akd.DestinationResolver.resolve(:build, deployment)
%Akd.Destination{user: :current, host: :local, path: "build"}
When :publish
is passed:
iex> deployment = %Akd.Deployment{mix_env: "prod",
...> build_at: Akd.Destination.local("build"),
...> publish_to: Akd.Destination.local("publish"),
...> name: "name",
...> vsn: "0.1.1"}
iex> Akd.DestinationResolver.resolve(:publish, deployment)
%Akd.Destination{user: :current, host: :local, path: "publish"}
When :local
is passed:
iex> deployment = %Akd.Deployment{mix_env: "prod",
...> build_at: Akd.Destination.local("build"),
...> publish_to: Akd.Destination.local("publish"),
...> name: "name",
...> vsn: "0.1.1"}
iex> Akd.DestinationResolver.resolve(:local, deployment)
%Akd.Destination{user: :current, host: :local, path: "."}