#!/bin/sh
#
#  Author: Vlad Seryakov vseryakov@gmail.com
#  Sep 2013
#

case "$BKJS_CMD" in

  help|nats-help)
    echo ""
    echo "  nats-get - install local NATS server in $BKJS_HOME/bin"
    echo "  nats-getcli - install NATS command line tool in $BKJS_HOME/bin"
    echo "  nats-run - run local NATS server installed in $BKJS_HOME/bin"
    echo "  nats-stop - stop local NATS server"
    ;;

  nats-get)
    platform=$(to_lower $PLATFORM)
    curl -L -o /tmp/nats.tgz https://github.com/nats-io/nats-server/releases/download/v2.9.15/nats-server-v2.9.15-$platform-$OS_ARCH.tar.gz
    tar --strip-components=1 -C /tmp -xzf /tmp/nats.tgz
    mv /tmp/nats-server $BKJS_HOME/bin
    rm -rf /tmp/nats.tgz
    if [ ! -f $BKJS_HOME/etc/nats.conf ]; then
        echo 'listen: localhost:4222' >> $BKJS_HOME/etc/nats.conf
        echo 'http: localhost:8222' >> $BKJS_HOME/etc/nats.conf
        echo 'syslog: true' >> $BKJS_HOME/etc/nats.conf
        echo 'logtime: false' >> $BKJS_HOME/etc/nats.conf
        echo "pid_file: $BKJS_HOME/var/nats.pid" >> $BKJS_HOME/etc/nats.conf
        echo 'jetstream: {' >> $BKJS_HOME/etc/nats.conf
        echo "  store_dir: \"$BKJS_HOME/var\"" >> $BKJS_HOME/etc/nats.conf
        echo '  max_file: 1G' >> $BKJS_HOME/etc/nats.conf
        echo '}' >> $BKJS_HOME/etc/nats.conf
        echo 'cluster {' >> $BKJS_HOME/etc/nats.conf
        echo '  name: nats' >> $BKJS_HOME/etc/nats.conf
        echo '  #listen: 0.0.0.0:6222' >> $BKJS_HOME/etc/nats.conf
        echo '  routes: [' >> $BKJS_HOME/etc/nats.conf
        echo '    nats-route://nats:6222' >> $BKJS_HOME/etc/nats.conf
        echo '  ]' >> $BKJS_HOME/etc/nats.conf
        echo '}' >> $BKJS_HOME/etc/nats.conf
    fi
    exit
    ;;

  nats-getcli)
    platform=$(to_lower $PLATFORM)
    curl -L -o /tmp/nats.zip https://github.com/nats-io/natscli/releases/download/v0.0.35/nats-0.0.35-$platform-$OS_ARCH.zip
    unzip -j /tmp/nats.zip -d /tmp '*/nats'
    mv /tmp/nats $BKJS_HOME/bin
    rm -rf /tmp/nats.zip
    exit
    ;;

  nats-run)
    name=$(get_arg -name $(uname -n|cut -f1 -d.))
    mkdir -p $BKJS_HOME/var $BKJS_HOME/log
    exec nohup nats-server -n $name -c $BKJS_HOME/etc/nats.conf >>$BKJS_HOME/log/message.log 2>&1 &
    exit
    ;;

  nats-stop)
    pkill -f nats
    exit
    ;;

  nats-init-monit)
    $0 monit-init -name nats -start "$BKJS_BIN nats-run" -stop "$BKJS_BIN nats-stop"
    exit
    ;;

esac

