# Mix v1.10.3 Mix.Shell behaviour View Source

Defines `Mix.Shell` contract.

# Link to this section Summary

## Functions

cmd(command, options \\ [], callback)

Executes the given `command` as a shell command and invokes the `callback` for the streamed response.

printable_app_name()

Returns the printable app name.

## Callbacks

cmd(command)

Executes the given command and returns its exit status.

cmd(command, options)

Executes the given command and returns its exit status.

error(message)

Prints the given ANSI error to the shell.

info(message)

Prints the given ANSI message to the shell.

print_app()

Prints the current application to the shell if it was not printed yet.

prompt(message)

Prompts the user for input.

yes?(message)

Prompts the user for confirmation.

# Link to this section Functions

Link to this function

# cmd(command, options \\ [], callback)

View Source

Executes the given `command` as a shell command and invokes the `callback` for the streamed response.

This is most commonly used by shell implementations but can also be invoked directly.

## Options

- `:stderr_to_stdout` - redirects stderr to stdout, defaults to true
- `:env` - a list of environment variables, defaults to `[]`
- `:quiet` - overrides the callback to no-op

Link to this function

# printable_app_name()

View Source

Returns the printable app name.

This function returns the current application name, but only if the application name should be printed.

Calling this function automatically toggles its value to `false` until the current project is re-entered. The goal is to avoid printing the application name multiple times.

# Link to this section Callbacks

Link to this callback

# cmd(command)

View Source

## Specs

    cmd(command :: String.t()) :: integer()

Executes the given command and returns its exit status.

Link to this callback

# cmd(command, options)

View Source

## Specs

    cmd(command :: String.t(), options :: keyword()) :: integer()

Executes the given command and returns its exit status.

## Options

- `:print_app` - when `false`, does not print the app name when the command outputs something

- `:stderr_to_stdout` - when `false`, does not redirect stderr to stdout

- `:quiet` - when `true`, do not print the command output

- `:env` - environment options to the executed command

Link to this callback

# error(message)

View Source

## Specs

    error(message :: IO.ANSI.ansidata()) :: :ok

Prints the given ANSI error to the shell.

Link to this callback

# info(message)

View Source

## Specs

    info(message :: IO.ANSI.ansidata()) :: :ok

Prints the given ANSI message to the shell.

Link to this callback

# print_app()

View Source

## Specs

    print_app() :: :ok

Prints the current application to the shell if it was not printed yet.

Link to this callback

# prompt(message)

View Source

## Specs

    prompt(message :: binary()) :: binary()

Prompts the user for input.

Link to this callback

# yes?(message)

View Source

## Specs

    yes?(message :: binary()) :: boolean()

Prompts the user for confirmation.