summaryrefslogtreecommitdiff
path: root/rel/overlay/erts-vsn
diff options
context:
space:
mode:
authorBrad Anderson <brad@cloudant.com>2010-08-19 19:30:32 -0400
committerBrad Anderson <brad@cloudant.com>2010-08-19 19:30:32 -0400
commit75a44a40776917073c87a2e2e44c9fef516364b8 (patch)
treeeb2ca214f36a4bf819c5298dfb22c375fd9e3d67 /rel/overlay/erts-vsn
parent53891dc8034f969612dec1ef300e63aaead0262d (diff)
make dist back in working order, and dbcore starts successfully
Diffstat (limited to 'rel/overlay/erts-vsn')
-rw-r--r--rel/overlay/erts-vsn/bin/erl34
1 files changed, 34 insertions, 0 deletions
diff --git a/rel/overlay/erts-vsn/bin/erl b/rel/overlay/erts-vsn/bin/erl
new file mode 100644
index 00000000..1ddbd431
--- /dev/null
+++ b/rel/overlay/erts-vsn/bin/erl
@@ -0,0 +1,34 @@
+#!/bin/bash
+
+## This script replaces the default "erl" in erts-VSN/bin. This is necessary
+## as escript depends on erl and in turn, erl depends on having access to a
+## bootscript (start.boot). Note that this script is ONLY invoked as a side-effect
+## of running escript -- the embedded node bypasses erl and uses erlexec directly
+## (as it should).
+##
+## Note that this script makes the assumption that there is a start_clean.boot
+## file available in $ROOTDIR/release/VSN.
+
+# Determine the abspath of where this script is executing from.
+ERTS_BIN_DIR=$(cd ${0%/*} && pwd)
+
+# Now determine the root directory -- this script runs from erts-VSN/bin,
+# so we simply need to strip off two dirs from the end of the ERTS_BIN_DIR
+# path.
+ROOTDIR=${ERTS_BIN_DIR%/*/*}
+
+# Parse out release and erts info
+START_ERL=`cat $ROOTDIR/releases/start_erl.data`
+ERTS_VSN=${START_ERL% *}
+APP_VSN=${START_ERL#* }
+
+BINDIR=$ROOTDIR/erts-$ERTS_VSN/bin
+EMU=beam
+PROGNAME=`echo $0 | sed 's/.*\///'`
+CMD="$BINDIR/erlexec"
+export EMU
+export ROOTDIR
+export BINDIR
+export PROGNAME
+
+exec $CMD -boot $ROOTDIR/releases/$APP_VSN/start_clean ${1+"$@"}