#!/bin/bash
# Copyright 2015 The Vanadium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.

# Starts an instance of master device syncbased and required services.

set -eu

source "${JIRI_ROOT}/release/projects/sensorlog/go/src/v.io/x/sensorlog/scripts/runner_lib.sh"

# Must be run with V23_CREDENTIALS set or through the agent.
# Optional environment variables: SL_PREFIX, SL_DEVID, SL_IPADDR_PORT, SL_TMPDIR
function main() {
  local -r PREFIX="${SL_PREFIX:-sl/client}"
  local -r DEVID="${SL_DEVID:-main}"
  local -r NAME="${PREFIX}/${DEVID}"
  local -r IPADDR_PORT="${SL_IPADDR_PORT:-$(dig $(hostname) +short):8202}"
  local -r TMPDIR="${SL_TMPDIR:-sltmp}/${NAME}"

  mkdir -p "${TMPDIR}"
  trap "kill_child_processes; exit 1" ERR EXIT
  run_mounttabled "${NAME}" "${IPADDR_PORT}"
  run_syncbased "/${IPADDR_PORT}" "${NAME}" "${TMPDIR}"
  # Wait for signal.
  while true; do
    sleep 10
  done
}

main "$@"
