(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: [71 79]
              ) (/..)
            }
          spids: [70]
        )
      ]
      spids: [70]
    )
    (C {(source)} {(DQ (${ VSub_Name KUBE_ROOT) (/hack/lib/init.sh))})
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:DRY_RUN) op:Equal rhs:{(false)} spids:[95])]
      spids: [95]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:FAIL_ON_DIFF) op:Equal rhs:{(false)} spids:[98])]
      spids: [98]
    )
    (Assignment
      keyword: Assign_None
      pairs: [(assign_pair lhs:(LhsName name:GODEP_OPTS) op:Equal rhs:{(DQ )} spids:[101])]
      spids: [101]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:KUBE_VERBOSE)
          op: Equal
          rhs: 
            {
              (DQ 
                (BracedVarSub
                  token: <VSub_Name KUBE_VERBOSE>
                  suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(5)})
                  spids: [111 115]
                )
              )
            }
          spids: [109]
        )
      ]
      spids: [109]
    )
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DParen
                  child: 
                    (ArithBinary
                      op_id: Arith_GreatEqual
                      left: (ArithWord w:{(${ VSub_Name KUBE_VERBOSE)})
                      right: (ArithWord w:{(Lit_Digits 6)})
                    )
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:GODEP_OPTS)
                  op: PlusEqual
                  rhs: {(ArrayLiteralPart words:[{(DQ (-v))}])}
                  spids: [137]
                )
              ]
              spids: [137]
            )
          ]
          spids: [16777215 134]
        )
      ]
      spids: [16777215 144]
    )
    (While
      cond: [(Sentence child:(C {(getopts)} {(DQ (':df'))} {(opt)}) terminator:<Op_Semi ';'>)]
      body: 
        (DoGroup
          children: [
            (Case
              to_match: {($ VSub_Name '$opt')}
              arms: [
                (case_arm
                  pat_list: [{(d)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:DRY_RUN)
                          op: Equal
                          rhs: {(true)}
                          spids: [175]
                        )
                      ]
                      spids: [175]
                    )
                  ]
                  spids: [168 169 179 16777215]
                )
                (case_arm
                  pat_list: [{(f)}]
                  action: [
                    (Assignment
                      keyword: Assign_None
                      pairs: [
                        (assign_pair
                          lhs: (LhsName name:FAIL_ON_DIFF)
                          op: Equal
                          rhs: {(true)}
                          spids: [189]
                        )
                      ]
                      spids: [189]
                    )
                  ]
                  spids: [182 183 193 16777215]
                )
                (case_arm
                  pat_list: [{(EscapedLiteralPart token:<Lit_EscapedChar '\\?'>)}]
                  action: [
                    (SimpleCommand
                      words: [{(echo)} {(DQ ('Invalid option: -') ($ VSub_Name '$OPTARG'))}]
                      redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[207])]
                    )
                    (C {(exit)} {(1)})
                  ]
                  spids: [196 197 216 16777215]
                )
              ]
              spids: [161 165 219]
            )
          ]
          spids: [158 221]
        )
    )
    (C 
      {(kube) (Lit_Other ':') (Lit_Other ':') (util) (Lit_Other ':') (Lit_Other ':') (ensure_dockerized)}
    )
    (C {(kube) (Lit_Other ':') (Lit_Other ':') (golang) (Lit_Other ':') (Lit_Other ':') (setup_env)})
    (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)
      }
    )
    (C 
      {(kube) (Lit_Other ':') (Lit_Other ':') (util) (Lit_Other ':') (Lit_Other ':') 
        (create-fake-git-tree)
      } {(DQ (${ VSub_Name KUBE_ROOT))}
    )
    (C {(DQ (${ VSub_Name KUBE_ROOT) (/hack/godep-restore.sh))})
    (C 
      {(kube) (Lit_Other ':') (Lit_Other ':') (util) (Lit_Other ':') (Lit_Other ':') (ensure-temp-dir)}
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:TMP_GOPATH)
          op: Equal
          rhs: {(DQ (${ VSub_Name KUBE_TEMP) (/go))}
          spids: [307]
        )
      ]
      spids: [307]
    )
    (FuncDef
      name: updateGodepManifest
      body: 
        (BraceGroup
          children: [
            (SimpleCommand
              words: [{(pushd)} {(DQ (${ VSub_Name TMP_GOPATH) (/src/k8s.io/) (${ VSub_Name repo))}]
              redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(/dev/null)} spids:[337])]
            )
            (C {(kube) (Lit_Other ':') (Lit_Other ':') (log) (Lit_Other ':') (Lit_Other ':') (status)} 
              {(DQ ('Updating godeps for k8s.io/') (${ VSub_Name repo))}
            )
            (C {(rm)} {(-rf)} {(Godeps)})
            (Pipeline
              children: [
                (SimpleCommand
                  words: [{(godep)} {(save)} {(${ VSub_Name GODEP_OPTS)} {(./...)}]
                  redirects: [(Redir op_id:Redir_GreatAnd fd:2 arg_word:{(1)} spids:[393])]
                  more_env: [
                    (env_pair
                      name: GOPATH
                      val: 
                        {
                          (DQ (${ VSub_Name TMP_GOPATH) (':') (${ VSub_Name GOPATH) (':') 
                            (${ VSub_Name GOPATH) (/src/k8s.io/kubernetes/staging)
                          )
                        }
                      spids: [367]
                    )
                  ]
                )
                (C {(sed)} {(SQ <'s/^/  /'>)})
              ]
              negated: False
            )
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:repo) op:Equal spids:[412])]
              spids: [410]
            )
            (ForEach
              iter_name: repo
              iter_words: [
                {
                  (CommandSubPart
                    command_list: 
                      (CommandList
                        children: [(C {(ls)} {(-1)} {(${ VSub_Name KUBE_ROOT) (/staging/src/k8s.io)})]
                      )
                    left_token: <Left_CommandSub '$('>
                    spids: [421 430]
                  )
                }
              ]
              do_arg_iter: False
              body: 
                (DoGroup
                  children: [
                    (Pipeline
                      children: [
                        (C {(jq)} 
                          {
                            (SQ 
                              <
'.Deps |= map(.ImportPath |= ltrimstr("k8s.io/kubernetes/staging/src/"))'
                              >
                            )
                          } {(Godeps/Godeps.json)}
                        )
                        (C {(jq)} 
                          {(SQ <'.Deps |= map((select(.ImportPath | (startswith("k8s.io/'>) 
                            (${ VSub_Name repo) (SQ <'/") or . == "k8s.io/'>) (${ VSub_Name repo) 
                            (SQ <'")) | .Rev |= "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx") // .)'>)
                          }
                        )
                        (C {(jq)} {(SQ <'del(.Deps[].Comment)'>)})
                        (SimpleCommand
                          words: [{(unexpand)} {(--first-only)} {(--tabs) (Lit_Other '=') (2)}]
                          redirects: [
                            (Redir
                              op_id: Redir_Great
                              fd: 16777215
                              arg_word: {(Godeps/Godeps.json.out)}
                              spids: [516]
                            )
                          ]
                        )
                      ]
                      negated: False
                    )
                    (C {(mv)} {(Godeps/Godeps.json.out)} {(Godeps/Godeps.json)})
                  ]
                  spids: [433 529]
                )
              spids: [420 431]
            )
            (SimpleCommand
              words: [{(git)} {(add)} {(vendor)}]
              redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(/dev/null)} spids:[543])]
            )
            (SimpleCommand
              words: [{(git)} {(commit)} {(-a)} {(-m)} {(DQ ('Updated Godeps.json'))}]
              redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(/dev/null)} spids:[559])]
            )
            (SimpleCommand
              words: [{(popd)}]
              redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(/dev/null)} spids:[565])]
            )
          ]
          spids: [322]
        )
      spids: [316 321]
    )
    (FuncDef
      name: diffGodepManifest
      body: 
        (BraceGroup
          children: [
            (Assignment
              keyword: Assign_Local
              pairs: [(assign_pair lhs:(LhsName name:ret) op:Equal rhs:{(0)} spids:[582])]
              spids: [580]
            )
            (AndOr
              children: [
                (C {(diff)} {(--ignore-matching-lines) (Lit_Other '=') (SQ <'^\\s*\\"GoVersion\\":'>)} 
                  {(--ignore-matching-line) (Lit_Other '=') (SQ <'^\\s*\\"GodepVersion\\":'>)} {(--ignore-matching-lines) (Lit_Other '=') (SQ <'^\\s*\\"Comment\\"'>)} {(-u)} 
                  {
                    (DQ (${ VSub_Name KUBE_ROOT) (/staging/src/k8s.io/) (${ VSub_Name repo) 
                      (/Godeps/Godeps.json)
                    )
                  } {(DQ (${ VSub_Name TMP_GOPATH) (/src/k8s.io/) (${ VSub_Name repo) (/Godeps/Godeps.json))}
                )
                (Assignment
                  keyword: Assign_None
                  pairs: [
                    (assign_pair
                      lhs: (LhsName name:ret)
                      op: Equal
                      rhs: {($ VSub_QMark '$?')}
                      spids: [632]
                    )
                  ]
                  spids: [632]
                )
              ]
              op_id: Op_DPipe
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalAnd
                              left: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobNEqual
                                  left: {(DQ (${ VSub_Name ret))}
                                  right: {(DQ (0))}
                                )
                              right: 
                                (BoolBinary
                                  op_id: BoolBinary_GlobDEqual
                                  left: {(DQ (${ VSub_Name FAIL_ON_DIFF))}
                                  right: {(true)}
                                )
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(exit)} {(${ VSub_Name ret)})]
                  spids: [16777215 667]
                )
              ]
              spids: [16777215 677]
            )
          ]
          spids: [577]
        )
      spids: [571 576]
    )
    (C {(mkdir)} {(-p)} {(DQ (${ VSub_Name TMP_GOPATH) (/src/k8s.io))})
    (ForEach
      iter_name: repo
      iter_words: [
        {
          (CommandSubPart
            command_list: 
              (CommandList
                children: [(C {(ls)} {(${ VSub_Name KUBE_ROOT) (/staging/src/k8s.io)})]
              )
            left_token: <Left_CommandSub '$('>
            spids: [702 709]
          )
        }
      ]
      do_arg_iter: False
      body: 
        (DoGroup
          children: [
            (C {(cp)} {(-a)} {(DQ (${ VSub_Name KUBE_ROOT) (/staging/src/k8s.io/) (${ VSub_Name repo))} 
              {(DQ (${ VSub_Name TMP_GOPATH) (/src/k8s.io/))}
            )
            (C 
              {(kube) (Lit_Other ':') (Lit_Other ':') (util) (Lit_Other ':') (Lit_Other ':') 
                (create-fake-git-tree)
              } {(DQ (${ VSub_Name TMP_GOPATH) (/src/k8s.io/) (${ VSub_Name repo))}
            )
            (C {(updateGodepManifest)})
            (C {(diffGodepManifest)})
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (C {(Lit_Other '[')} {(DQ (${ VSub_Name DRY_RUN))} 
                          {(KW_Bang '!') (Lit_Other '=')} {(true)} {(Lit_Other ']')}
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [
                    (C {(cp)} 
                      {
                        (DQ (${ VSub_Name TMP_GOPATH) (/src/k8s.io/) (${ VSub_Name repo) 
                          (/Godeps/Godeps.json)
                        )
                      } {(DQ (${ VSub_Name KUBE_ROOT) (/staging/src/k8s.io/) (${ VSub_Name repo) (/Godeps/Godeps.json))}
                    )
                    (C {(git)} {(update-index)} {(--assume-unchanged)} 
                      {
                        (DQ (${ VSub_Name KUBE_ROOT) (/staging/src/k8s.io/) (${ VSub_Name repo) 
                          (/Godeps/Godeps.json)
                        )
                      }
                    )
                  ]
                  spids: [16777215 787]
                )
              ]
              spids: [16777215 853]
            )
          ]
          spids: [712 855]
        )
      spids: [701 710]
    )
  ]
)