@@ -171,8 +171,10 @@ function init() {
171171 start_group " Initializing $TOOL_PRODUCT_NAME "
172172
173173 rm -rf " $TF_DATA_DIR "
174- debug_log " $TOOL_COMMAND_NAME " init -input=false -backend=false
175- (cd " $INPUT_PATH " && $TOOL_COMMAND_NAME init -input=false -backend=false)
174+ # shellcheck disable=SC2086
175+ debug_log " $TOOL_COMMAND_NAME " init -input=false -backend=false $EARLY_VARIABLE_ARGS
176+ # shellcheck disable=SC2086
177+ (cd " $INPUT_PATH " && $TOOL_COMMAND_NAME init -input=false -backend=false $EARLY_VARIABLE_ARGS )
176178
177179 end_group
178180}
@@ -187,11 +189,15 @@ function init-test() {
187189 rm -rf " $TF_DATA_DIR "
188190
189191 if [[ -n " $INPUT_TEST_DIRECTORY " ]]; then
190- debug_log " $TOOL_COMMAND_NAME " init -input=false -backend=false -test-directory " $INPUT_TEST_DIRECTORY "
191- (cd " $INPUT_PATH " && $TOOL_COMMAND_NAME init -input=false -backend=false -test-directory " $INPUT_TEST_DIRECTORY " )
192+ # shellcheck disable=SC2086
193+ debug_log " $TOOL_COMMAND_NAME " init -input=false -backend=false $EARLY_VARIABLE_ARGS -test-directory " $INPUT_TEST_DIRECTORY "
194+ # shellcheck disable=SC2086
195+ (cd " $INPUT_PATH " && $TOOL_COMMAND_NAME init -input=false -backend=false $EARLY_VARIABLE_ARGS -test-directory " $INPUT_TEST_DIRECTORY " )
192196 else
193- debug_log " $TOOL_COMMAND_NAME " init -input=false -backend=false
194- (cd " $INPUT_PATH " && $TOOL_COMMAND_NAME init -input=false -backend=false)
197+ # shellcheck disable=SC2086
198+ debug_log " $TOOL_COMMAND_NAME " init -input=false -backend=false $EARLY_VARIABLE_ARGS
199+ # shellcheck disable=SC2086
200+ (cd " $INPUT_PATH " && $TOOL_COMMAND_NAME init -input=false -backend=false $EARLY_VARIABLE_ARGS )
195201 fi
196202
197203 end_group
@@ -221,9 +227,9 @@ function set-init-args() {
221227 if [[ -v OPENTOFU && $TERRAFORM_VER_MINOR -ge 8 ]]; then
222228 debug_log " Preparing variables for early evaluation"
223229 set-variable-args
224- INIT_ARGS= " $INIT_ARGS $ VARIABLE_ARGS"
230+ EARLY_VARIABLE_ARGS= $ VARIABLE_ARGS
225231 else
226- VARIABLE_ARGS =" "
232+ EARLY_VARIABLE_ARGS =" "
227233 fi
228234
229235 export INIT_ARGS
@@ -240,12 +246,12 @@ function init-backend-workspace() {
240246
241247 rm -rf " $TF_DATA_DIR "
242248
243- # shellcheck disable=SC2016
244- debug_log TF_WORKSPACE=" $INPUT_WORKSPACE " " $TOOL_COMMAND_NAME " init -input=false ' $INIT_ARGS' # don't expand INIT_ARGS
249+ # shellcheck disable=SC2016,SC2086
250+ debug_log TF_WORKSPACE=" $INPUT_WORKSPACE " " $TOOL_COMMAND_NAME " init -input=false ' $INIT_ARGS' $EARLY_VARIABLE_ARGS # don't expand INIT_ARGS
245251
246252 set +e
247253 # shellcheck disable=SC2086
248- (cd " $INPUT_PATH " && TF_WORKSPACE=$INPUT_WORKSPACE $TOOL_COMMAND_NAME init -input=false $INIT_ARGS \
254+ (cd " $INPUT_PATH " && TF_WORKSPACE=$INPUT_WORKSPACE $TOOL_COMMAND_NAME init -input=false $INIT_ARGS $EARLY_VARIABLE_ARGS \
249255 2> " $STEP_TMP_DIR /terraform_init.stderr" )
250256
251257 local INIT_EXIT=$?
@@ -281,11 +287,11 @@ function init-backend-default-workspace() {
281287
282288 rm -rf " $TF_DATA_DIR "
283289
284- # shellcheck disable=SC2016
285- debug_log " $TOOL_COMMAND_NAME " init -input=false ' $INIT_ARGS' # don't expand INIT_ARGS
290+ # shellcheck disable=SC2016,SC2086
291+ debug_log " $TOOL_COMMAND_NAME " init -input=false ' $INIT_ARGS' $EARLY_VARIABLE_ARGS # don't expand INIT_ARGS
286292 set +e
287293 # shellcheck disable=SC2086
288- (cd " $INPUT_PATH " && $TOOL_COMMAND_NAME init -input=false $INIT_ARGS \
294+ (cd " $INPUT_PATH " && $TOOL_COMMAND_NAME init -input=false $INIT_ARGS $EARLY_VARIABLE_ARGS \
289295 2> " $STEP_TMP_DIR /terraform_init.stderr" )
290296
291297 local INIT_EXIT=$?
@@ -311,11 +317,11 @@ function select-workspace() {
311317 local WORKSPACE_EXIT
312318
313319 # shellcheck disable=SC2086
314- debug_log " $TOOL_COMMAND_NAME " workspace select $VARIABLE_ARGS " $INPUT_WORKSPACE "
320+ debug_log " $TOOL_COMMAND_NAME " workspace select $EARLY_VARIABLE_ARGS " $INPUT_WORKSPACE "
315321
316322 set +e
317323 # shellcheck disable=SC2086
318- (cd " $INPUT_PATH " && " $TOOL_COMMAND_NAME " workspace select $VARIABLE_ARGS " $INPUT_WORKSPACE " ) > " $STEP_TMP_DIR /workspace_select" 2>&1
324+ (cd " $INPUT_PATH " && " $TOOL_COMMAND_NAME " workspace select $EARLY_VARIABLE_ARGS " $INPUT_WORKSPACE " ) > " $STEP_TMP_DIR /workspace_select" 2>&1
319325 WORKSPACE_EXIT=$?
320326 set -e
321327
@@ -449,8 +455,10 @@ function set-remote-plan-args() {
449455}
450456
451457function output() {
452- debug_log " $TOOL_COMMAND_NAME " output -json
453- (cd " $INPUT_PATH " && $TOOL_COMMAND_NAME output -json | tee " $STEP_TMP_DIR /terraform_output.json" | convert_output)
458+ # shellcheck disable=SC2086
459+ debug_log " $TOOL_COMMAND_NAME " output -json $EARLY_VARIABLE_ARGS
460+ # shellcheck disable=SC2086
461+ (cd " $INPUT_PATH " && $TOOL_COMMAND_NAME output -json $EARLY_VARIABLE_ARGS | tee " $STEP_TMP_DIR /terraform_output.json" | convert_output)
454462}
455463
456464function random_string() {
@@ -546,8 +554,10 @@ function destroy() {
546554
547555function force_unlock() {
548556 echo " Unlocking state with ID: $INPUT_LOCK_ID "
549- debug_log " $TOOL_COMMAND_NAME " force-unlock -force " $INPUT_LOCK_ID "
550- (cd " $INPUT_PATH " && $TOOL_COMMAND_NAME force-unlock -force " $INPUT_LOCK_ID " )
557+ # shellcheck disable=SC2086
558+ debug_log " $TOOL_COMMAND_NAME " force-unlock -force $EARLY_VARIABLE_ARGS " $INPUT_LOCK_ID "
559+ # shellcheck disable=SC2086
560+ (cd " $INPUT_PATH " && $TOOL_COMMAND_NAME force-unlock -force $EARLY_VARIABLE_ARGS " $INPUT_LOCK_ID " )
551561}
552562
553563# Every file written to disk should use one of these directories
0 commit comments