美文网首页
Elixir-可执行文件

Elixir-可执行文件

作者: 你期待的花开 | 来源:发表于2018-11-14 17:37 被阅读20次

要想在 Elixir 中生成可执行文件,我们要用escriptescript 会生成的可执行文件,可以运行在任何安装了 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 生成了自己的第一个可执行文件完成。

相关文章

  • Elixir-可执行文件

    要想在 Elixir 中生成可执行文件,我们要用escript,escript 会生成的可执行文件,可以运行在任何...

  • Elixir-组合

    模块 模块是把函数组织到不同命名空间的最好的办法,除了能为函数分组,他还允许我们定义命名函数和私有函数。 Elix...

  • Elixir-函数

    目录 匿名函数& 操作符 模式匹配 命名函数函数名字和元数私有函数卫兵参数默认值 匿名函数 匿名函数就是没有名字,...

  • Elixir-推导

    在 Elixir 中,列表推导是循环遍历枚举值的语法糖。 基础 推导经常用来根据 Enum 和 Stream生...

  • Elixir-并发

    Elixir 的一大卖点就是对并发的支持,得益于 Erlang VM (BEAM) ,Elixir 的并发要比预期...

  • Elixir-基础

    安装 在https://elixir-lang.org 上可以找到安装说明。 使用 elixir -v 查看 el...

  • Elixir-集合

    列表、元组、关键字列表(keywords)、图(maps)、字典和函数组合子(combinators) 目录 列表...

  • Elixir-魔符

    Elixir 提供了一种叫做 魔符的语法糖来标识和处理字面量。一个魔符已~开头然后接上一个字符。Elixir 已经...

  • Elixir-模式匹配

    模式匹配是 Elixir 很强大的特性,它允许我们匹配简单值、数据结构、甚至函数。 匹配操作符 Elixir 中,...

  • Elixir-控制语句

    if 和 unless 你之前可能遇到过 if/2了,如果你使用过 Ruby,也会很熟悉 unless。它们在 E...

网友评论

      本文标题:Elixir-可执行文件

      本文链接:https://www.haomeiwen.com/subject/yzyymftx.html