#!/bin/bash
# Builds and uploads a debian package for NSQ.
# See http://nsq.io/ for details.

# To update the version of NSQ download the official tarball and put it into
# the skia-binaries bucket and update the DISTRIBUTION_TAR variable.
# Currently we only install the nsqd daemon and not using the lookup daemon.

set -e -x

APPNAME="nsqd"
APPNAME_NSQ_LOOKUPD="nsqlookupd"
APPNAME_NSQ_ADMIN="nsqadmin"

SYSTEMD="${APPNAME}.service ${APPNAME_NSQ_LOOKUPD}.service ${APPNAME_NSQ_ADMIN}.service"
DESCRIPTION="NSQ - a realtime distributed messaging platform."
INIT_SCRIPT=${APPNAME}

DISTRIBUTION_TAR="nsq-0.3.6.linux-amd64.go1.5.1.tar.gz"
DISTRIBUTION_URL="gs://skia-binaries/nsq/$DISTRIBUTION_TAR"
TEMP_DIR="./temp"

# Extract the tar into a temporary directory.
mkdir -p $TEMP_DIR
gsutil cp $DISTRIBUTION_URL .
tar xzvf  $DISTRIBUTION_TAR --strip-component=2 -C $TEMP_DIR

# Copy files into the right locations in ${ROOT}.
copy_release_files()
{
  INSTALL="sudo install -D --verbose --backup=none --group=root --owner=root"
  ${INSTALL} --mode=644 -T ./sys/${APPNAME}.service             ${ROOT}/etc/systemd/system/${APPNAME}.service
  ${INSTALL} --mode=644 -T ./sys/${APPNAME_NSQ_LOOKUPD}.service ${ROOT}/etc/systemd/system/${APPNAME_NSQ_LOOKUPD}.service
  ${INSTALL} --mode=644 -T ./sys/${APPNAME_NSQ_ADMIN}.service   ${ROOT}/etc/systemd/system/${APPNAME_NSQ_ADMIN}.service
  ${INSTALL} --mode=755 -T ${TEMP_DIR}/${APPNAME}               ${ROOT}/usr/local/bin/${APPNAME}
  ${INSTALL} --mode=755 -T ${TEMP_DIR}/${APPNAME_NSQ_LOOKUPD}   ${ROOT}/usr/local/bin/${APPNAME_NSQ_LOOKUPD}
  ${INSTALL} --mode=755 -T ${TEMP_DIR}/${APPNAME_NSQ_ADMIN}     ${ROOT}/usr/local/bin/${APPNAME_NSQ_ADMIN}
  ${INSTALL} --mode=755 -T ./sys/${APPNAME}_init                ${ROOT}/etc/init.d/${APPNAME}
}

source ../bash/release.sh

# Remove the temporary files and directory.
rm -f $DISTRIBUTION_TAR
rm -rf $TEMP_DIR
