DSR-Pipeline-ReachableCEO/vendor/git.knownelement.com/ExternalVendorCode/mo/demo/function-for-advanced-looping
Charles N Wyble 19260c7e5a Add "mo" from "https://git.knownelement.com/ExternalVendorCode/mo.git@master"
git-vendor-name: mo
git-vendor-dir: vendor/git.knownelement.com/ExternalVendorCode/mo
git-vendor-repository: https://git.knownelement.com/ExternalVendorCode/mo.git
git-vendor-ref: master
2024-12-15 10:27:29 -06:00

43 lines
1.1 KiB
Bash
Executable File

#!/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