I used Mix.install
to create an elixir script that reads all the files in a certain directory, manipulates those file names, and then creates a map using those file names.
Then I output that map to JSON data using Jason
library.
Mix.install([{:jason, "~> 1.3"}])
Path.wildcard(
Path.cwd!() <> "/loops/*"
)
|> Enum.reduce(%{}, fn "/home/aayushmau5/Downloads/experiments/loops/" <> remaining, acc ->
loops_data = Map.get(acc, remaining, [])
Map.put(acc, remaining, [
%{
"title" => String.split(remaining, " - ") |> Enum.at(0),
"other" => String.split(remaining, " - ") |> Enum.at(-1) |> String.slice(0..-5),
}
| loops_data
])
end)
|> Jason.encode!()
|> IO.puts()
I like Path.wildcard\1
, and pattern matching to get remaining
in Enum.reduce
. Pretty neat!