Current section
Files
Jump to
Current section
Files
lib/vibe/server/metadata.ex
defmodule Vibe.Server.Metadata do
@moduledoc "Server node metadata persistence for client discovery."
@spec path() :: Path.t()
def path, do: Vibe.Paths.server_metadata()
@spec write!(map()) :: :ok
def write!(metadata) do
path = path()
File.mkdir_p!(Path.dirname(path))
File.write!(path, Jason.encode!(metadata, pretty: true))
end
@spec read() :: {:ok, map()} | {:error, term()}
def read do
with {:ok, text} <- File.read(path()), do: Jason.decode(text)
end
@spec delete() :: :ok
def delete do
File.rm(path())
:ok
end
end