#!/bin/bash
#
# Author  : Gaston Gonzalez
# Date    : 14 March 2026
# Purpose : Wrapper script for starting flamp with PnP support
#
# Preconditions
# 1. None
#
# Postconditions
# 1. flamp core settings updated
# 2. flamp started

usage() {
  echo "usage: $(basename $0) <command>"
  echo "  start           - Update config and start flamp"
  echo "  update-config   - Update config"
}

if [[ $# -ne 1 ]]; then
  usage
  exit 1
fi

start() {
  update-config && /usr/local/bin/flamp &
}

update-config () {

    FLMSG_CONF_DIR="${HOME}/.nbems"
    FLAMP_CONF_DIR="${HOME}/.nbems/FLAMP"
    FLAMP_CONF_FILE="${FLAMP_CONF_DIR}/FLAMP.prefs"

    if [[ ! -e ${FLAMP_CONF_FILE} ]]; then
      et-log "${FLAMP_CONF_FILE} does not exist. Creating it from template."
      cp -r /etc/skel/.nbems ${HOME}
    fi

    [ -z "$ET_USER_CONFIG" ] && ET_USER_CONFIG="${HOME}/.config/emcomm-tools/user.json"

    #################
    # Update callsign
    #################
    et-log "Updating callsign configuration..."
    CALLSIGN=$(jq -r -e '.callsign' ${ET_USER_CONFIG})

    if [[ "${CALLSIGN}" = "N0CALL" ]]; then
       et-log "Exiting early. No callsign set. Run: et-user."
       exit 1
    fi

    et-log "Using callsign '${CALLSIGN}'"
    sed -i "s|^mycall:.*|mycall:${CALLSIGN}|" ${FLAMP_CONF_FILE}
}

case $1 in
  start)
    start
    ;;
  update-config)
    update-config
    ;;
  *)
    echo "Invalid command."
    usage
    exit 1
  ;;
esac
