#!/usr/bin/env bash # Stolen from https://devops.stackexchange.com/a/8984 and adapted to my use case if (( $# == 0 )) ; then echo "Missing file input arguments" exit 1 fi for FILE in "$@" do RESOURCE=$(sed -n 's/^resource "\([^"]*\)" "\([^"]*\)".*/-target=\1.\2 /gp' "$FILE") MODULE=$(sed -n 's/^module "\([^"]*\)".*/-target=module.\1 /gp' "$FILE") if [[ -z "$RESOURCE" ]] && [[ -z "$MODULE" ]]; then echo "Cannot detect terraform resource and module in $FILE" >&2 exit 1 fi if [[ -n "$RESOURCE" ]]; then echo -e $"$RESOURCE" fi if [[ -n "$MODULE" ]]; then echo -e $"$MODULE" fi done