lib/exiffer/cli/read.ex
defmodule Exiffer.CLI.Read do
@moduledoc """
Documentation for `Exiffer.CLI.Read`.
"""
require Logger
@spec run(map) :: {:ok}
@doc """
Dump image file metadata.
"""
def run(opts) do
filename = Map.fetch!(opts, :filename)
format = Map.get(opts, :format, "text")
metadata = Exiffer.parse(filename)
case format do
"text" ->
:ok = Exiffer.Serialize.puts(metadata)
"json" ->
IO.puts(Jason.encode!(metadata, pretty: true))
_ ->
IO.puts("Unknown format: #{format}")
end
{:ok}
end
end