summaryrefslogtreecommitdiff
path: root/priv/templates/simplenode.erl.script
diff options
context:
space:
mode:
authorJared Morrow <jared@basho.com>2013-01-16 10:47:23 -0700
committerJared Morrow <jared@basho.com>2013-01-17 14:41:21 -0700
commitc4989f093913556355ee9f94318ca092c79de2d0 (patch)
treee1cd7e005e553d0fa570b2e43b0142f80237e9f2 /priv/templates/simplenode.erl.script
parent78fa8fc3d5215e076284b37394e5ca149e945997 (diff)
downloadrebar-c4989f093913556355ee9f94318ca092c79de2d0.tar.gz
Change simplenode template files to work on more platforms
When developing Riak, we have found bugs and other issues due to the number of platforms we support. Here is an overview of the changes: - Fix command-line syntax for commands to work on *BSD / Sun - Add chkconfig and getpid to nodetool - Replace platform specific 'kill' commands with a nodetool getpid method - Fix RUNNER_USER settings to work on *BSD
Diffstat (limited to 'priv/templates/simplenode.erl.script')
-rw-r--r--priv/templates/simplenode.erl.script24
1 files changed, 17 insertions, 7 deletions
diff --git a/priv/templates/simplenode.erl.script b/priv/templates/simplenode.erl.script
index 6f65e3f..7919d69 100644
--- a/priv/templates/simplenode.erl.script
+++ b/priv/templates/simplenode.erl.script
@@ -1,13 +1,23 @@
#!/bin/sh
-## 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).
+# /bin/sh on Solaris is not a POSIX compatible shell, but /usr/bin/ksh is.
+if [ `uname -s` = 'SunOS' -a "${POSIX_SHELL}" != "true" ]; then
+ POSIX_SHELL="true"
+ export POSIX_SHELL
+ exec /usr/bin/ksh $0 "$@"
+fi
+
+# clear it so if we invoke other scripts, they run as ksh as well
+unset POSIX_SHELL
+
+## 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.
+## 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)