command - elixir

manpage

執行

$ man ~/.asdf/installs/elixir/1.2.2/man/elixir.1

顯示

ELIXIR(1)                                     BSD General Commands Manual                                    ELIXIR(1)

NAME
     elixir — The Elixir script runner

SYNOPSIS
     elixir [OPTIONS] file ...

DESCRIPTION
     The program starts the runtime system typically for the execution of one or more scripts. It is similar to
     iex(1), but elixir exits when the executed script does.

OPTIONS
     Note that many of the options mentioned here were borrowed from the Erlang shell, therefore erl(1) can be used as
     an additional source of information on the options.

     --no-halt
             Does not halt the Erlang VM after execution.

     --      Separates the options passed to the compiler from the options passed to the executed code.

ENVIRONMENT
     ELIXIR_ERL_OPTIONS
             Allows passing parameters to the Erlang runtime.

FILES
     ~/.erlang.cookie
             Stores the magic cookie value which is used only when it wasn't specified via the option --cookie (see
             above).  If the file doesn't exist when a node starts, it will be created.

SEE ALSO
     elixirc(1), iex(1), mix(1)

AUTHOR
     This manual page contributed by Evgeny Golyshev.

INTERNET RESOURCES
     Main website: http://elixir-lang.org

     Documentation: http://elixir-lang.org/docs.html

     General Mailing List: https://groups.google.com/group/elixir-lang-talk

     Development Mailing List: https://groups.google.com/group/elixir-lang-core

BSD                                                 April 10, 2015                                                 BSD

help

執行

$ elixir -h

或是執行

$ elixir --help

顯示

Usage: elixir [options] [.exs file] [data]

  -v                Prints version and exits
  -e "command"      Evaluates the given command (*)
  -r "file"         Requires the given files/patterns (*)
  -S "script"       Finds and executes the given script
  -pr "file"        Requires the given files/patterns in parallel (*)
  -pa "path"        Prepends the given path to Erlang code path (*)
  -pz "path"        Appends the given path to Erlang code path (*)
  --app "app"       Start the given app and its dependencies (*)
  --erl "switches"  Switches to be passed down to Erlang (*)
  --name "name"     Makes and assigns a name to the distributed node
  --sname "name"    Makes and assigns a short name to the distributed node
  --cookie "cookie" Sets a cookie for this distributed node
  --hidden          Makes a hidden node
  --detached        Starts the Erlang VM detached from console
  --werl            Uses Erlang's Windows shell GUI (Windows only)
  --no-halt         Does not halt the Erlang VM after execution

** Options marked with (*) can be given more than once
** Options given after the .exs file or -- are passed down to the executed code
** Options can be passed to the Erlang runtime using ELIXIR_ERL_OPTIONS or --erl

source code

elixir

執行

$ cat ~/.asdf/installs/elixir/1.2.2/bin/elixir

顯示

#!/bin/sh
if [ $# -eq 0 ] || [ "$1" = "--help" ] || [ "$1" = "-h" ]; then
  echo "Usage: `basename $0` [options] [.exs file] [data]

  -v                Prints version and exits
  -e \"command\"      Evaluates the given command (*)
  -r \"file\"         Requires the given files/patterns (*)
  -S \"script\"       Finds and executes the given script
  -pr \"file\"        Requires the given files/patterns in parallel (*)
  -pa \"path\"        Prepends the given path to Erlang code path (*)
  -pz \"path\"        Appends the given path to Erlang code path (*)
  --app \"app\"       Start the given app and its dependencies (*)
  --erl \"switches\"  Switches to be passed down to Erlang (*)
  --name \"name\"     Makes and assigns a name to the distributed node
  --sname \"name\"    Makes and assigns a short name to the distributed node
  --cookie \"cookie\" Sets a cookie for this distributed node
  --hidden          Makes a hidden node
  --detached        Starts the Erlang VM detached from console
  --werl            Uses Erlang's Windows shell GUI (Windows only)
  --no-halt         Does not halt the Erlang VM after execution

** Options marked with (*) can be given more than once
** Options given after the .exs file or -- are passed down to the executed code
** Options can be passed to the Erlang runtime using ELIXIR_ERL_OPTIONS or --erl" >&2
  exit 1
fi

readlink_f () {
  cd "$(dirname "$1")" > /dev/null
  filename="$(basename "$1")"
  if [ -h "$filename" ]; then
    readlink_f "$(readlink "$filename")"
  else
    echo "`pwd -P`/$filename"
  fi
}

MODE="elixir"
ERL_EXEC="erl"
ERL=""
I=1

while [ $I -le $# ]; do
  S=1
  eval "PEEK=\${$I}"
  case "$PEEK" in
    +iex)
        MODE="iex"
        ;;
    +elixirc)
        MODE="elixirc"
        ;;
    -v|--compile|--no-halt)
        ;;
    -e|-r|-pr|-pa|-pz|--remsh|--app)
        S=2
        ;;
    --detached|--hidden)
        ERL="$ERL `echo $PEEK | cut -c 2-`"
        ;;
    --cookie)
        I=$(expr $I + 1)
        eval "VAL=\${$I}"
        ERL="$ERL -setcookie "$VAL""
        ;;
    --sname|--name)
        I=$(expr $I + 1)
        eval "VAL=\${$I}"
        ERL="$ERL `echo $PEEK | cut -c 2-` "$VAL""
        ;;
    --erl)
        I=$(expr $I + 1)
        eval "VAL=\${$I}"
        ERL="$ERL "$VAL""
        ;;
    --werl)
        USE_WERL=true
        ;;
    *)
        break
        ;;
  esac
  I=$(expr $I + $S)
done

SELF=$(readlink_f "$0")
SCRIPT_PATH=$(dirname "$SELF")

if [ "$OSTYPE" = "cygwin" ]; then SCRIPT_PATH=$(cygpath -m "$SCRIPT_PATH"); fi
if [ "$MODE" != "iex" ]; then ERL="-noshell -s elixir start_cli $ERL"; fi

# Check for terminal support
if [ "$OS" != "Windows_NT" ]; then
  if test -t 1 -a -t 2; then ERL="-elixir ansi_enabled true $ERL"; fi
fi

if [ "$OS" = "Windows_NT" ] && [ $USE_WERL ]; then
    ERL_EXEC="werl"
fi

if [ -z "$ERL_PATH" ]; then
  if [ -f "$SCRIPT_PATH/../releases/RELEASES" ] && [ -f "$SCRIPT_PATH/erl" ]; then
    ERL_PATH="$SCRIPT_PATH"/"$ERL_EXEC"
  else
    ERL_PATH="$ERL_EXEC"
  fi
fi

exec "$ERL_PATH" -pa "$SCRIPT_PATH"/../lib/*/ebin $ELIXIR_ERL_OPTIONS $ERL -extra "$@"