(CommandList
  children: [
    (C {(set)} {(-o)} {(errexit)})
    (C {(set)} {(-o)} {(nounset)})
    (C {(set)} {(-o)} {(pipefail)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:KUBE_ROOT)
          op: Equal
          rhs: 
            {
              (CommandSubPart
                command_list: 
                  (CommandList
                    children: [(C {(dirname)} {(DQ (${ VSub_Name BASH_SOURCE))})]
                  )
                left_token: <Left_CommandSub '$('>
                spids: [64 72]
              ) (/..)
            }
          spids: [63]
        )
      ]
      spids: [63]
    )
    (C {(source)} {(DQ (${ VSub_Name KUBE_ROOT) (/hack/lib/init.sh))})
    (C {(source)} {(DQ (${ VSub_Name KUBE_ROOT) (/hack/lib/util.sh))})
    (C {(kube) (Lit_Other ':') (Lit_Other ':') (log) (Lit_Other ':') (Lit_Other ':') (status)} 
      {(DQ ('Ensuring prereqs'))}
    )
    (C 
      {(kube) (Lit_Other ':') (Lit_Other ':') (util) (Lit_Other ':') (Lit_Other ':') 
        (ensure_single_dir_gopath)
      }
    )
    (C 
      {(kube) (Lit_Other ':') (Lit_Other ':') (util) (Lit_Other ':') (Lit_Other ':') 
        (ensure_no_staging_repos_in_gopath)
      }
    )
    (C 
      {(kube) (Lit_Other ':') (Lit_Other ':') (util) (Lit_Other ':') (Lit_Other ':') 
        (ensure_godep_version)
      }
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:BACKUP)
          op: Equal
          rhs: {(_tmp/godep-save.) ($ VSub_Name '$RANDOM')}
          spids: [132]
        )
      ]
      spids: [132]
    )
    (C {(mkdir)} {(-p)} {(DQ (${ VSub_Name BACKUP))})
    (FuncDef
      name: 'kube::godep_save::cleanup'
      body: 
        (BraceGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_d
                              child: {(DQ (${ VSub_Name BACKUP) (/vendor))}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C 
                      {(kube) (Lit_Other ':') (Lit_Other ':') (log) (Lit_Other ':') (Lit_Other ':') 
                        (error)
                      } {(DQ (${ VSub_Name BACKUP) ('/vendor exists, restoring it'))}
                    )
                    (C {(rm)} {(-rf)} {(vendor)})
                    (C {(mv)} {(DQ (${ VSub_Name BACKUP) (/vendor))} {(vendor)})
                  ]
                  spids: [16777215 178]
                )
              ]
              spids: [16777215 216]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (BoolUnary
                              op_id: BoolUnary_d
                              child: {(DQ (${ VSub_Name BACKUP) (/Godeps))}
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C 
                      {(kube) (Lit_Other ':') (Lit_Other ':') (log) (Lit_Other ':') (Lit_Other ':') 
                        (error)
                      } {(DQ (${ VSub_Name BACKUP) ('/Godeps exists, restoring it'))}
                    )
                    (C {(rm)} {(-rf)} {(Godeps)})
                    (C {(mv)} {(DQ (${ VSub_Name BACKUP) (/Godeps))} {(Godeps)})
                  ]
                  spids: [16777215 235]
                )
              ]
              spids: [16777215 273]
            )
          ]
          spids: [159]
        )
      spids: [147 158]
    )
    (C {(kube) (Lit_Other ':') (Lit_Other ':') (util) (Lit_Other ':') (Lit_Other ':') (trap_add)} 
      {(kube) (Lit_Other ':') (Lit_Other ':') (godep_save) (Lit_Other ':') (Lit_Other ':') (cleanup)} {(EXIT)}
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (DBracket expr:(BoolUnary op_id:BoolUnary_d child:{(vendor)}))
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(mv)} {(vendor)} {(DQ (${ VSub_Name BACKUP) (/vendor))})]
          spids: [16777215 310]
        )
      ]
      spids: [16777215 324]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: (DBracket expr:(BoolUnary op_id:BoolUnary_d child:{(Godeps)}))
              terminator: <Op_Semi ';'>
            )
          ]
          action: [(C {(mv)} {(Godeps)} {(DQ (${ VSub_Name BACKUP) (/Godeps))})]
          spids: [16777215 337]
        )
      ]
      spids: [16777215 351]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:REQUIRED_BINS)
          op: Equal
          rhs: 
            {
              (ArrayLiteralPart
                words: [
                  {(DQ (github.com/onsi/ginkgo/ginkgo))}
                  {(DQ (github.com/jteeuwen/go-bindata/go-bindata))}
                  {(DQ (github.com/tools/godep))}
                  {(DQ (./...))}
                ]
              )
            }
          spids: [360]
        )
      ]
      spids: [360]
    )
    (C {(kube) (Lit_Other ':') (Lit_Other ':') (log) (Lit_Other ':') (Lit_Other ':') (status)} 
      {(DQ ('Running godep save - this might take a while'))}
    )
    (SimpleCommand
      words: [
        {(godep)}
        {(save)}
        {
          (DQ 
            (BracedVarSub
              token: <VSub_Name REQUIRED_BINS>
              bracket_op: (WholeArray op_id:Lit_At)
              spids: [424 429]
            )
          )
        }
      ]
      more_env: [
        (env_pair
          name: GOPATH
          val: 
            {
              (DQ (${ VSub_Name GOPATH) (':') 
                (CommandSubPart
                  command_list: (CommandList children:[(C {(pwd)})])
                  left_token: <Left_CommandSub '$('>
                  spids: [413 415]
                ) (/staging)
              )
            }
          spids: [407]
        )
      ]
    )
    (ForEach
      iter_name: repo
      iter_words: [
        {
          (CommandSubPart
            command_list: (CommandList children:[(C {(ls)} {(staging/src/k8s.io)})])
            left_token: <Left_CommandSub '$('>
            spids: [445 449]
          )
        }
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(KW_Bang '!')} {(-e)} 
                          {(DQ (vendor/k8s.io/) (${ VSub_Name repo))} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(ln)} {(-s)} {(DQ (../../staging/src/k8s.io/) (${ VSub_Name repo))} 
                      {(DQ (vendor/k8s.io/) (${ VSub_Name repo))}
                    )
                  ]
                  spids: [16777215 473]
                )
              ]
              spids: [16777215 495]
            )
          ]
          spids: [452 497]
        )
      spids: [444 450]
    )
    (C {(rm)} {(-rf)} {(vendor/github.com/docker/docker/project/)})
    (C {(kube) (Lit_Other ':') (Lit_Other ':') (log) (Lit_Other ':') (Lit_Other ':') (status)} 
      {(DQ ('Updating BUILD files'))}
    )
    (SimpleCommand
      words: [{(hack/update-bazel.sh)}]
      redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(/dev/null)} spids:[527])]
    )
    (C {(kube) (Lit_Other ':') (Lit_Other ':') (log) (Lit_Other ':') (Lit_Other ':') (status)} 
      {(DQ ('Updating LICENSES file'))}
    )
    (SimpleCommand
      words: [{(hack/update-godep-licenses.sh)}]
      redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(/dev/null)} spids:[545])]
    )
    (C {(rm)} {(-rf)} {(DQ (${ VSub_Name BACKUP))})
  ]
)