Akd v0.3.0 Akd.Destination View Source
This module represents a Destination struct which contains metadata about
a destination/location/host.
The meta data involves:
user- Represents the user who will be accessing a host/server. Expects a string, defaults to:current.host- Represents the host/server being accessed. Expects a string, defaults to:local.path- Represents the path on the server being accessed. Expects a string, defaults to.(current directory).
Example:
Accessing
root@x.x.x.x:/path/to/dir"would have:user:"root"host:"x.x.x.x"path:"/path/to/dir/"
This struct is mainly used by native hooks in Akd, but it can be leveraged
to produce custom hooks.
Link to this section Summary
Types
A Akd.Destination.host can be either a string or :local
Generic type for Akd.Destination
A Akd.Destination.user can be either a string or :current
Functions
Takes a string path and returns a local Akd.Destination.t struct which
corresponds to locahost with the given path
Takes a readable string and converts it to an Akd.Destination.t struct.
Expects the string to be in the following format:
<user>@<host>:<path>
and parses it to:
%Akd.Destination{user: <user>, host: <host>, path: <path>}
Takes an Akd.Destination.t struct, dest and parses it into a readable string
Link to this section Types
host()
View Source
host() :: String.t() | :local
host() :: String.t() | :local
A Akd.Destination.host can be either a string or :local
Generic type for Akd.Destination
user()
View Source
user() :: String.t() | :current
user() :: String.t() | :current
A Akd.Destination.user can be either a string or :current
Link to this section Functions
local(path \\ ".") View Source
Takes a string path and returns a local Akd.Destination.t struct which
corresponds to locahost with the given path.
Alternatively one can initialize an Akd.Destination.t struct with just
a path, which will return a local Destination struct by default
Examples
When a path is given:
iex> Akd.Destination.local("/fus/ro/dah")
%Akd.Destination{host: :local, path: "/fus/ro/dah", user: :current}
parse(string) View Source
Takes a readable string and converts it to an Akd.Destination.t struct.
Expects the string to be in the following format:
<user>@<host>:<path>
and parses it to:
%Akd.Destination{user: <user>, host: <host>, path: <path>}
Raises a MatchError if the string isn't in the correct format.
Examples
When a string with the correct format is given:
iex> Akd.Destination.parse("dragonborn@skyrim:whiterun")
%Akd.Destination{user: "dragonborn", host: "skyrim", path: "whiterun"}
When a wrongly formatted string is given:
iex> Akd.Destination.parse("arrowtotheknee")
** (MatchError) no match of right hand side value: ["arrowtotheknee"]
to_string(dest) View Source
Takes an Akd.Destination.t struct, dest and parses it into a readable string.
Examples
When dest is a local destination:
iex> params = %{user: :current, host: :local, path: "/path/to/dir"}
iex> local_destination = struct!(Akd.Destination, params)
iex> Akd.Destination.to_string(local_destination)
"/path/to/dir"
When dest remote destination:
iex> params = %{user: "dragonborn", host: "skyrim", path: "whiterun"}
iex> local_destination = struct!(Akd.Destination, params)
iex> Akd.Destination.to_string(local_destination)
"dragonborn@skyrim:whiterun"