Current section
Files
Jump to
Current section
Files
lib/pinout/detector.ex
defmodule Pinout.Detector do
@moduledoc false
alias Pinout.DB
@spec detect(Path.t()) :: String.t()
def detect(sysfs \\ "/sys") do
case read_model(sysfs) do
:error ->
"Unknown Board"
{:ok, model} ->
model
|> String.trim("\0")
|> DB.lookup_name_by_model()
end
end
defp read_model(sysfs) do
with {:error, _} <- File.read(Path.join(sysfs, "firmware/devicetree/model")),
{:error, _} <- File.read(Path.join(sysfs, "firmware/devicetree/base/model")) do
:error
end
end
end