#!/usr/bin/env bash
set -euo pipefail

ROOT_DIR="$(cd "$(dirname "$0")/.." && pwd)"
CLIENT_CFG="$ROOT_DIR/client/config.yaml"
SERVER_CFG="$ROOT_DIR/server/config.yaml"

# Generate 32 random bytes and encode base64
K1=$(openssl rand -base64 32)

echo "Generated K1 (base64): $K1"

# Update client config
if [[ -f "$CLIENT_CFG" ]]; then
  awk -v k1="$K1" 'BEGIN{updated=0} /^k1_base64:/ {print "k1_base64: \"" k1 "\""; updated=1; next} {print} END{if(updated==0) print "k1_base64: \"" k1 "\""}' "$CLIENT_CFG" > "$CLIENT_CFG.tmp" && mv "$CLIENT_CFG.tmp" "$CLIENT_CFG"
else
  printf "k1_base64: \"%s\"\nserver_url: \"http://127.0.0.1:8080/v1/decrypt\"\n" "$K1" > "$CLIENT_CFG"
fi

# Update server config
if [[ -f "$SERVER_CFG" ]]; then
  awk -v k1="$K1" 'BEGIN{updated=0} /^k1_base64:/ {print "k1_base64: \"" k1 "\""; updated=1; next} {print} END{if(updated==0) print "k1_base64: \"" k1 "\""}' "$SERVER_CFG" > "$SERVER_CFG.tmp" && mv "$SERVER_CFG.tmp" "$SERVER_CFG"
else
  printf "k1_base64: \"%s\"\nlisten_addr: ":8080"\n" "$K1" > "$SERVER_CFG"
fi

echo "Updated: $CLIENT_CFG"
echo "Updated: $SERVER_CFG"
