(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:KUBE_ROOT)
          op: assign_op.Equal
          rhs: 
            {
              (DQ 
                (command_sub
                  left_token: <Id.Left_DollarParen '$('>
                  command_list: 
                    (command.CommandList
                      children: [(C {(dirname)} {(DQ (${ Id.VSub_Name BASH_SOURCE))})]
                    )
                ) (/..)
              )
            }
          spids: [85]
        )
      ]
    )
    (C {(source)} {(DQ (${ Id.VSub_Name KUBE_ROOT) (/build/common.sh))})
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.DBracket
                  expr: 
                    (bool_expr.Unary
                      op_id: Id.BoolUnary_z
                      child: 
                        {
                          (DQ 
                            (braced_var_sub
                              token: <Id.VSub_Name REGISTRY>
                              suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                            )
                          )
                        }
                    )
                )
              terminator: <Id.Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(DQ ('REGISTRY must be set'))})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{(-1)})
          ]
          spids: [109 125]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.DBracket
                  expr: 
                    (bool_expr.Unary
                      op_id: Id.BoolUnary_z
                      child: 
                        {
                          (DQ 
                            (braced_var_sub
                              token: <Id.VSub_Name VERSION>
                              suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty))
                            )
                          )
                        }
                    )
                )
              terminator: <Id.Op_Semi ';'>
            )
          ]
          action: [
            (C {(echo)} {(DQ ('VERSION must be set'))})
            (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{(-1)})
          ]
          spids: [141 157]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:IMAGE)
          op: assign_op.Equal
          rhs: {(DQ (${ Id.VSub_Name REGISTRY) ('/hyperkube-amd64:') (${ Id.VSub_Name VERSION))}
          spids: [174]
        )
      ]
    )
    (C 
      {(kube) (Id.Lit_Other ':') (Id.Lit_Other ':') (build) (Id.Lit_Other ':') (Id.Lit_Other ':') 
        (verify_prereqs)
      }
    )
    (C 
      {(kube) (Id.Lit_Other ':') (Id.Lit_Other ':') (build) (Id.Lit_Other ':') (Id.Lit_Other ':') 
        (build_image)
      }
    )
    (C 
      {(kube) (Id.Lit_Other ':') (Id.Lit_Other ':') (build) (Id.Lit_Other ':') (Id.Lit_Other ':') 
        (run_build_command)
      } {(make)} {(Id.Lit_VarLike 'WHAT=') (cmd/hyperkube)}
    )
    (C 
      {(kube) (Id.Lit_Other ':') (Id.Lit_Other ':') (build) (Id.Lit_Other ':') (Id.Lit_Other ':') 
        (copy_output)
      }
    )
    (C {(make)} {(-C)} {(DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/images/hyperkube))} {(build)})
    (C {(docker)} {(push)} {(DQ (${ Id.VSub_Name IMAGE))})
  ]
)