Ejecutables
Para construir ejecutables en Elixir utilizaremos escript. Escript produce un ejecutable que puede correr en cualquier sistema con Erlang instalado.
Comenzando
Para crear un ejecutable con escript hay sólo unas pocas cosas que necesitamos hacer: implementar una función main/1
y actualizar nuestro Mixfile.
Comenzaremos por crear un módulo que sirve como el punto de entrada a nuestro ejecutable. Aquí es donde implementaremos main/1
:
defmodule ExampleApp.CLI do
def main(args \\ []) do
# Do stuff
end
end
Después necesitaremos actualizar nuestro Mixfile para incluir la opción :escript
para nuestro proyecto junto con la especificación de nuestro módulo :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
Análisis sintáctico de argumentos
Con nuestra aplicación preparada podemos movernos al análisis sintáctico de argumentos de la línea de comandos. Para ello utilizaremos la función OptionParser.parse/2
de Elixir con la opción :switches
para indicar que nuestra bandera es booleana:
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
Construyendo
Una vez que hemos finalizado de configurar nuestra aplicación para usar escript, construir nuestro ejecutable es sencillo utilizando Mix:
mix escript.build
Pongamos a prueba nuestro ejecutable:
$ ./example_app --upcase Hello
HELLO
$ ./example_app Hi
Hi
Eso es todo. Hemos construido nuestro primer ejecutable en Elixir usando escript.
¿Encontraste un error o quieres contribuir a la lección? ¡Edita esta lección en GitHub!