Packages
nerves_runtime
0.13.0
0.13.13
0.13.12
0.13.11
retired
0.13.10
0.13.9
0.13.8
0.13.7
0.13.6
0.13.5
0.13.4
0.13.3
0.13.2
0.13.1
0.13.0
0.12.0
0.11.10
0.11.9
0.11.8
0.11.7
0.11.6
0.11.5
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.3
0.10.2
0.10.1
0.10.0
retired
0.9.5
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.0
0.7.0
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.3
0.5.2
0.5.1
0.5.0
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.1
0.3.0
0.2.0
0.1.2
0.1.1
0.1.0
Small, general runtime utilities for Nerves devices
Current section
Files
Jump to
Current section
Files
lib/nerves_runtime/mount_parser.ex
defmodule Nerves.Runtime.MountParser do
@moduledoc false
@typedoc false
@type mounts() :: %{String.t() => %{device: String.t(), type: String.t(), flags: [String.t()]}}
@doc false
@spec parse(String.t()) :: mounts()
def parse(mount_output) do
mount_output
|> String.split("\n")
|> Enum.reduce(%{}, &parse_line/2)
end
defp parse_line(line, mounts) do
case String.split(line) do
[device, "on", target, "type", type, flags_text | _] ->
flags = parse_flags(flags_text)
Map.put(mounts, target, %{device: device, type: type, flags: flags})
_ ->
# Ignore unknown mount strings
mounts
end
end
defp parse_flags(flags_text) do
flags_text
|> String.trim_leading("(")
|> String.trim_trailing(")")
|> String.split(",")
end
end