(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: 
            {
              (BracedVarSub
                token: <VSub_Name KUBE_ROOT>
                suffix_op: 
                  (StringUnary
                    op_id: VTest_ColonHyphen
                    arg_word: 
                      {
                        (CommandSubPart
                          command_list: 
                            (CommandList
                              children: [(C {(dirname)} {(DQ (${ VSub_Name BASH_SOURCE))})]
                            )
                          left_token: <Left_CommandSub '$('>
                          spids: [77 85]
                        ) (Lit_Slash /) (..) (Lit_Slash /) (..)
                      }
                  )
                spids: [74 90]
              )
            }
          spids: [73]
        )
      ]
      spids: [73]
    )
    (C {(source)} {(DQ (${ VSub_Name KUBE_ROOT) (/cluster/clientbin.sh))})
    (If
      arms: [
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (BoolUnary
                      op_id: BoolUnary_z
                      child: 
                        {
                          (DQ 
                            (BracedVarSub
                              token: <VSub_Name KUBEFED_PATH>
                              suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(SQ )})
                              spids: [115 118]
                            )
                          )
                        }
                    )
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (Assignment
              keyword: Assign_None
              pairs: [
                (assign_pair
                  lhs: (LhsName name:kubefed)
                  op: Equal
                  rhs: 
                    {
                      (CommandSubPart
                        command_list: 
                          (CommandList
                            children: [(C {(get_bin)} {(DQ (kubefed))} {(DQ (federation/cmd/kubefed))})]
                          )
                        left_token: <Left_CommandSub '$('>
                        spids: [128 140]
                      )
                    }
                  spids: [127]
                )
              ]
              spids: [127]
            )
            (If
              arms: [
                (if_arm
                  cond: [
                    (Sentence
                      child: 
                        (DBracket
                          expr: 
                            (LogicalNot
                              child: (BoolUnary op_id:BoolUnary_x child:{(DQ ($ VSub_Name '$kubefed'))})
                            )
                        )
                      terminator: <Op_Semi ';'>
                    )
                  ]
                  action: [(C {(print_error)} {(DQ (kubefed))}) (C {(exit)} {(1)})]
                  spids: [16777215 159]
                )
              ]
              spids: [16777215 174]
            )
          ]
          spids: [16777215 124]
        )
        (if_arm
          cond: [
            (Sentence
              child: 
                (DBracket
                  expr: 
                    (LogicalNot
                      child: (BoolUnary op_id:BoolUnary_x child:{(DQ (${ VSub_Name KUBEFED_PATH))})
                    )
                )
              terminator: <Op_Semi ';'>
            )
          ]
          action: [
            (BraceGroup
              children: [
                (C {(echo)} 
                  {
                    (DQ ("KUBEFED_PATH environment variable set to '") (${ VSub_Name KUBEFED_PATH) 
                      ("', but ")
                    )
                  }
                )
                (C {(echo)} {(DQ ("this doesn't seem to be a valid executable."))})
              ]
              redirects: [(Redir op_id:Redir_GreatAnd fd:16777215 arg_word:{(2)} spids:[219])]
              spids: [196]
            )
            (C {(exit)} {(1)})
          ]
          spids: [176 193]
        )
      ]
      spids: [16777215 227]
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:kubefed)
          op: Equal
          rhs: 
            {
              (DQ 
                (BracedVarSub
                  token: <VSub_Name KUBEFED_PATH>
                  suffix_op: (StringUnary op_id:VTest_ColonHyphen arg_word:{(${ VSub_Name kubefed)})
                  spids: [231 237]
                )
              )
            }
          spids: [229]
        )
      ]
      spids: [229]
    )
    (C {(DQ (${ VSub_Name kubefed))} 
      {
        (DQ 
          (BracedVarSub
            token: <VSub_At '@'>
            suffix_op: (StringUnary op_id:VTest_Plus arg_word:{($ VSub_At '$@')})
            spids: [254 258]
          )
        )
      }
    )
  ]
)