Do you want to pick up from where you left of?
Take me there

Executables

Untuk membuat Executable di Elixir, kita akan menggunakan escript. Escript menghasilkan berkas yang dapat dieksekusi di sistem apa pun yang sudah terpasang Erlang.

Memulai

Untuk membuat eksekutabel dengan escript, hanya ada beberapa hal yang perlu kita lakukan: implementasi fungsi main/1 dan memperbarui Mixfile kita.

Kita akan mulai dengan membuat modul yang berfungsi sebagai titik masuk ke program yang dapat dieksekusi. Di sinilah kita akan mengimplementasikan main/1:

defmodule ExampleApp.CLI do
  def main(args \\ []) do
    # Do stuff
  end
end

Selanjutnya, kita perlu memperbarui Mixfile kita untuk menyertakan opsi :escript untuk proyek kita beserta penentuan :main_module:

defmodule ExampleApp.Mixproject do
  def project do
    [app: :example_app, version: "0.0.1", escript: escript()]
  end

  defp escript do
    [main_module: ExampleApp.CLI]
  end
end

Mengurai Argumen

Setelah aplikasi kita siap, kita dapat melanjutkan ke penguraian argumen dari baris perintah (command line). Untuk melakukan ini, kita akan gunakan OptionParser.parse/2 Elixir dengan opsi :switches untuk menunjukkan bahwa flag kita adalah boolean:

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

Membangun

Setelah kita selesai mengkonfigurasi aplikasi kita untuk menggunakan escript, membangun file executable kita menjadi mudah dengan Mix:

mix escript.build

Let’s take it for a spin:

$ ./example_app --upcase Hello
HELLO

$ ./example_app Hi
Hi

Selesai. Kita telah membuat eksekutabel pertama kita di Elixir menggunakan escript.

Caught a mistake or want to contribute to the lesson? Edit this lesson on GitHub!