#!/bin/bash

# consume and store stdin
INPUT=$(</dev/stdin)

# try passing to crm until it succeeds
TRY=0
MAX_TRIES=3
while true; do
  if echo "$INPUT" | timeout -k 30s 29s crm --wait --force --file -; then
    exit 0
  fi
  if [ "$TRY" -eq "$MAX_TRIES" ]; then
    echo "'crm' command timed out $MAX_TRIES times, giving up" >&2
    exit 1
  fi
  echo "'crm' command timed out, retrying..."
  (( TRY++ )) || true
done
