(command.CommandList children: [ (C {(Id.KW_Set set)} {(-o)} {(errexit)}) (C {(Id.KW_Set set)} {(-o)} {(nounset)}) (C {(Id.KW_Set set)} {(-o)} {(pipefail)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BASH_DIR) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:71) command_list: (command.CommandList children: [(C {(dirname)} {(DQ (${ Id.VSub_Name BASH_SOURCE))})] ) ) } spids: [70] ) ] ) (command.ShFunction name: find_go_files body: (command.BraceGroup children: [ (C {(find)} {(.)} {(-maxdepth)} {(1)} {(-not)} {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\(' span_id:99))} {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\(' span_id:103))} {(-wholename)} {(SQ (Token id:Id.Lit_Chars val:./doc.go span_id:110))} {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\)' span_id:115))} {(-prune)} {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\)' span_id:121))} {(-name)} {(SQ (Token id:Id.Lit_Chars val:'*.go' span_id:126))} ) ] ) ) (command.ShAssignment pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:ret) op:assign_op.Equal rhs:{(0)} spids:[132])] ) (command.Simple words: [{(pushd)} {(DQ (${ Id.VSub_Name BASH_DIR))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:144) fd: -1 arg_word: {(/dev/null)} ) ] ) (command.ForEach iter_name: path iter_words: [ { (command_sub left_token: (Token id:Id.Left_Backtick val:'`' span_id:155) command_list: (command.CommandList children:[(C {(find_go_files)})]) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:file) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:166) command_list: (command.CommandList children: [(C {(basename)} {($ Id.VSub_DollarName '$path')})] ) ) } spids: [165] ) ] ) (command.Simple words: [ {(echo)} { (DQ ('Found pkg/util/') (${ Id.VSub_Name file) (', but should be moved into util sub-pkgs.') ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'1>&' span_id:183) fd: 1 arg_word: {(2)} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ret) op: assign_op.Equal rhs: {(1)} spids: [187] ) ] ) ] ) ) (command.Simple words: [{(popd)}] redirects: [ (redir.Redir op: (Token id:Id.Redir_Great val:'>' span_id:195) fd: -1 arg_word: {(/dev/null)} ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Binary op_id:Id.Op_Great left:{(${ Id.VSub_Name ret)} right:{(0)}) ) terminator: (Token id:Id.Op_Semi val:';' span_id:213) ) ] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:218) arg_word: {(${ Id.VSub_Name ret)} ) ] spids: [200 215] ) ] ) (C {(echo)} {(DQ ('Util Package Verified.'))}) ] )