Tags: #shell #iac
#!/usr/bin/env bash
# Get plan
terraform plan -out=tfplan > /dev/null 2>&1
# Convert plan to json
CHANGES=$(terraform show -json tfplan | jq '.resource_changes[].change')
# Diff before and after with newlines expanded
diff -u \
<(echo "$CHANGES" | jq '.before' | sed 's/\\n/\//g') \
<(echo "$CHANGES" | jq '.after' | sed 's/\\n/\//g')
# If you prefer to use another diff tool like `git diff`
echo "$CHANGES" | jq '.before' | sed 's/\\n/\//g' > before
echo "$CHANGES" | jq '.after' | sed 's/\\n/\//g' > after
git diff --no-index before after
rm before after