(List (Com {[LIT_CHARS set]} {[LIT_CHARS -o]} {[LIT_CHARS errexit]} ) (Com {[LIT_CHARS set]} {[LIT_CHARS -o]} {[LIT_CHARS nounset]} ) (Com {[LIT_CHARS set]} {[LIT_CHARS -o]} {[LIT_CHARS pipefail]} ) (= scope= flags=0 words=[] bindings=[('opt_flag', {[VarSub 1 test_op=VS_TEST_COLON_HYPHEN {}]})]) (AndOr OP_AND_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub opt_flag]]} {[LIT_DBRACKET_LIKE "]"]} ) (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "No command supplied"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub opt_flag]]} {[LIT_DBRACKET_LIKE "=="]} {[DQ [LIT_CHARS -t]]} {[LIT_DBRACKET_LIKE "]"]} ) (List (Com {[LIT_CHARS shift]} ) (= scope= flags=0 words=[] bindings=[('prefix', {[VarSub 1 test_op=VS_TEST_COLON_HYPHEN {}]})]) (AndOr OP_AND_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub prefix]]} {[LIT_DBRACKET_LIKE "]"]} ) (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "No prefix supplied"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (Com {[LIT_CHARS shift]} ) ) (ElseTrue) (= scope= flags=0 words=[] bindings=[('prefix', {[SQ ]})]) ) (= scope= flags=0 words=[] bindings=[('cmd', {[DQ [VarSub 1]]})]) (AndOr OP_AND_IF (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[DQ [VarSub cmd]]} {[LIT_DBRACKET_LIKE "]"]} ) (AndOr OP_AND_IF (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "No command supplied"]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (= scope= flags=0 words=[] bindings=[('workspace', {[ComSub (Com {[LIT_CHARS mktemp]} {[LIT_CHARS -d]} {[DQ [VarSub TMPDIR test_op=VS_TEST_COLON_HYPHEN {[LIT_SLASH /] [LIT_CHARS tmp]}][LIT_CHARS /][VarSub prefix][LIT_CHARS .XXXXXX]]})]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Workspace created: "][VarSub workspace]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (FunctionDef cleanup [] (List (= scope= flags=0 words=[{[LIT_CHARS -r]}] bindings=[('workspace', {[DQ [VarSub 1]]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[DQ [VarSub workspace]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Workspace deleted: "][VarSub workspace]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) ) ) (Com {[LIT_CHARS trap]} {[DQ [LIT_CHARS "cleanup '"][VarSub workspace][LIT_CHARS "'"]]} {[LIT_CHARS EXIT]} ) (Com {[LIT_CHARS pushd]} {[DQ [VarSub workspace]]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) (Com {[LIT_CHARS bash]} {[LIT_CHARS -ceu]} {[DQ [VarSub cmd]]} ) (Com {[LIT_CHARS popd]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) (Com {[LIT_CHARS trap]} {[LIT_CHARS -]} {[LIT_CHARS EXIT]} ) (Com {[LIT_CHARS cleanup]} {[DQ [VarSub workspace]]} ) )