#!/usr/bin/env bash


echo "exportest called ($ITERATION)"

if [ -z "$ITERATION" ]
then

  echo "Setting up environment"
  set -o allexport
  function foo {
    echo "function foo successfully called"
  }
  ITERATION=1
  set +o allexport

  echo Calling myself
  exec "$0"
elif [ "$ITERATION" = 1 ]
then
  foo
  ITERATION=2
  echo "Calling myself directly"
  exec "$0"
elif [ "$ITERATION" = 2 ]
then
  foo
  ITERATION=3
  echo Calling myself via dash
  exec dash -c "$0"
elif [ "$ITERATION" = 3 ]
then
  foo
  echo Done
fi
