#!/bin/bash

set -x

export LC_ALL=C

agents=()
supported_agents=()
unsupported_agents=()

readonly RESOURCE_AGENTS_DIR="debian/resource-agents"
readonly RESOURCE_AGENTS_COMMON_DIR="debian/resource-agents-common"
readonly RESOURCE_AGENTS_SUPPORTED_DIR="debian/resource-agents-supported"
readonly UNSUPPORTED_HEARTBEAT_DIR="$RESOURCE_AGENTS_DIR/usr/lib/ocf/resource.d/heartbeat"
readonly SUPPORTED_HEARTBEAT_DIR="$RESOURCE_AGENTS_SUPPORTED_DIR/usr/lib/ocf/resource.d/heartbeat"

export OCF_ROOT="$RESOURCE_AGENTS_COMMON_DIR/usr/lib/ocf"

for agent in $SUPPORTED_HEARTBEAT_DIR/* $UNSUPPORTED_HEARTBEAT_DIR/*; do
  name=$(basename "$agent")
  short_desc=$("$agent" meta-data | xml_grep --root resource-agent/shortdesc --text_only /dev/stdin)

  # Remove unwanted whitespaces
  short_desc=$(echo -e $short_desc | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')

  # Limit the size of the string to 80 characters
  desc=$(echo -n "$name: $short_desc" | sed -e 's/^\(.\{75\}\).\{4\}.*/\1.../')

  agents+=("$desc")
done

for agent in "${agents[@]}"; do
  if grep -qFx $(cut -d: -f1 <<< "$agent") debian/supported-agents; then
    supported_agents+=("$agent\${Newline}")
  else
    unsupported_agents+=("$agent\${Newline}")
  fi
done

echo "agents=${unsupported_agents[*]}" >> debian/resource-agents.substvars
echo "supportedAgents=${supported_agents[*]}" >> debian/resource-agents-supported.substvars

# Clean up pycache
rm -rf debian/resource-agents-common/usr/lib/ocf/lib/heartbeat/__pycache__
