(command.CommandList children: [ (C {<set>} {<-x>}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'ROOT='> name:ROOT) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.CommandList children: [ (command.Sentence child: (C {<cd>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<dirname>} {($ Id.VSub_DollarName BASH_SOURCE)}) right: <Id.Eof_RParen _> ) <'/../../..'> } ) terminator: <Id.Op_Semi _> ) (C {<pwd>}) ] ) right: <Id.Eof_RParen _> ) } spids: [62] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IWYU_LOG='> name:IWYU_LOG) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<mktemp>} {<-t>} {<arrow-cpp-iwyu.XXXXXX>}) right: <Id.Eof_RParen _> ) } spids: [78] ) ] redirects: [] ) (C {<trap>} {(DQ <'rm -f '> ($ Id.VSub_DollarName IWYU_LOG))} {<EXIT>}) (C {<echo>} {(DQ <'Logging IWYU to '> ($ Id.VSub_DollarName IWYU_LOG))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IWYU_MAPPINGS_PATH='> name:IWYU_MAPPINGS_PATH) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName ROOT) <'/cpp/build-support/iwyu/mappings'>)} spids: [105] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IWYU_ARGS='> name:IWYU_ARGS) op: assign_op.Equal rhs: { (DQ <' --mapping_file='> ($ Id.VSub_DollarName IWYU_MAPPINGS_PATH) <'/boost-all.imp '> <' --mapping_file='> ($ Id.VSub_DollarName IWYU_MAPPINGS_PATH) <'/boost-all-private.imp '> <' --mapping_file='> ($ Id.VSub_DollarName IWYU_MAPPINGS_PATH) <'/boost-extra.imp '> <' --mapping_file='> ($ Id.VSub_DollarName IWYU_MAPPINGS_PATH) <'/gflags.imp '> <' --mapping_file='> ($ Id.VSub_DollarName IWYU_MAPPINGS_PATH) <'/glog.imp '> <' --mapping_file='> ($ Id.VSub_DollarName IWYU_MAPPINGS_PATH) <'/gtest.imp '> <' --mapping_file='> ($ Id.VSub_DollarName IWYU_MAPPINGS_PATH) <'/arrow-misc.imp'> ) } spids: [111] ) ] redirects: [] ) (C {<set>} {<-e>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number 1))} {<Id.Lit_Equals '='> <Id.Lit_Equals '='>} {(DQ <all>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Pipeline children: [ (C {<python>} {($ Id.VSub_DollarName ROOT) <'/cpp/build-support/iwyu/iwyu_tool.py'>} {<-p>} {<.>} {<-->} {($ Id.VSub_DollarName IWYU_ARGS)} ) (C {<awk>} {<-f>} {($ Id.VSub_DollarName ROOT) <'/cpp/build-support/iwyu/iwyu-filter.awk'>} ) (C {<tee>} {($ Id.VSub_DollarName IWYU_LOG)}) ] negated: F stderr_indices: [] ) ] spids: [149 167] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'file_list_tmp='> name:file_list_tmp) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<git>} {<diff>} {<--name-only>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {($ Id.VSub_DollarName ROOT) <'/cpp/build-support/get-upstream-commit.sh'> } ) right: <Id.Eof_RParen _> ) } ) (C {<grep>} {<-E>} {(SQ <'\\.(c|cc|h)$'>)}) ] negated: F stderr_indices: [] ) right: <Id.Eof_RParen _> ) } spids: [209] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName file_list_tmp))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {(DQ <'IWYU verification: no updates on related files, declaring success'>)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] spids: [236 249] ) ] else_action: [] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'IWYU_FILE_LIST='> name:IWYU_FILE_LIST) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [276] ) ] redirects: [] ) (command.ForEach iter_names: [p] iterable: (for_iter.Words words:[{($ Id.VSub_DollarName file_list_tmp)}]) body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'IWYU_FILE_LIST='> name: IWYU_FILE_LIST ) op: assign_op.Equal rhs: { (DQ ($ Id.VSub_DollarName IWYU_FILE_LIST) <' '> ($ Id.VSub_DollarName ROOT) <'/'> ($ Id.VSub_DollarName p) ) } spids: [291] ) ] redirects: [] ) ] ) redirects: [] ) (command.Pipeline children: [ (C {<python>} {($ Id.VSub_DollarName ROOT) <'/cpp/build-support/iwyu/iwyu_tool.py'>} {<-p>} {<.>} {($ Id.VSub_DollarName IWYU_FILE_LIST)} {<-->} {($ Id.VSub_DollarName IWYU_ARGS)} ) (C {<awk>} {<-f>} {($ Id.VSub_DollarName ROOT) <'/cpp/build-support/iwyu/iwyu-filter.awk'>}) (C {<tee>} {($ Id.VSub_DollarName IWYU_LOG)}) ] negated: F stderr_indices: [] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-s>} {(DQ ($ Id.VSub_DollarName IWYU_LOG))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [(command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})] spids: [342 355] ) ] else_action: [] redirects: [] ) (C {<echo>} {(DQ <'IWYU verification: the changes look good'>)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] )