查看源代码 Mix.Shell 行为 (Mix v1.16.2)

定义 Mix.Shell 合同。

概要

回调

执行给定的命令并返回其退出状态。

执行给定的命令并返回其退出状态。

将给定的 ANSI 错误打印到 shell。

将给定的 ANSI 消息打印到 shell。

如果当前应用程序尚未打印,则将其打印到 shell。

提示用户输入。

提示用户确认。

提示用户确认。

函数

将给定的 command 作为 shell 命令执行,并为流式响应调用 callback

返回可打印的应用程序名称。

回调

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

执行给定的命令并返回其退出状态。

cmd/2 的快捷方式,带有空选项。

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

执行给定的命令并返回其退出状态。

选项

此回调应支持以下选项

  • :print_app - 当 false 时,如果命令输出内容,则不打印应用程序名称

  • :stderr_to_stdout - 当 false 时,不将 stderr 重定向到 stdout

  • :quiet - 当 true 时,不打印命令输出

  • :env - 执行命令的环境选项

  • :cd - (从 v1.11.0 开始)运行命令的目录

所有内置 shell 都支持这些。

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

将给定的 ANSI 错误打印到 shell。

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

将给定的 ANSI 消息打印到 shell。

@callback print_app() :: :ok

如果当前应用程序尚未打印,则将其打印到 shell。

@callback prompt(message :: binary()) :: binary()

提示用户输入。

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

提示用户确认。

yes?/2 的快捷方式,带有空选项。

链接到此回调

yes?(message, options)

查看源代码
@callback yes?(message :: binary(), options :: keyword()) :: boolean()

提示用户确认。

选项

  • :default - :yes:no(默认值为 :yes

函数

链接到此函数

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

查看源代码
@spec cmd(String.t(), keyword(), (binary() -> term())) ::
  exit_status :: non_neg_integer()

将给定的 command 作为 shell 命令执行,并为流式响应调用 callback

这最常由 shell 实现使用,但也可以直接调用。

callback 获取命令的输出数据。其返回值将被忽略。

选项

  • :cd - (从 v1.11.0 开始)运行命令的目录

  • :stderr_to_stdout - 将 stderr 重定向到 stdout,默认值为 true

  • :env - 环境变量列表,默认为 []

  • :quiet - 覆盖回调以不执行任何操作

@spec printable_app_name() :: atom() | nil

返回可打印的应用程序名称。

此函数返回当前应用程序名称,但前提是应打印应用程序名称。

调用此函数会自动将其值切换为 false,直到重新进入当前项目。目的是避免多次打印应用程序名称。