Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,35 @@
|
|||
defmodule Configuration_file do
|
||||
def read(file) do
|
||||
File.read!(file)
|
||||
|> String.split(~r/\n|\r\n|\r/, trim: true)
|
||||
|> Enum.reject(fn line -> String.starts_with?(line, ["#", ";"]) end)
|
||||
|> Enum.map(fn line ->
|
||||
case String.split(line, ~r/\s/, parts: 2) do
|
||||
[option] -> {to_atom(option), true}
|
||||
[option, values] -> {to_atom(option), separate(values)}
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
def task do
|
||||
defaults = [fullname: "Kalle", favouritefruit: "apple", needspeeling: false, seedsremoved: false]
|
||||
options = read("configuration_file") ++ defaults
|
||||
[:fullname, :favouritefruit, :needspeeling, :seedsremoved, :otherfamily]
|
||||
|> Enum.each(fn x ->
|
||||
values = options[x]
|
||||
if is_boolean(values) or length(values)==1 do
|
||||
IO.puts "#{x} = #{values}"
|
||||
else
|
||||
Enum.with_index(values) |> Enum.each(fn {value,i} ->
|
||||
IO.puts "#{x}(#{i+1}) = #{value}"
|
||||
end)
|
||||
end
|
||||
end)
|
||||
end
|
||||
|
||||
defp to_atom(option), do: String.downcase(option) |> String.to_atom
|
||||
|
||||
defp separate(values), do: String.split(values, ",") |> Enum.map(&String.strip/1)
|
||||
end
|
||||
|
||||
Configuration_file.task
|
||||
Loading…
Add table
Add a link
Reference in a new issue