(command.CommandList children: [ (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<-o>} {<errexit>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<-o>} {<nounset>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <set> more_env: [] words: [{<set>} {<-o>} {<pipefail>}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'KUBE_ROOT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'KUBE_ROOT='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'KUBE_ROOT='> name:KUBE_ROOT) op: assign_op.Equal rhs: { (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name KUBE_ROOT> var_name: KUBE_ROOT suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <dirname> more_env: [] words: [{<dirname>} {(DQ (${ Id.VSub_Name BASH_SOURCE))}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) <Id.Lit_Slash '/'> <..> } ) right: <Id.Right_DollarBrace '}'> ) } ) ] redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <uname> more_env: [] words: [{<uname>} {<-s>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <Darwin> pattern: (pat.Words words:[{<Darwin>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'host_os='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'host_os='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'host_os='> name:host_os) op: assign_op.Equal rhs: {<darwin>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Linux> pattern: (pat.Words words:[{<Linux>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'host_os='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'host_os='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'host_os='> name:host_os) op: assign_op.Equal rhs: {<linux>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Unsupported host OS. Must be Linux or Mac OS X.'>)}] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.Case case_kw: <Id.KW_Case case> to_match: (case_arg.Word w: { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <uname> more_env: [] words: [{<uname>} {<-m>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ) arms_start: <Id.KW_In in> arms: [ (CaseArm left: <x86_64> pattern: (pat.Words words:[{<x86_64> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'host_arch='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'host_arch='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'host_arch='> name:host_arch) op: assign_op.Equal rhs: {<amd64>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <i> pattern: (pat.Words words:[{<i> <Id.Lit_QMark '?'> <86_64> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'host_arch='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'host_arch='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'host_arch='> name:host_arch) op: assign_op.Equal rhs: {<amd64>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <amd64> pattern: (pat.Words words:[{<amd64> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'host_arch='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'host_arch='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'host_arch='> name:host_arch) op: assign_op.Equal rhs: {<amd64>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <arm> pattern: (pat.Words words:[{<arm> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'host_arch='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'host_arch='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'host_arch='> name:host_arch) op: assign_op.Equal rhs: {<arm>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <i> pattern: (pat.Words words:[{<i> <Id.Lit_QMark '?'> <86> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'host_arch='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'host_arch='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'host_arch='> name:host_arch) op: assign_op.Equal rhs: {<386>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <s390x> pattern: (pat.Words words:[{<s390x> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'host_arch='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'host_arch='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'host_arch='> name:host_arch) op: assign_op.Equal rhs: {<s390x>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <ppc64le> pattern: (pat.Words words:[{<ppc64le> <Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.ShAssignment left: <Id.Lit_VarLike 'host_arch='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'host_arch='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'host_arch='> name:host_arch) op: assign_op.Equal rhs: {<ppc64le>} ) ] redirects: [] ) ] right: <Id.Op_DSemi _> ) (CaseArm left: <Id.Lit_Star '*'> pattern: (pat.Words words:[{<Id.Lit_Star '*'>}]) middle: <Id.Right_CasePat _> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <'Unsupported host arch. Must be x86_64, 386, arm, s390x or ppc64le.'>)} ] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (command.ControlFlow keyword:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] right: <Id.Op_DSemi _> ) ] arms_end: <Id.KW_Esac esac> redirects: [] ) (command.ShFunction name_tok: <get_absolute_dirname> name: get_absolute_dirname body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.AndOr children: [ (command.Simple blame_tok: <cd> more_env: [] words: [ {<cd>} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <dirname> more_env: [] words: [{<dirname>} {(DQ ($ Id.VSub_Number 1))}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <pwd> more_env: [] words: [{<pwd>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <get_bin> name: get_bin body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'bin='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'bin='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'bin='> name:bin) op: assign_op.Equal rhs: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 1> var_name: 1 suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'srcdir='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'srcdir='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'srcdir='> name:srcdir) op: assign_op.Equal rhs: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 2> var_name: 2 suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } ) ] redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name bin))} right: {(DQ )} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Binary name is required'>)}] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [333 351] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket left: <Id.KW_DLeftBracket '[['> expr: (bool_expr.Binary op_id: Id.BoolBinary_GlobDEqual left: {(DQ (${ Id.VSub_Name srcdir))} right: {(DQ )} ) right: <Id.Lit_DRightBracket ']]'> redirects: [] ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Source directory path is required'>)}] redirects: [] do_fork: T ) (command.ControlFlow keyword: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [369 387] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'locations='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'locations='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'locations='> name:locations) op: assign_op.Equal rhs: { (ShArrayLiteral left: <Id.Op_LParen _> words: [ {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/_output/bin/'> (${ Id.VSub_Name bin))} { (DQ (${ Id.VSub_Name KUBE_ROOT) <'/_output/dockerized/bin/'> (${ Id.VSub_Name host_os) <'/'> (${ Id.VSub_Name host_arch) <'/'> (${ Id.VSub_Name bin) ) } { (DQ (${ Id.VSub_Name KUBE_ROOT) <'/_output/local/bin/'> (${ Id.VSub_Name host_os) <'/'> (${ Id.VSub_Name host_arch) <'/'> (${ Id.VSub_Name bin) ) } { (DQ (${ Id.VSub_Name KUBE_ROOT) <'/bazel-bin/'> (${ Id.VSub_Name srcdir) <'/'> (${ Id.VSub_Name bin) ) } { (DQ (${ Id.VSub_Name KUBE_ROOT) <'/platforms/'> (${ Id.VSub_Name host_os) <'/'> (${ Id.VSub_Name host_arch) <'/'> (${ Id.VSub_Name bin) ) } ] right: <Id.Right_ShArrayLiteral _> ) } ) ] redirects: [] ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (command.Subshell left: <Id.Op_LParen _> child: (command.AndOr children: [ (command.Simple blame_tok: <ls> more_env: [] words: [ {<ls>} {<-t>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name locations> var_name: locations bracket_op: (bracket_op.WholeArray op_id:Id.Lit_At) right: <Id.Right_DollarBrace '}'> ) ) } ] redirects: [ (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (command.Simple blame_tok: <true> more_env: [] words: [{<true>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) right: <Id.Right_Subshell _> redirects: [] ) (command.Simple blame_tok: <head> more_env: [] words: [{<head>} {<-1>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_Pipe _>] ) right: <Id.Eof_RParen _> ) } ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction keyword: <Id.KW_Function function> name_tok: <print_error> name: print_error body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} { (DQ <'It looks as if you don\'t have a compiled '> (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 1> var_name: 1 suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) <' binary'> ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <'If you are running from a clone of the git repo, please run'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <'\'./build/run.sh make cross\'. Note that this requires having'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'Docker installed.'>)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <'If you are running from a binary release tarball, something is wrong. '>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [ {<echo>} {(DQ <'Look at http://kubernetes.io/ for information on how to contact the '>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {(DQ <'development team for help.'>)}] redirects: [] do_fork: T ) ] redirects: [(Redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] right: <Id.Lit_RBrace '}'> ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) ] )