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

input_dir="${1:-}"

if [[ -z "$input_dir" || ! -d "$input_dir" ]]; then
  echo "Usage: $0 <repertoire>" >&2
  exit 1
fi

shopt -s nullglob

for conf_file in "$input_dir"/*.conf; do
  backup_file="${conf_file}.backup"

  cp -- "$conf_file" "$backup_file"

  mapfile -t lines < "$backup_file"

  line1="${lines[0]:-}"
  line2="${lines[1]:-}"
  line3="${lines[2]:-}"
  line4="${lines[3]:-}"
  line5="${lines[4]:-}"
  line6="${lines[5]:-}"

  virtual_port="$(printf "%s%s" "$line5" "$line6" | xargs)"

  ip_address="${line3%%:*}"
  port="${line3#*:}"

  manager_transport_onion_address_no_tld="${line1:0:56}"

  cat > "$conf_file" <<EOF
{
  "manager_transport_onion_address_no_tld": "$manager_transport_onion_address_no_tld",
  "registration_key": "$line1",
  "ip_address": "$ip_address",
  "port": $port,
  "portal": false,
  "enabled": false,
  "uuid": "$line2",
  "ed25519_key": "$line4",
  "tenant_type": "service",
  "network": "nodes.chimere.network",
  "virtual_port": $virtual_port
}
EOF

done