id = "erlang" name = "Erlang/OTP" homepage = "https://www.erlang.org" description = "A programming language used to build massively scalable soft real-time systems." executables = ["erl", "erlc"] [dotfiles] # The official ERTS documentation (https://www.erlang.org/docs/21/apps/erts/ # erts.pdf) states that the runtime searches the user's home for `.erlang` at # startup. This is the interactive shell startup file, not the release-level # sys.config file under the installation root. paths = ["~/.erlang"] exclude = [] secret = [] side_effect = false [commands] format = 1 label = "Start the Erlang shell" description = "Start an Erlang/OTP runtime (erl): run an expression, set the code path, or start or attach to a distributed node. Compiling with erlc and emulator (+) flags are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = false, short_attached = false, short_bundles = false } [[commands.source]] id = "docs" kind = "manual" url = "https://www.erlang.org/doc/apps/erts/erl_cmd.html" revision = "OTP 29.1" evidence = """ erl documentation, https://www.erlang.org/doc/apps/erts/erl_cmd.html (the form drives erl; erlc is not covered) -eval Expr (init flag) - Makes init evaluate the expression Expr -noshell - Starts an Erlang runtime system with no shell. -noinput - Ensures that the Erlang runtime system never tries to read any input. Implies -noshell. -name Name - Makes the Erlang runtime system into a distributed node. The node name will be Name@Host. For short names, use flag -sname instead. -setcookie Cookie - Sets the magic cookie of the node to Cookie -pa Dir1 Dir2 ... - Adds the specified directories to the beginning of the code path -pz Dir1 Dir2 ... - Adds the specified directories to the end of the code path -remsh Node - Starts Erlang with a remote shell connected to Node. -detached - Starts the Erlang runtime system detached from the system console. -hidden - Starts the Erlang runtime system as a hidden node -boot File - Specifies the name of the boot file -config Config -s Mod [Func [Arg1, Arg2, ...]] (init flag) - Makes init call the specified function. -sname arnie +S 2 -s my_init -extra +bertie """ [[commands.field]] id = "sname" label = "Short node name" description = "Start a distributed node with a short name." type = "string" option = ["-sname"] sources = ["docs"] [[commands.field]] id = "name" label = "Long node name" description = "Start a distributed node named Name@Host." type = "string" option = ["-name"] sources = ["docs"] [[commands.field]] id = "setcookie" label = "Cookie" type = "string" option = ["-setcookie"] sources = ["docs"] [[commands.field]] id = "remsh" label = "Remote shell to node" description = "Connect a remote shell to this node, for example node@host." type = "string" option = ["-remsh"] sources = ["docs"] [[commands.field]] id = "eval" label = "Evaluate expression" description = "Erlang expression to evaluate at startup, for example io:format(\"hi~n\")." type = "string" option = ["-eval"] sources = ["docs"] [[commands.field]] id = "noshell" label = "No shell" description = "Run without an interactive shell, for scripts and pipes." type = "boolean" option = ["-noshell"] sources = ["docs"] [[commands.field]] id = "noinput" label = "No input" type = "boolean" option = ["-noinput"] sources = ["docs"] [[commands.field]] id = "pa" label = "Prepend code path" type = "path" option = ["-pa"] path = { kind = "directory", role = "input", must_exist = true } sources = ["docs"] [[commands.field]] id = "pz" label = "Append code path" type = "path" option = ["-pz"] path = { kind = "directory", role = "input", must_exist = true } sources = ["docs"] [[commands.field]] id = "boot" label = "Boot file" type = "string" option = ["-boot"] sources = ["docs"] [[commands.field]] id = "config" label = "Config file" description = "Config file name without the .config extension." type = "string" option = ["-config"] sources = ["docs"] [[commands.field]] id = "hidden" label = "Hidden node" type = "boolean" option = ["-hidden"] sources = ["docs"] [[commands.field]] id = "detached" label = "Run detached" type = "boolean" option = ["-detached"] sources = ["docs"] [[commands.task]] id = "shell" label = "Start a shell with code path" fields = ["pa", "sname", "setcookie"] [[commands.task]] id = "script" label = "Run an expression and exit" fields = ["eval", "noshell", "pa"] required = ["eval"] set = { noshell = [true] } [[commands.task]] id = "remote" label = "Attach to a running node" fields = ["remsh", "sname", "setcookie"] required = ["remsh"] [[commands.group]] id = "basic" label = "Basic" fields = ["sname", "name", "setcookie", "remsh", "eval", "noshell", "pa"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["noinput", "pz", "boot", "config", "hidden", "detached"]