# `CauldronGPU.Setup.Command`
[🔗](https://github.com/jaman/cauldron/blob/v0.3.3/cauldron_gpu/lib/cauldron_gpu/setup/command.ex#L1)

Programs run by `CauldronGPU.Setup`'s platforms.

`output/2` runs a program and keeps what it printed. `interactive/2` runs one on this
terminal, so a password prompt (`sudo`) or an installer's questions reach the person
running the setup.

# `interactive`

```elixir
@spec interactive(String.t(), [String.t()]) :: :ok | {:error, String.t()}
```

Runs `program` with `args` on this terminal and waits for it: `:ok`, or `{:error, text}`
when it is missing or exits with a failure.

# `output`

```elixir
@spec output(String.t(), [String.t()]) :: {:ok, String.t()} | :error
```

What `program` with `args` printed, or `:error` when it is missing or failed.

# `succeeds?`

```elixir
@spec succeeds?(String.t(), [String.t()]) :: boolean()
```

Whether `program` with `args` runs and succeeds.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
