Resolves the tdlib_json_cli executable for the current platform.
Resolution order (first hit wins):
config :sexy, :tdlib_binary— authoritative override. A broken configured path fails at port open; it never falls through to auto-detection.SEXY_TDLIB_PATHenvironment variable — same authority, for deployments where app config is inconvenient.- Per-user cache:
<user cache>/sexy/tdlib_json_cli-<tdlib version>-<target>, filled byensure_installed/0.
ensure_installed/0 runs once at Sexy.TDL supervisor start (and from
mix sexy.tdl.install): it downloads the platform binary from the GitHub
release pinned in priv/tdlib/manifest.json and verifies its sha256.
resolve!/0 never touches the network — it runs on every port restart.
Summary
Functions
Idempotent: download the pinned binary unless already resolvable.
The pinned-release manifest shipped with the package.
Path to the binary. Pure lookup, raises with instructions when absent.
Release target for this machine, e.g. "linux-x64" or "macos-arm64".
Functions
@spec ensure_installed() :: :ok | {:error, String.t()}
Idempotent: download the pinned binary unless already resolvable.
@spec manifest() :: map()
The pinned-release manifest shipped with the package.
@spec resolve!() :: String.t()
Path to the binary. Pure lookup, raises with instructions when absent.
@spec target() :: String.t()
Release target for this machine, e.g. "linux-x64" or "macos-arm64".