#!/bin/bash function unsupported_platform() { echo "Your platform (`uname -a`) is not supported." && exit 1 } # Detect CPU arch. ARCHITECTURE=`uname -m` case "$ARCHITECTURE" in i?86) ARCHITECTURE="x86" ;; x86_64) ARCHITECTURE="x64" ;; esac # Detect current OS, see http://stackoverflow.com/q/3466166/682252. # Darwin if [ "`uname`" == "Darwin" ]; then NODE_BIN="node-darwin-$ARCHITECTURE" # Linux elif [ "`expr substr $(uname -s) 1 5`" == "Linux" ]; then NODE_BIN="node-linux-$ARCHITECTURE" # Win32 elif [ "`expr substr $(uname -s) 1 10`" == "MINGW32_NT" ]; then NODE_BIN="node-win32-$ARCHITECTURE.exe" # SunOS elif [ "`uname`" == "SunOS" ]; then NODE_BIN="node-sunos-$ARCHITECTURE" else unsupported_platform fi BIN_RESIN=$0 while [ -L "$BIN_RESIN" ]; do BIN_RESIN=`readlink "$BIN_RESIN"` done BIN_DIRECTORY=`dirname $BIN_RESIN` NODE_PATH=$BIN_DIRECTORY/node/$NODE_BIN if [ ! -x $NODE_PATH ]; then echo "$NODE_PATH does not exist" # As a last resource, try to use an already available node if command -v node >/dev/null 2>&1; then NODE_PATH="node" else unsupported_platform fi fi $NODE_PATH "$BIN_DIRECTORY/../build/app.js" "$@"