(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: { (braced_var_sub token: (Token id:Id.VSub_Name val:KUBE_ROOT span_id:65) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:67) command_list: (command.CommandList children: [(C {(dirname)} {(DQ (${ Id.VSub_Name BASH_SOURCE))})] ) ) (Id.Lit_Slash /) (..) } ) ) } spids: [63] ) ] ) (C {(source)} {(DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/kube-util.sh))}) (C {(source)} {(DQ (${ Id.VSub_Name KUBE_ROOT) (/cluster/clientbin.sh))}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.Unary op_id: Id.BoolUnary_z child: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:KUBEADM_PATH span_id:113) suffix_op: (suffix_op.Unary op_id:Id.VTest_ColonHyphen arg_word:(word.Empty)) ) ) } ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:119) ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:kubeadm) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:125) command_list: (command.CommandList children: [(C {(get_bin)} {(DQ (kubeadm))} {(DQ (cmd/kubeadm))})] ) ) } spids: [124] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_x child: {(DQ ($ Id.VSub_DollarName '$kubeadm'))} ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:154) ) ] action: [ (C {(print_error)} {(DQ (kubeadm))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:166) arg_word: {(1)} ) ] spids: [141 156] ) ] ) ] spids: [105 121] ) (if_arm cond: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_x child: {(DQ (${ Id.VSub_Name KUBEADM_PATH))} ) ) ) terminator: (Token id:Id.Op_Semi val:';' span_id:188) ) ] action: [ (command.BraceGroup children: [ (C {(echo)} { (DQ ("KUBEADM_PATH environment variable set to '") (${ Id.VSub_Name KUBEADM_PATH) ("', but ") ) } ) (C {(echo)} {(DQ ("this doesn't seem to be a valid executable."))}) ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:216) fd: -1 arg_word: {(2)} ) ] ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:220) arg_word: {(1)} ) ] spids: [173 190] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:kubeadm) op: assign_op.Equal rhs: { (DQ (braced_var_sub token: (Token id:Id.VSub_Name val:KUBEADM_PATH span_id:229) suffix_op: (suffix_op.Unary op_id: Id.VTest_ColonHyphen arg_word: {(${ Id.VSub_Name kubeadm)} ) ) ) } spids: [226] ) ] ) (C {(DQ (${ Id.VSub_Name kubeadm))} { (DQ (braced_var_sub token: (Token id:Id.VSub_At val:'@' span_id:246) suffix_op: (suffix_op.Unary op_id:Id.VTest_Plus arg_word:{($ Id.VSub_At '$@')}) ) ) } ) ] )