#!/bin/sh
bold=$(tput bold)
normal=$(tput sgr0)
function show_use {
  echo ""
  echo 'Use: consul-process.sh "<name process>" <operation> '
  echo "  Operations: list, start, stop restart, debug"
  echo ""
  echo '  Example: ./consul-process.sh crm restart'
  echo ""
}

process_name=$1
op=$2


if [[ "$process_name" == "list" ]]; then
  curl "http://localhost:15000/processes"
  echo
  exit 0
fi

if [ "$op" != "start" -a "$op" != "stop" -a "$op" != "restart" -a "$op" != "debug" ]; then
  echo "Consul process manager: operation '$op' not valid."
  show_use
  exit 1
fi

if [ "$process_name" == "" ]; then
  echo "Consul process manager: name process not found in parameters."
  show_use
  exit 2
fi

if [ "$op" != "debug" ]; then
  response=$(curl -s -X POST "http://localhost:15000/processes/$process_name/status?operation=$op&debugging=false")
  echo "proccess ($response)${bold} $process_name${normal} ${op}ed"
else
  response=$(curl -s -X POST "http://localhost:15000/processes/$process_name/status?operation=restart&debugging=true")
  response=$(curl -s "http://localhost:15000/processes/$process_name/status" | grep -Po '"debugPort":(\d*?,|.*?[^\\]",)'| sed 's/"//g' | sed 's/,//g')
  printf "proccess ${bold}$process_name${normal} restarted on debug.$response"
fi

echo ""
