plugins Ġ{ ĊĠĠĠ Ġid (" idea ") Ċ } Ċ Ċ val Ġtf Env Ġ: ĠString Ġby Ġproject Ċ val Ġtf Bin Ġ= Ġ" terraform / terraform _ 0 . 1 3 . 5 _ linux _ amd 6 4 " Ċ val Ġtf Src Ġ= Ġ" src / main / terraform /" Ċ Ċ fun Ġsys Env ( name Ġ: ĠString , ĠdefaultValue Ġ: ĠString Ġ= Ġ"") Ġ: ĠPair < String , ĠString > Ġ{ ĊĠĠĠ Ġval Ġvalue Ġ= ĠSystem . getenv ( name ) Ġ?: ĠdefaultValue ĊĠĠĠ Ġif ( value Ġ== Ġ"") ĊĠĠĠĠĠĠĠ Ġthrow Ġjava . lang . IllegalArgumentException (" Must Ġsupply Ġan Ġenvironment Ġvalue Ġfor Ġ$ name ") ĊĠĠĠ Ġreturn Ġ( name Ġto Ġvalue ) Ċ } Ċ val Ġtf Exec Env Ġ= Ġhash Map Of ( ĊĠĠĠ Ġsys Env (" AWS _ ACCESS _ KEY _ ID "), ĊĠĠĠ Ġsys Env (" AWS _ SECRET _ ACCESS _ KEY "), ĊĠĠĠ Ġsys Env (" AWS _ DEFAULT _ REGION "," us - east - 2 ") Ċ ) Ċ Ċ fun Ġtf Exec With Vars ( name Ġ: ĠString , Ġcmd Ġ: ĠString , Ġvar arg Ġargs Ġ: ĠPair < String , ĠString ?> ): ĠExec Ġ{ ĊĠĠĠ Ġval Ġtf Args Ġ= Ġmutable ListOf ( ĊĠĠĠĠĠĠĠ Ġ"- var - file = config / default . tf vars ") ĊĠĠĠ Ġtf Args . addAll ( args . map Ġ{ Ġif ( it . second Ġ== Ġnull ) Ġ"- ${ it . first }" Ġelse Ġ"- ${ it . first } =${ it . second }" Ġ}) ĊĊĠĠĠ Ġreturn Ġtask < Exec >( name ) Ġ{ ĊĠĠĠĠĠĠĠ Ġenvironment ( tf Exec Env ) ĊĠĠĠĠĠĠĠ Ġcommand Line ( tf Bin , Ġcmd , Ġ* tf Args . to Typed Array (), Ġtf Src ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ tasks Ġ{ ĊĠĠĠ Ġtf Exec With Vars (" tf Init ", Ġ" init ", Ġ" backend - config " Ġto Ġ" config / backend . tf vars ") ĊĠĠĠ Ġtf Exec With Vars (" tf Plan ", Ġ" plan "). depends On (" tf Init ") ĊĠĠĠ Ġtf Exec With Vars (" tf Apply ", Ġ" apply ", Ġ(" auto - approve " Ġto Ġnull )). depends On (" tf Plan ") Ċ }