Cerberus.Browser.Install (cerberus v0.1.6)

Copy Markdown View Source

Shared browser-runtime installer for Cerberus Mix tasks.

This module executes Cerberus installer scripts and returns a parsed result that can be rendered as JSON, key/value env lines, or shell exports.

Summary

Types

Supported browser runtime lanes

Parsed install payload from installer output

Types

browser()

@type browser() :: :chrome | :firefox

Supported browser runtime lanes

env_map()

@type env_map() :: %{required(String.t()) => String.t()}

install_opt()

@type install_opt() ::
  {:version, String.t()}
  | {:firefox_version, String.t()}
  | {:geckodriver_version, String.t()}
  | {:stable_link_dir, String.t()}
  | {:command_runner,
     (String.t(), [String.t()], keyword() -> {String.t(), non_neg_integer()})}

install_payload()

@type install_payload() :: %{
  browser: browser(),
  binaries: map(),
  versions: map(),
  raw: map()
}

Parsed install payload from installer output

Functions

browser_config(map)

@spec browser_config(install_payload()) :: keyword()

env_vars(map)

@spec env_vars(install_payload()) :: env_map()

install(browser, opts \\ [])

@spec install(browser(), [install_opt()]) ::
  {:ok, install_payload()} | {:error, String.t()}

render(payload)

@spec render(install_payload()) :: String.t()