Skip to content

Instantly share code, notes, and snippets.

@rcbop
Last active July 31, 2017 21:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rcbop/6fe95188051e52279fff35e54f46f716 to your computer and use it in GitHub Desktop.
Save rcbop/6fe95188051e52279fff35e54f46f716 to your computer and use it in GitHub Desktop.
#!/bin/bash
which jq 2>/dev/null || { echo >&2 "jq json processor is required but it's not installed. Aborting."; exit 1; }
if [[ ($FRONTEND_PROJECTS == "") || ($BUILD_NUMBER == "") || ($PACKAGE_API == "") || ($DELIVERY_PACKAGE_ENVIRONMENT == "" ) ]]; then
echo "ERROR missing arguments" && exit 1;
fi
rm -f manifest.json
rm -f manifest.json.tmp
rm -f webprojects.json.tmp
if [ "$PACKAGE_API" = true ]; then
s="BUILD_NUMBER|PACKAGE_API|API_BRANCH|DELIVERY_PACKAGE_ENVIRONMENT
$BUILD_NUMBER|$PACKAGE_API|$API_BRANCH|$DELIVERY_PACKAGE_ENVIRONMENT"
else
s="BUILD_NUMBER|DELIVERY_PACKAGE_ENVIRONMENT
$BUILD_NUMBER|$DELIVERY_PACKAGE_ENVIRONMENT"
fi
PROJECTS=$(echo $FRONTEND_PROJECTS | tr '\n' ' ')
for entry in ${PROJECTS[@]}
do
IFS=':' read web branch env <<< "$entry"
# echo "DEBUG $entry $web $branch $env"
jq --arg web "$web" --arg branch "$branch" --arg env "$env" '. | .project=$web | .branch=$branch | .env=$env' <<< "{}" >> webprojects.json.tmp
done
# echo DEBUG && cat webprojects.json.tmp | jq
jq -Rn '
( input | split("|") ) as $keys |
( inputs | split("|") ) as $vals |
[[$keys, $vals] | transpose[] | {key:.[0],value:.[1]}] | from_entries
' <<<"$s" >> manifest.json.tmp
jq --slurpfile projects webprojects.json.tmp '.WEB_PROJECTS += $projects' < manifest.json.tmp >> manifest.json
echo DEBUG && cat manifest.json | jq
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment