Finds all given for_each generated resource references in Terraform plan output not in Terraform state and imports them
Will do nothing if the resource_type you specify doesn't match anything in the local code eg. 'github_repo' won't match, it must be the terraform type'github_repository'
This is a general case importer that will only cover basic use cases such as GitHub repos where the names usually match the terraform IDs
(except for things like '.github' repo which is not a valid terraform identifier. Those must still be imported manually)
If \$TERRAFORM_PRINT_ONLY is set to any value, prints the commands to stdout to collect so you can check, collect into a text file or pipe to a shell or further manipulate, ignore errors etc.
Requires Terraform to be installed and configured
"
# used by usage() in lib/utils.sh
# shellcheck disable=SC2034
usage_args="<resource_type> [<dir>]"
help_usage "$@"
min_args 1"$@"
resource_type="$1"
dir="${2:-.}"
cd"$dir"
timestamp "getting terraform plan"
plan="$(terraform plan -no-color)"
echo >&2
timestamp "getting '$resource_type' from terraform plan output"
grep -E "^[[:space:]]*# $resource_type\\..+\\[\"[^\"]+\"\\] will be created"<<<"$plan"|
# <resource_type>.resource2[resource1] - resource 1 is usually the differentiator, eg. github repo, whereas resource2 is usually what is applied to each one, such as the same branch