#!/bin/bash

verb="$1"
arg="$2"

# Check if KAFKA_HOME is set
if [ -z "$KAFKA_HOME" ]; then
  echo "Error: KAFKA_HOME is not set"
  exit 1
fi

case "$verb" in
"start")
  if [ "$arg" == "zookeeper" ]; then
    "$KAFKA_HOME/bin/zookeeper-server-start.sh" "$KAFKA_HOME/config/zookeeper.properties" &
  elif [ "$arg" == "kafka" ]; then
    "$KAFKA_HOME/bin/kafka-server-start.sh" "$KAFKA_HOME/config/server.properties" &
  else
    echo "Error: Invalid argument for 'start'. Use 'zookeeper' or 'kafka'."
  fi
  ;;
"create-topic")
  "$KAFKA_HOME/bin/kafka-topics.sh" --create --topic "$arg" --bootstrap-server localhost:9092 &
  ;;
"produce")
  "$KAFKA_HOME/bin/kafka-console-producer.sh" --topic "$arg" --bootstrap-server localhost:9092 &
  ;;
"consume")
  "$KAFKA_HOME/bin/kafka-console-consumer.sh" --topic "$arg" --from-beginning --bootstrap-server localhost:9092 &
  ;;
"submit")
  if [ -z "$arg" ]; then
    echo "Error: Please provide a Spark script."
  else
    spark-submit --packages org.apache.spark:spark-sql-kafka-0-10_2.12:3.0.1 "$arg" &
  fi
  ;;
*)
  echo "Error: Unknown verb. Use 'start', 'create-topic', 'produce', 'consume', or 'submit'."
  ;;
esac
