Current section

Files

Jump to
lfe bin lfe-first-try
Raw

bin/lfe-first-try

#!/bin/sh
# Copyright (c) 2008-2020 Robert Virding
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
follow_symlink () {
if [ -h "$1" ]; then
follow_symlink "$(readlink "$1")"
else
echo "$1"
fi
}
SELF=$(follow_symlink "$0")
LFE_PROGNAME=$(echo "$0" | sed 's/.*\///')
LFE_BINDIR=$(dirname "$SELF")
LFE_ROOTDIR=$(dirname "$LFE_BINDIR")
export LFE_ROOTDIR
export LFE_BINDIR
export LFE_PROGNAME
# Collect all +flags and -flags. We follow the same handling as in
# 'erl' EXCEPT that as soon as we reach a "plain" argument all the
# rest also become "plain" arguments and will be prefixed with -extra.
# These arguments are then handed over as is the LFE boot to do as it
# pleases.
flags=""
while [ -n "$1" ]; do
case "$1" in
-extra | --) # We're explicitly done
shift
break ;;
-* | +*) # Flags
flags="$flags $1"
shift
while [ -n "$1" ]; do
case "$1" in
-* | +*)
break ;;
*)
flags="$flags $1"
esac
shift
done ;;
*) # Plain argument
break ;;
esac
done
lflags="-pa $LFE_ROOTDIR/ebin" # Location of LFE files
if [ -n "$1" ]; then
lflags="-noshell $lflags" # To avoid getting a shell process
fi
echo "$flags" "$lflags" -user lfe_init -extra "$@"