Ausführbare Dateien
Um ausführbare Dateien in Elixir zu erstellen werden wir escript benutzen. Escript erzeugt eine ausführbare Datei, welche auf jedem System lauffähig ist, auf dem Erlang installiert ist.
Einstieg
Um eine ausführbare Datei mit escript zu erzeugen gibt es nur wenige Dinge zu tun: Eine main/1
Methode erzeugen und das Mixfile anpassen.
Wir starten mit der Erzeugung eines Moduls, welches als Einstiegspunkt für unsere ausführbare Datei dienen soll. Dort werden wir main/1
implementieren:
defmodule ExampleApp.CLI do
def main(args \\ []) do
# Mache irgendetwas
end
end
Als nächstes müssen wir für unser Projekt in unserem Mixfile die :escript
Option aufnehmen. Dazu müssen wir noch ein :main_module
festlegen:
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
Argumente parsen
Mit unserer erstellten Anwendung können wir dazu übergehen Kommandozeilenargumente zu parsen. Um das zu tun werden wir Elixirs OptionParser.parse/2
mit der :switches
Option nutzen, um darauf hinzuweisen, dass unser flag boolean ist:
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
Erstellen
Sobald wir die Konfiguration unserer Anwendung mit escript abgeschlossen haben ist die Erzeugung einer ausführbaren Datei mit der Hilfe von Mix einfach:
mix escript.build
Let’s take it for a spin:
$ ./example_app --upcase Hello
HELLO
$ ./example_app Hi
Hi
Das wars. Wir haben unsere erste ausführbare Datei in Elixir mit escript erzeugt.
Caught a mistake or want to contribute to the lesson? Edit this lesson on GitHub!