(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]
        )
      ]
    )
    (C {<source>} {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/hack/lib/init.sh'>)})
    (C {<source>} {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/hack/lib/util.sh'>)})
    (C 
      {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <log> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <status>} {(DQ <'Ensuring prereqs'>)}
    )
    (C 
      {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <util> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> 
        <ensure_single_dir_gopath>
      }
    )
    (C 
      {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <util> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> 
        <ensure_no_staging_repos_in_gopath>
      }
    )
    (C 
      {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <util> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> 
        <ensure_godep_version>
      }
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:BACKUP)
          op: assign_op.Equal
          rhs: {<'_tmp/godep-save.'> ($ Id.VSub_DollarName '$RANDOM')}
          spids: [132]
        )
      ]
    )
    (C {<mkdir>} {<-p>} {(DQ (${ Id.VSub_Name BACKUP))})
    (command.ShFunction
      name: 'kube::godep_save::cleanup'
      body: 
        (BraceGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_d
                                  child: {(DQ (${ Id.VSub_Name BACKUP) <'/vendor'>)}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C 
                      {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <log> <Id.Lit_Colon ':'> 
                        <Id.Lit_Colon ':'> <error>
                      } {(DQ (${ Id.VSub_Name BACKUP) <'/vendor exists, restoring it'>)}
                    )
                    (C {<rm>} {<-rf>} {<vendor>})
                    (C {<mv>} {(DQ (${ Id.VSub_Name BACKUP) <'/vendor'>)} {<vendor>})
                  ]
                  spids: [162 178]
                )
              ]
            )
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (command.DBracket
                              expr: 
                                (bool_expr.Unary
                                  op_id: Id.BoolUnary_d
                                  child: {(DQ (${ Id.VSub_Name BACKUP) <'/Godeps'>)}
                                )
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C 
                      {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <log> <Id.Lit_Colon ':'> 
                        <Id.Lit_Colon ':'> <error>
                      } {(DQ (${ Id.VSub_Name BACKUP) <'/Godeps exists, restoring it'>)}
                    )
                    (C {<rm>} {<-rf>} {<Godeps>})
                    (C {<mv>} {(DQ (${ Id.VSub_Name BACKUP) <'/Godeps'>)} {<Godeps>})
                  ]
                  spids: [219 235]
                )
              ]
            )
          ]
        )
    )
    (C 
      {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <util> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> 
        <trap_add>
      } 
      {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <godep_save> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> 
        <cleanup>
      } {<EXIT>}
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (command.DBracket expr:(bool_expr.Unary op_id:Id.BoolUnary_d child:{<vendor>}))
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<mv>} {<vendor>} {(DQ (${ Id.VSub_Name BACKUP) <'/vendor'>)})]
          spids: [299 310]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: 
            (condition.Shell
              commands: [
                (command.Sentence
                  child: (command.DBracket expr:(bool_expr.Unary op_id:Id.BoolUnary_d child:{<Godeps>}))
                  terminator: <Id.Op_Semi _>
                )
              ]
            )
          action: [(C {<mv>} {<Godeps>} {(DQ (${ Id.VSub_Name BACKUP) <'/Godeps'>)})]
          spids: [326 337]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:REQUIRED_BINS)
          op: assign_op.Equal
          rhs: 
            {
              (sh_array_literal
                left: <Id.Op_LParen _>
                words: [
                  {(DQ <'github.com/onsi/ginkgo/ginkgo'>)}
                  {(DQ <'github.com/jteeuwen/go-bindata/go-bindata'>)}
                  {(DQ <'github.com/tools/godep'>)}
                  {(DQ <'./...'>)}
                ]
              )
            }
          spids: [360]
        )
      ]
    )
    (C 
      {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <log> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <status>} {(DQ <'Running godep save - this might take a while'>)}
    )
    (command.Simple
      words: [
        {<godep>}
        {<save>}
        {
          (DQ 
            (braced_var_sub
              token: <Id.VSub_Name REQUIRED_BINS>
              bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At)
            )
          )
        }
      ]
      more_env: [
        (env_pair
          name: GOPATH
          val: 
            {
              (DQ (${ Id.VSub_Name GOPATH) <':'> 
                (command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<pwd>})) <'/staging'>
              )
            }
          spids: [407]
        )
      ]
      do_fork: T
    )
    (command.ForEach
      iter_name: repo
      iter_words: [
        {(command_sub left_token:<Id.Left_DollarParen '$('> child:(C {<ls>} {<'staging/src/k8s.io'>}))}
      ]
      do_arg_iter: F
      body: 
        (command.DoGroup
          children: [
            (command.If
              arms: [
                (if_arm
                  cond: 
                    (condition.Shell
                      commands: [
                        (command.Sentence
                          child: 
                            (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-e>} 
                              {(DQ <'vendor/k8s.io/'> (${ Id.VSub_Name repo))} {<Id.Lit_RBracket ']'>}
                            )
                          terminator: <Id.Op_Semi _>
                        )
                      ]
                    )
                  action: [
                    (C {<ln>} {<-s>} {(DQ <'../../staging/src/k8s.io/'> (${ Id.VSub_Name repo))} 
                      {(DQ <'vendor/k8s.io/'> (${ Id.VSub_Name repo))}
                    )
                  ]
                  spids: [455 473]
                )
              ]
            )
          ]
        )
    )
    (C {<rm>} {<-rf>} {<'vendor/github.com/docker/docker/project/'>})
    (C 
      {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <log> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <status>} {(DQ <'Updating BUILD files'>)}
    )
    (command.Simple
      words: [{<'hack/update-bazel.sh'>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})]
      do_fork: T
    )
    (C 
      {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <log> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <status>} {(DQ <'Updating LICENSES file'>)}
    )
    (command.Simple
      words: [{<'hack/update-godep-licenses.sh'>}]
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})]
      do_fork: T
    )
    (C {<rm>} {<-rf>} {(DQ (${ Id.VSub_Name BACKUP))})
  ]
)