Packages
doex
0.4.12
0.14.1
0.12.2
0.12.1
0.11.2
0.11.1
0.11.0
0.10.2
0.10.1
0.9.0
0.8.3
0.8.2
0.8.1
0.8.0
0.7.8
0.7.7
0.7.6
0.7.5
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.1
0.6.0
0.5.2
0.5.1
0.5.0
0.4.18
0.4.17
0.4.16
0.4.15
0.4.14
0.4.13
0.4.12
0.4.11
0.4.10
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.1
0.3.0
0.2.2
0.2.1
0.2.0
0.1.1
A Digital Ocean API v2 client for Elixir (yes, another one)
Current section
Files
Jump to
Current section
Files
lib/doex/cli/ls.ex
defmodule Doex.Cli.Ls do
use FnExpr
alias Doex.Cli.Parser
alias Doex.Io.{Shell, Table}
@moduledoc"""
List your resources.
doex ls <--resource_type>
Currently, the only supported resource type is a `--droplets`, but more are coming.
For example
doex ls my_app --droplets
Droplets are also the default, so the `--droplets` can be omitted.
doex ls my_app
If you have a specific config file, `mix help doex.config` then add it as an environment variable
DOEX_CONFIG=/tmp/my.doex doex ls
"""
@options %{
droplets: :boolean,
droplet: :boolean,
}
def run(raw_args) do
Doex.start
raw_args
|> Parser.parse(@options)
|> invoke(fn {opts, []} -> ls(opts) end)
|> Enum.map(fn droplet -> [droplet["name"], droplet["id"], droplet["status"]] end)
|> invoke([["------", "------", "------"] | &1])
|> invoke([["name", "id", "status"] | &1])
|> Table.format(padding: 4)
|> Shell.info
end
def ls(%{droplets: true}), do: Doex.Client.list_droplets
def ls(%{droplet: true}), do: Doex.Client.list_droplets
def ls(_), do: Doex.Client.list_droplets
end