(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: 
            {
              (command_sub
                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:66)
                command_list: 
                  (command.CommandList
                    children: [(C {(dirname)} {(DQ (${ Id.VSub_Name BASH_SOURCE))})]
                  )
              ) (/..)
            }
          spids: [65]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.DBracket
                  expr: 
                    (bool_expr.LogicalNot
                      child: (bool_expr.Unary op_id:Id.BoolUnary_f child:{(/.dockerenv)})
                    )
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:92)
            )
          ]
          action: [
            (C {(echo)})
            (C {(echo)} 
              {(DQ ("'make release-in-a-container' can only be used from a docker container."))}
            )
            (C {(echo)})
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Exit val:exit span_id:110)
              arg_word: {(1)}
            )
          ]
          spids: [81 94]
        )
      ]
    )
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.Pipeline
                  children: [
                    (command.Simple
                      words: [{(type)} {(-p)} {(docker)}]
                      redirects: [
                        (redir.Redir
                          op: (Token id:Id.Redir_Great val:'>' span_id:130)
                          fd: -1
                          arg_word: {(/dev/null)}
                        )
                        (redir.Redir
                          op: (Token id:Id.Redir_GreatAnd val:'2>&' span_id:133)
                          fd: 2
                          arg_word: {(1)}
                        )
                      ]
                    )
                  ]
                  negated: T
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:135)
            )
          ]
          action: [
            (C {(echo)})
            (C {(echo)} {(DQ ("'make release-in-a-container' requires a container with"))} 
              {(DQ ('docker installed.'))}
            )
            (C {(echo)})
            (command.ControlFlow
              token: (Token id:Id.ControlFlow_Exit val:exit span_id:159)
              arg_word: {(1)}
            )
          ]
          spids: [120 137]
        )
      ]
    )
    (C {(make)} {(cross-in-a-container)})
    (command.If
      arms: [
        (if_arm
          cond: [
            (command.Sentence
              child: 
                (command.DBracket
                  expr: 
                    (bool_expr.Binary
                      op_id: Id.BoolBinary_EqualTilde
                      left: {($ Id.VSub_DollarName '$KUBE_RELEASE_RUN_TESTS')}
                      right: 
                        {(Id.Lit_Other '^') (Id.Lit_Other '[') (yY) (Id.Lit_Other ']') 
                          (Id.Lit_Other '$')
                        }
                    )
                )
              terminator: (Token id:Id.Op_Semi val:';' span_id:193)
            )
          ]
          action: [(C {(make)} {(test)})]
          spids: [178 195]
        )
      ]
    )
    (C {($ Id.VSub_DollarName '$KUBE_ROOT') (/build/package-tarballs.sh)})
  ]
)