Bakeware.Script behaviour (bakeware v0.2.4) View Source
Helper to generate a script that takes command-line arguments
Bakeware supports an API similar to Erlang's escript for implementing a main
function. Here's an example module:
defmodule MyApp.Main do
use Bakeware.Script
@impl Bakeware.Script
def main(_args) do
IO.puts "Hello, World!"
0
end
end
The return value sets the scripts exit status (0 for success and other values
for errors). Other value types are supported. See
:erlang.halt/2
for how these
work.
Next, add this module to your mix.exs
's application description. This usually
looks something like this:
def application do
[
extra_applications: [:logger],
mod: {Myapp.Main, []}
]
end
Why does the module get added to :mod
? Everything with Bakeware operates on
OTP Releases. The macros in Bakeware.Script
add the scaffolding to invoke your
main/1
function from the release.
Link to this section Summary
Functions
Defines an app spec that will execute a script
Link to this section Types
Specs
args() :: [String.t()]
Link to this section Functions
Defines an app spec that will execute a script
Link to this section Callbacks
Specs
main(args()) :: :ok | :error | non_neg_integer() | :abort | charlist() | String.t()