diff options
Diffstat (limited to 'catlfish-dev/start.sh')
-rwxr-xr-x | catlfish-dev/start.sh | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/catlfish-dev/start.sh b/catlfish-dev/start.sh new file mode 100755 index 0000000..d673b9d --- /dev/null +++ b/catlfish-dev/start.sh @@ -0,0 +1,45 @@ +#! /bin/sh + +logname=$1; [ -n "$1" ] && shift +role=$1; [ -n "$1" ] && shift +nodename=$1; [ -n "$1" ] && shift +database=$CATLFISH_DB_DIR +erlbase=$ERLANG_BASE_DIR + +# Use some reasonable default values. +[ -z "$database" ] && database=/var/db/catlfish-merge +[ -z "$erlbase" ] && erlbase=/usr/local/catlfish + +# We should probably grab this from the +# $erlbase/lib/catlfish-$VERSION.ez (zip archive) instead of requiring +# source code to be unpacked in the container. +COMPILECONFIG=/usr/local/src/catlfish/tools/compileconfig.py + +case $role in + frontend|storage|signing) + $COMPILECONFIG --config ${logname}.cfg \ + --localconfig ${nodename}.cfg; + $erlbase/bin/run_erl \ + /var/run/catlfish/ \ + /var/run/catlfish/erlang_log/ \ + "exec $erlbase/bin/erl -config $nodename" + ;; + merge) + # Catlfish version is included in filename of archive and + # filename in that archive. Example: lib/catlfish-0.6.0.ez + # contains catlfish-0.6.0. + ver=$(ls $erlbase/lib/catlfish-*.ez | sed 's/.*catlfish-\(.*\)\.ez/\1/1') + ERL_LIBS=$erlbase/lib/catlfish-${ver}.ez/catlfish-${ver} + ERL_LIBS=$ERL_LIBS:$erlbase/lib/lager-2.1.1.ez/lager-2.1.1 + export ERL_LIBS + + export MERGE_INTERVAL_FIRST=60 + export MERGE_INTERVAL_FREQ=3600 + export MERGE_DB_DIR=$database + + $erlbase/merge.sh $logname $nodename > merge_log/stdout 2> merge_log/stderr + ;; + *) + echo "catlfish: unknown role: $role" + ;; +esac |