檢視原始碼 Mix.Shell 行為 (Mix v1.16.2)
定義 Mix.Shell
合約。
摘要
呼叫
執行給定的命令並傳回其退出狀態。
執行給定的命令並傳回其退出狀態。
將給定的 ANSI 錯誤列印至 shell。
將給定的 ANSI 訊息列印至 shell。
如果尚未列印目前的應用程式,則將其列印至 shell。
提示使用者輸入。
提示使用者確認。
提示使用者確認。
呼叫
執行給定的命令並傳回其退出狀態。
使用選項為空的 cmd/2
的捷徑。
執行給定的命令並傳回其退出狀態。
選項
此呼叫應支援下列選項
: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。
提示使用者輸入。
提示使用者確認。
使用空選項的 yes?/2
的捷徑。
提示使用者確認。
選項
:default
-:yes
或:no
(預設為:yes
)
函式
@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
- 覆寫 callback 為 no-op
@spec printable_app_name() :: atom() | nil
傳回可列印的應用程式名稱。
此函式會回傳目前的應用程式名稱,但僅限於應該列印應用程式名稱時。
呼叫此函式會自動將其值切換為 false
,直到重新進入目前的專案。目標是避免多次列印應用程式名稱。