diff --git a/bin/terraform-get-targets b/bin/terraform-get-targets new file mode 100755 index 0000000..f4f7711 --- /dev/null +++ b/bin/terraform-get-targets @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +# Stolen from https://devops.stackexchange.com/a/8984 and adapted to my use case + +if [[ -z "$@" ]]; 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" + exit 1 + fi + + if [[ ! -z "$RESOURCE" ]]; then + echo -e $"$RESOURCE" + fi + if [[ ! -z "$MODULE" ]]; then + echo -e $"$MODULE" + fi +done