Packages
doex
0.7.6
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/droplets.tag.ex
defmodule Doex.Cli.Droplets.Tag do
use FnExpr
alias Doex.Cli.Parser
alias Doex.Io.Shell
@moduledoc"""
THIS IS CURRENTLY UNDER CONSTRUCTION, AWAITING FEEDBACK FROM DigitalOcean
on a possible bug in the resource tag API.
Tag (or delete a tag on) a droplet.
doex droplets.tag <droplet_name_or_id> <tag_name>
To delete the tag, add the `--delete` flag
For example
doex droplets.tag my_app production
Or to remove a tag,
doex droplets.tag my_app stage --delete
If you have a specific config file, `mix help doex.config` then add it as an environment variable
DOEX_CONFIG=/tmp/my.doex doex droplets.tag my_app production
"""
@options %{
delete: :boolean,
tag: :boolean,
}
def run(raw_args) do
Doex.start
raw_args
|> Parser.parse(@options)
|> tag_droplet
|> Shell.inspect(raw_args)
end
defp tag_droplet({opts, [name_or_id, tag_name]}) do
name_or_id
|> Doex.Client.find_droplet_id(opts)
|> invoke(
Doex.Api.post(
"/tags/#{tag_name}/resources",
%{resources: [%{resource_type: "droplet", resource_id: &1}]}))
end
end