Cerberus.Browser.Install (cerberus v0.1.7)

Copy Markdown View Source

Shared Chrome runtime installer for Cerberus Mix tasks.

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

Summary

Types

Parsed install payload from installer output

Types

env_map()

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

install_opt()

@type install_opt() ::
  {: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: :chrome,
  binaries: %{chrome_binary: String.t(), chromedriver_binary: String.t()},
  versions: %{chrome_version: String.t(), chromedriver_version: String.t()},
  raw: %{required(String.t()) => String.t()}
}

Parsed install payload from installer output

Functions

browser_config(map)

@spec browser_config(install_payload()) ::
  keyword(chrome_binary: String.t(), chromedriver_binary: String.t())

env_vars(map)

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

install(opts \\ [])

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

render(payload)

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