(command.CommandList
  children: [
    (C {<set>} {<-o>} {<errexit>})
    (C {<set>} {<-o>} {<nounset>})
    (C {<set>} {<-o>} {<pipefail>})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:KUBE_ROOT)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: <Id.Left_DollarParen '$('>
                child: (C {<dirname>} {(DQ (${ Id.VSub_Name BASH_SOURCE))})
              ) <'/..'>
            }
          spids: [63]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:boilerDir)
          op: assign_op.Equal
          rhs: {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/hack/boilerplate'>)}
          spids: [76]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:boiler)
          op: assign_op.Equal
          rhs: {(DQ (${ Id.VSub_Name boilerDir) <'/boilerplate.py'>)}
          spids: [84]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:files_need_boilerplate)
          op: assign_op.Equal
          rhs: 
            {
              (sh_array_literal
                left: <Id.Op_LParen _>
                words: [
                  {
                    (command_sub
                      left_token: <Id.Left_DollarParen '$('>
                      child: (C {(${ Id.VSub_Name boiler)} {(DQ ($ Id.VSub_At '$@'))})
                    )
                  }
                ]
              )
            }
          spids: [93]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: 
                    (command.DBracket
                      expr: 
                        (bool_expr.Binary
                          op_id: Id.BoolBinary_gt
                          left: 
                            {
                              (braced_var_sub
                                token: <Id.VSub_Name files_need_boilerplate>
                                prefix_op: (Id.VSub_Pound)
                                bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                              )
                            }
                          right: {<0>}
                        )
                    )
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [
            (command.ForEach
              iter_name: file
              iter_words: [
                {
                  (DQ 
                    (braced_var_sub
                      token: <Id.VSub_Name files_need_boilerplate>
                      bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
                    )
                  )
                }
              ]
              do_arg_iter: F
              body: 
                (command.DoGroup
                  children: [
                    (C {<echo>} {(DQ <'Boilerplate header is wrong for: '> (${ Id.VSub_Name file))})
                  ]
                )
            )
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>})
          ]
          spids: [110 129]
        )
      ]
    )
  ]
)