(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OVERLAY_BUNDLES) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(grep)} {(-i)} {(Lit_Other "^") (OVERLAY_BUNDLES)} {(.config)}) (C {(cut)} {(-f2)} {(-d) (SQ <"=">)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [9 29] ) ) } spids: [7] ) ] spids: [7] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$OVERLAY_BUNDLES"))} {(Lit_Other "=")} {(DQ )} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [(C {(echo)} {(DQ ("There are no overlay bundles to build."))})] spids: [-1 50] ) ] else_action: [ (TimeBlock pipeline:(C {(sh)} {(overlay_00_clean.sh)})) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OVERLAY_BUNDLES_LIST) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {($ VSub_Name "$OVERLAY_BUNDLES")}) (C {(tr)} {(SQ <",">)} {(SQ <" ">)}) ] negated: False ) ] ) left_token: <Left_CommandSub "$("> spids: [72 88] ) ) } spids: [70] ) ] spids: [70] ) (ForEach iter_name: BUNDLE iter_words: [{($ VSub_Name "$OVERLAY_BUNDLES_LIST")}] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OVERLAY_SCRIPT) op: Equal rhs: {(overlay_) ($ VSub_Name "$BUNDLE") (.sh)} spids: [105] ) ] spids: [105] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(KW_Bang "!")} {(-f)} {($ VSub_Name "$OVERLAY_SCRIPT")} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) ] action: [ (C {(echo)} { (DQ ("Error - cannot find overlay script file '") ($ VSub_Name "$OVERLAY_SCRIPT") ("'.") ) } ) ] spids: [-1 127] ) ] else_action: [ (C {(echo)} {(DQ ("Building overlay bundle '") ($ VSub_Name "$BUNDLE") ("'..."))}) (TimeBlock pipeline: (C {(sh)} {($ VSub_Name "$OVERLAY_SCRIPT")}) ) ] spids: [139 158] ) ] spids: [102 161] ) spids: [98 -1] ) ] spids: [59 163] ) ] )