Current section
Files
Jump to
Current section
Files
lib/yemux.ex
defmodule Yemux do
alias Yemux.{Error, Session}
@moduledoc """
Documentation for `Yemux`.
"""
def main(dispatch, args)
def main(:yemux, args) do
_yemux(args)
end
defp _yemux(args)
defp _yemux([yml_filename, cfg_filename]) do
case YamlElixir.read_from_file(cfg_filename) do
{:ok, config} -> _yemux([yml_filename], config)
{:error, %{message: message}} -> raise Error.BadYamlFile, message
end
end
defp _yemux([filename], config\\nil) do
case YamlElixir.read_from_file(filename) do
{:ok, yaml} -> _yemux_create(filename, yaml, config)
{:error, %{message: message}} -> raise Error.BadYamlFile, message
end
end
defp _yemux_create(filename, yaml, config \\ nil) do
case Session.new(filename, yaml, config) |> Session.create do
{:ok, list} -> list |> List.flatten |> Enum.join("\n")
{:error, message} -> raise Error.BadSessionSpec, message
end
end
end
# SPDX-License-Identifier: Apache-2.0