#!/usr/bin/env bash

cd "$(dirname "$0")" # Go to the script's directory

EVERY_REPO() {
    # The block contents come in through standard input. Capture it here.
    content=$(cat)

    echo "# Starting EVERY_REPO"

    # Get list of repos
    for REPO in "${REPOS[@]}"; do
        echo "## Looping one time for repo: $REPO"

        # String replace REPO_ with the name
        # This changes everything in the content block of the template.
        # It rewrites {{__REPO__.name}} into {{resque.name}}, for instance.
        # You can prefix your environment variables and do other things as well.
        
        echo "$content" | sed "s/__REPO__/${REPO}/"

        echo "## Looped one time for repo: $REPO"
    done

    echo "# Finished EVERY_REPO"
}

REPOS=(resque hub rip)

declare -A resque hub rip
resque=([name]=Resque [url]=http://example.com/resque)
hub=([name]=Hub [url]=http://example.com/hub)
rip=([name]=Rip [url]=http://example.com/rip)
. ../mo
cat <<EOF | mo
{{#EVERY_REPO}}
The repo is __REPO__
    Name:  {{__REPO__.name}}
    URL:  {{__REPO__.url}}
{{/EVERY_REPO}}

EOF