要想在 Elixir 中生成可执行文件,我们要用escript
,escript
会生成的可执行文件,可以运行在任何安装了 Erlang的平台。
开始
用 escript
创建可执行文件做的事情很少:实现一个 main/1
函数,更新一下 Mixfile。
我们要创建一个模块可作为可执行文件的入口,也就是我们实现main/1 函数的地方:
defmodule ExampleApp.CLI do
def main(args \\ []) do
# Do stuff
end
end
接下来,我们要在 Mixfile 文件中添加 :escript
选项,并指定:main_module
的位置:
defmodule ExampleApp.Mixfile do
def project do
[app: :example_app, version: "0.0.1", escript: escript()]
end
defp escript do
[main_module: ExampleApp.CLI]
end
end
解析命令行参数
应用配置好之后,解析命令行参数。使用 Elixir 提供的 OptionParser.parse/2
函数和 :switches
选项表明要处理的是布尔值:
defmodule ExampleApp.CLI do
def main(args \\ []) do
args
|> parse_args
|> response
|> IO.puts()
end
defp parse_args(args) do
{opts, word, _} =
args
|> OptionParser.parse(switches: [upcase: :boolean])
{opts, List.to_string(word)}
end
defp response({opts, word}) do
if opts[:upcase], do: String.upcase(word), else: word
end
end
构建
配置好了 escript,使用 Mix执行文件 :
mix escript.build
来看一下怎么做:
$ ./example_app --upcase Hello
HELLO
$ ./example_app Hi
Hi
在 Elixir 用 escript 生成了自己的第一个可执行文件完成。
网友评论