#!/bin/bash

CURRENT_USER=$(whoami)
XIV_PATH="/home/${CURRENT_USER}/.xlcore"
XIV_CONFIG_PATH="${XIV_PATH}/dalamudConfig.json"

NULL_KEY=false

function display_usage {
    echo "Usage: $0 [--key=<string>] [--kind=<string>] [--path=</path/to/dalamudConfig.json>] [--nullkey]"
}

if [ $# -eq 0 ]; then
    display_usage
    exit 1
fi

while [[ $# -gt 0 ]]; do
    key="$1"
    case $key in
        -h|--help)
            display_usage
            exit 0
            ;;
        --key=*)
            BETA_KEY="${key#*=}"
            ;;
        --kind=*)
            BETA_KIND="${key#*=}"
            ;;
        --path=*)
            XIV_CONFIG_PATH="${key#*=}"
            ;;
        --nullkey)
            NULL_KEY=true
            ;;
        *)
            echo "Error: Unrecognized option '$key'"
            display_usage
            exit 1
            ;;
    esac
    shift
done

echo "Validating values..."
if [ -z "{$BETA_KIND}" ] || [ -z "{$BETA_KEY}" ]; then
    if [ "$NULL_KEY" = false ]; then
        echo "Error: --key and --kind is required"
        display_usage
        exit 1
    fi
fi

echo "Updating Dalamud JSON config..."
if [ ! -f "$XIV_CONFIG_PATH" ]; then
    echo "Error: Dalamud config not found at ${XIV_CONFIG_PATH}"
    exit 1
fi

if [ "$NULL_KEY" = true ]; then
    sed -i 's/"DalamudBetaKind":.*/"DalamudBetaKind": null,/' "$XIV_CONFIG_PATH"
    sed -i 's/"DalamudBetaKey":.*/"DalamudBetaKey": null,/' "$XIV_CONFIG_PATH"
else
    sed -i 's/"DalamudBetaKind":.*/"DalamudBetaKind": "'"${BETA_KIND}"'",/' "$XIV_CONFIG_PATH"
    sed -i 's/"DalamudBetaKey":.*/"DalamudBetaKey": "'"${BETA_KEY}"'",/' "$XIV_CONFIG_PATH"
fi

echo "Done!"
