#!/bin/bash
# Check if ifconfig is present and use it to get the default IP
if command -v ifconfig &> /dev/null; then
    default_ip=$(ifconfig | grep 'inet ' | grep -v 127.0.0.1 | awk '{print $2}')
# Check if ip is present and use it if ifconfig is not available
elif command -v ip &> /dev/null; then
    default_ip=$(ip addr show | grep -oP 'inet \K[\d.]+' |  sed -n '2p')
# If both tools are not available, error out
else
    echo "Error: Neither ifconfig nor ip command found in the machine. Exiting.."
    exit 1
fi


read -p "Enter your node IP to use for cert generation (default is $default_ip): " custom_ip
# Use localhost as the default value
node_ip=${custom_ip:-$default_ip}

echo "Using node IP: $node_ip to generate SSL certs!"

mkdir -p certs

# Generate CA key
openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/reg.key -x509 -days 365 -out certs/reg.crt -subj "/CN=$node_ip"

echo "Generated certs/reg.key and certs/reg.crt!"

echo -e "Please run:\n" 
echo "docker run -d -p 5000:5000 --restart=always --name "shuffle-local-registry" \
  -v $(pwd)/certs:/certs \
  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/reg.crt \
  -e REGISTRY_HTTP_TLS_KEY=/certs/reg.key \
  registry:2"

echo -e  "\nnow to start the reigstry :)!"

