Skip to content

Latest commit

 

History

History
284 lines (155 loc) · 9.18 KB

moyo_command.md

File metadata and controls

284 lines (155 loc) · 9.18 KB

Module moyo_command

外部コマンドの実行に関する処理を集めたユーティリティモジュール.

Copyright (c) 2013-2014 DWANGO Co., Ltd. All Rights Reserved.

Data Types


argument() = iodata() | integer() | {iodata(), [argument_option(), ...]} | option_element()

外部プログラムに渡す引数.


argument_option() = long_option | equal | escape | float_option()

引数に関するオプション.


command() = iodata_or_atom()

外部プログラムの実行パス.


destination_file_path() = binary()

標準出力/エラー出力の出力先.


float_option() = {decimals, Decimals::0..253} | {scientific, Decimals::0..249} | compact

小数パラメータに関するオプション.


iodata_or_atom() = iodata() | atom()

iodata(), または, atom().


option() = port_settings() | escape_all | {stdout, destination_file_path() | stderr} | {stderr, destination_file_path() | stdout} | discard_stderr | {timeout, time()} | {nice, integer()} | {close_function, fun((port()) -> ok)} | {stdout_hook_fun, {stdout_hook_fun(), term()}} | {open_port_module, module()}

execute/2, execute/3に指定できるオプション.


option_argument() = iodata() | integer() | none

オプションの引数部分.


option_character() = iodata_or_atom()

オプション文字.

外部プログラムに渡す引数の中でオプションとして指定するもの.


port_settings() = term()

open_portに指定できるオプション.


stdout_hook_fun() = fun((binary() | {eol | noeol, binary()}, term()) -> term() | binary()) | fun((exit, term()) -> binary())

標準出力に対するフィルタ関数.


time() = non_neg_integer()

timeoutに指定できる数字.

Function Index

escape_shell_arg/1シングルクォーテーションで両端を囲み、バイナリ中のシングルクォーテーションをエスケープする.
execute/2外部コマンドを実行する.
execute/3外部コマンドを実行する.
generate_command/2オプションリストからコマンド文字列(バイナリ)を生成する.
generate_command/3オプションリストからコマンド文字列(バイナリ)を生成する.
reduce_parameters/1パラメータリストを整理する.
reduce_parameters/2パラメータリストを整理する.

Function Details

escape_shell_arg/1


escape_shell_arg(Binary::binary()) -> EscapedBinary::binary()

シングルクォーテーションで両端を囲み、バイナリ中のシングルクォーテーションをエスケープする.

execute/2


execute(Command::command(), ArgumentList::[argument()]) -> {{ok, Output} | {error, Reason}, FullCommandBinary}
  • Output = binary()
  • Reason = term()
  • FullCommandBinary = binary()

外部コマンドを実行する.

execute/3


execute(Command::command(), ArgumentList::[argument()], OptionList::[option()]) -> {{ok, Output} | {error, Reason}, FullCommandBinary}
  • Output = binary()
  • Reason = timeout | {exit_status, Status}
  • Status = integer()
  • FullCommandBinary = binary()

外部コマンドを実行する.

オプション generate_commandのオプション + open_portのオプション

generate_command/2


generate_command(Command::command(), ArgumentList::[argument()]) -> binary()

オプションリストからコマンド文字列(バイナリ)を生成する.

generate_command/3


generate_command(Command::command(), ArgumentList::[argument()], OptionList::[option()]) -> binary()

オプションリストからコマンド文字列(バイナリ)を生成する.

【argument option】
long_option: long optionにする("--"でオプションを指定する.).
equal : オプション文字とオプション引数の間を"="で繋ぐ.
escape : オプション引数をシングルクォーテーションでエスケープする.

【argument option (小数)】
{scientific, 0..253} : 小数を指数表記で出力する.数字は有効桁数.
{decimals, 0..249} : 小数を実数表記で出力する.数字は有効桁数.
compact : 後端のゼロを省く.
(*) デフォルトは[{decimals, 4}]
(*) 表記方法が複数指定されている場合,最も後に指定された表記方法が採用される.

【option】
escape_all : 全てのオプション引数をエスケープする.
{stdout, Destination} : 標準出力を指定先のファイルに出力する. Destinationには出力ファイル先を指定する.
{stderr, Destination} : 標準エラー出力を指定先のファイルに出力する. Destinationには出力ファイル先を指定する.
discard_stderr : 標準エラー出力を/dev/nullに捨てる.
{timeout, Time} : Time ミリ秒 で処理が終わらなかった場合, タイムアウトする.
{close_function, Fun} : timeoutオプションでタイムアウトした時の処理を明示的に指定する.
{stdout_hook_fun, {Fun, Init}} : 標準出力をフィルタリングする. Initに初期値を, Funは2引数の関数で第1引数にexitが来た場合はbinaryを返す.
{open_port_module, Module} : erlang:open_port/2の代わりに, 指定したモジュールのopen_port/2を使用する.

reduce_parameters/1


reduce_parameters(Parameters::[any()]) -> ValidParameters::[any()]

パラメータリストを整理する.

パラメータリストから不必要な要素を除く. 不必要な要素のdefaultは, undefinedとする.

reduce_parameters/2


reduce_parameters(Parameters::[any()], UnnecessaryParameters::[any()]) -> ValidParameters::[any()]

パラメータリストを整理する.

パラメータリストから不必要な要素を除く.