#! /bin/sh # Required arguments. logname=$1; [ -n "$1" ] && shift role=$1; [ -n "$1" ] && shift nodename=$1; [ -n "$1" ] && shift # Optional arguments. erlbase=$ERLANG_BASE_DIR # Use some reasonable default values. [ -z "$erlbase" ] && erlbase=/usr/local/catlfish # FIXME: Get getconfig.sh from the # $erlbase/lib/catlfish-$VERSION.ez (zip archive) instead of requiring # source code to be unpacked in the container. GETCONFIG=/usr/local/catlfish/src/tools/getconfig.sh mkdir ${nodename} $GETCONFIG /usr/local/etc/catlfish/${nodename}.cfg ${logname}.cfg force-compile ln -s ${nodename}/${nodename}.config case $role in frontend|storage|signing) boot=catlfish ;; merge) [ -z "${MERGE_DB_DIR}" ] && MERGE_DB_DIR=merge-db $erlbase/merge.sh ${logname} ${nodename} \ > merge_log/stdout \ 2> merge_log/stderr & boot=merge ;; status) boot=statusserver ;; *) echo "catlfish: unknown role: $role" exit 1 ;; esac $erlbase/bin/run_erl \ /var/run/catlfish/ \ /var/run/catlfish/erlang_log/ \ "exec $erlbase/bin/erl -boot $boot -config $nodename"