Packages

Elixir client for the Docker Remote API.

Current section

Files

Jump to
docker lib docker.ex
Raw

lib/docker.ex

defmodule Docker do
@doc """
Given the name of a container, returns any matching IDs.
"""
def find_ids(name, :partial) do
name = name |> Docker.Names.container_safe |> Docker.Names.api
Docker.Containers.list
|> Enum.filter(&(match_partial_name(&1, name)))
|> Enum.map(&(&1["Id"]))
end
def find_ids(name) do
name = name |> Docker.Names.container_safe |> Docker.Names.api
Docker.Containers.list
|> Enum.filter(&(name in &1["Names"]))
|> Enum.map(&(&1["Id"]))
end
defp match_partial_name(container, name) do
container["Names"]
|> Enum.any?(&(&1 == name || String.starts_with?(&1, "#{name}_")))
end
end