     alias NervesSystemCompatibility.Database
 
     @chart_dir "tmp/nerves_system_compatibility"
-    @row_opts [column_width: 20]
 
     def build(opts \\ []) do
       chart_dir = opts[:chart_dir] || @chart_dir

      }
    end

    defp table_row(values, opts) when is_list(values) do
      column_width = opts[:column_width] || 10
      header_column_width = opts[:header_column_width] || column_width
      value_column_width = opts[:value_column_width] || column_width

      [header | rest] = values

      [
        "|",
        [
          pad_table_cell(header, header_column_width)
          | Enum.map(rest, &pad_table_cell(&1, value_column_width))
        ]
        |> Enum.intersperse("|"),
        "|"
      ]
      |> Enum.join()
    end

    defp divider_row(cell_count, opts) when is_integer(cell_count) do
      column_width = opts[:column_width] || 10
      header_column_width = opts[:header_column_width] || column_width
      value_column_width = opts[:value_column_width] || column_width

      [
        "|",
        [
          pad_table_cell("---", header_column_width)
          | List.duplicate(pad_table_cell("---", value_column_width), cell_count - 1)
        ]
        |> Enum.intersperse("|"),
        "|"
      ]
      |> Enum.join()
    end

    defp pad_table_cell(value, count), do: String.pad_trailing(" #{value}", count)
  end

  defmodule Database do


    defp build_chart_for_target(target, opts) do
      column_labels = [target, "Erlang/OTP", "Nerves", "Nerves System BR", "Buildroot", "Linux"]
      header_rows = [table_row(column_labels), divider_row(length(column_labels))]

      data_rows =
        for version <- Database.get({target, :versions}) do
