Packages
doex
0.6.1
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/id.ex
defmodule Doex.Cli.Id do
use FnExpr
alias Doex.Cli.Parser
alias Doex.Io.Shell
@moduledoc"""
Locate a ID of a resource. This can be done by name or tag.
doex id <--resource_type> <resource_name>
Or, by tag
doex droplets.id <--resource_type> <tag> --tag
If by tag, it will grab the `latest`.
The supported resources include
--droplets # Locate a droplet's ID
--snapshots # Locate a private image's ID (aka snapshot ID)
For example
doex id my_app --droplets
Droplets are also the default, so the `--droplets` can be omitted.
doex id 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 id my_app
"""
@options %{
tag: :boolean,
droplets: :boolean,
droplet: :boolean,
snapshots: :boolean,
snapshot: :boolean,
}
def run(raw_args) do
Doex.start
raw_args
|> Parser.parse(@options)
|> invoke(fn {opts, [name]} -> find_id(name, opts) end)
|> Shell.info
end
def find_id(name, %{droplets: true} = opts), do: Doex.Client.find_droplet_id(name, opts)
def find_id(name, %{droplet: true} = opts), do: Doex.Client.find_droplet_id(name, opts)
def find_id(name, %{snapshots: true} = opts), do: Doex.Client.find_snapshot_id(name, opts)
def find_id(name, %{snapshot: true} = opts), do: Doex.Client.find_snapshot_id(name, opts)
def find_id(name, opts), do: Doex.Client.find_droplet_id(name, opts)
end