From 54f135e3162ca42147259901f9d846a703dd8bc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hannes=20K=C3=B6rber?= Date: Mon, 5 Oct 2020 22:06:58 +0200 Subject: [PATCH] bin: Add helper to get terraform target list from files --- bin/terraform-get-targets | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100755 bin/terraform-get-targets 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