#!/bin/sh

set -eu

set -x
tmpdir=${AUTOPKGTEST_TMP:-}
if [ -z "${tmpdir}" ]; then
  tmpdir=$(mktemp -d)
  trap "rm -rf $tmpdir" INT TERM EXIT
fi
cd $tmpdir

mkdir config
cd config
chake init[chef]
set +x

rm -f nodes.yaml
mkdir -p nodes.d
cat >> nodes.d/localhost.yaml <<EOF
local://$(hostname):
  itamae:
    - recipe.rb
EOF
created="/tmp/created_by_itamae.txt"
cat > recipe.rb <<EOF
file "${created}" do
  content "HELLO"
end
EOF

rake nodes

RETRYDELAY=10s
ATTEMPTS=10
i=0
rc=0
while true; do
  if rake; then
    break
  fi
  i=$((i+1))
  echo "Attempt ${i}/${ATTEMPTS} failed."
  if [ $i -lt $ATTEMPTS ]; then
    echo "Retrying in ${RETRYDELAY} ..."
    sleep "${RETRYDELAY}"
  else
    exit 1
  fi
done

set -x
test -f "${created}"
