#!/bin/bash
#
# Copyright DataStax, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
set -e

# need this for relative symlinks
PRG="$0"
while [ -h "$PRG" ] ; do
  ls=`ls -ld "$PRG"`
  link=`expr "$ls" : '.*-> \(.*\)$'`
  if expr "$link" : '/.*' > /dev/null; then
    PRG="$link"
  else
    PRG="`dirname "$PRG"`/$link"
  fi
done

BINDIR=$(dirname "$PRG")
ROOT_DIR=`cd -P $BINDIR/..;pwd`

pushd $ROOT_DIR > /dev/null
if [ ! -d langstream-cli/target/cli ]; then
  ./mvnw clean install -DskipTests -pl langstream-cli -am
fi
popd > /dev/null
config_specified=false
for arg in "$@"
do
    if [ "$arg" == "--conf" ]; then
        config_specified=true
        break
    fi
done
config_param=""

if ! $config_specified ; then
  LANGSTREAM_CLI_CONFIG=${LANGSTREAM_CLI_CONFIG:-"conf/cli.yaml"}
  if [ "$LANGSTREAM_CLI_CONFIG" == "conf/cli.yaml" ]; then
    echo "Using development CLI config file $(realpath $LANGSTREAM_CLI_CONFIG). To use the global config file, set LANGSTREAM_CLI_CONFIG=\$HOME/.langstream/config"
  fi
  config_param="--conf $LANGSTREAM_CLI_CONFIG"
fi


"$ROOT_DIR/langstream-cli/target/cli/bin/langstream" $config_param "$@"


