(command.CommandList children: [ (C {<set>} {<-o>} {<errexit>}) (C {<set>} {<-o>} {<nounset>}) (C {<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: <Id.Left_DollarParen '$('> child: (C {<dirname>} {(DQ (${ Id.VSub_Name BASH_SOURCE))}) ) <'/..'> } spids: [63] ) ] ) (C {<source>} {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/hack/lib/init.sh'>)}) (C {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <golang> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <setup_env> } ) (C {<make>} {<-C>} {(DQ (${ Id.VSub_Name KUBE_ROOT))} {<Id.Lit_VarLike 'WHAT='> <'cmd/genswaggertypedocs'>} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:genswaggertypedocs) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<kube> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <util> <Id.Lit_Colon ':'> <Id.Lit_Colon ':'> <find-binary> } {(DQ <genswaggertypedocs>)} ) ) } spids: [111] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.DBracket expr: (bool_expr.LogicalNot child: (bool_expr.Unary op_id: Id.BoolUnary_x child: {(DQ ($ Id.VSub_DollarName '$genswaggertypedocs'))} ) ) ) terminator: <Id.Op_Semi _> ) ] ) action: [ (BraceGroup children: [ (C {<echo>} {(DQ <'It looks as if you don\'t have a compiled genswaggertypedocs binary'>)} ) (C {<echo>}) (C {<echo>} {(DQ <'If you are running from a clone of the git repo, please run'>)}) (C {<echo>} {(DQ <'\'make WHAT=cmd/genswaggertypedocs\'.'>)}) ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [127 142] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:DIFFROOT) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/pkg'>)} spids: [185] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TMP_DIFFROOT) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/_tmp/pkg'>)} spids: [193] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:_tmp) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/_tmp'>)} spids: [201] ) ] ) (command.ShFunction name: cleanup body: (BraceGroup children:[(C {<rm>} {<-rf>} {(DQ (${ Id.VSub_Name _tmp))})]) ) (C {<trap>} {(DQ <cleanup>)} {<EXIT>} {<SIGINT>}) (C {<cleanup>}) (C {<mkdir>} {<-p>} {(DQ (${ Id.VSub_Name TMP_DIFFROOT))}) (C {<cp>} {<-a>} {(DQ (${ Id.VSub_Name DIFFROOT)) <'/'> <Id.Lit_Star '*'>} {(DQ (${ Id.VSub_Name TMP_DIFFROOT) <'/'>)} ) (C {(DQ (${ Id.VSub_Name KUBE_ROOT) <'/hack/update-generated-swagger-docs.sh'>)}) (C {<echo>} { (DQ <'diffing '> (${ Id.VSub_Name DIFFROOT) <' against freshly generated swagger type documentation'> ) } ) (command.ShAssignment pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:ret) op:assign_op.Equal rhs:{<0>} spids:[290])] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<diff>} {<--exclude> <Id.Lit_Equals '='> (DQ <.import-restrictions>)} {<-Naupr>} {<-I>} {(SQ <'Auto generated by'>)} {(DQ (${ Id.VSub_Name DIFFROOT))} {(DQ (${ Id.VSub_Name TMP_DIFFROOT))} ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ret) op: assign_op.Equal rhs: {($ Id.VSub_QMark '$?')} spids: [323] ) ] ) ] ) (C {<cp>} {<-a>} {(DQ (${ Id.VSub_Name TMP_DIFFROOT)) <'/'> <Id.Lit_Star '*'>} {(DQ (${ Id.VSub_Name DIFFROOT) <'/'>)} ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.DBracket expr: (bool_expr.Binary op_id: Id.BoolBinary_eq left: {($ Id.VSub_DollarName '$ret')} right: {<0>} ) ) ] ) action: [(C {<echo>} {(DQ (${ Id.VSub_Name DIFFROOT) <' up to date.'>)})] spids: [345 357] ) ] else_action: [ (C {<echo>} { (DQ (${ Id.VSub_Name DIFFROOT) <' is out of date. Please run hack/update-generated-swagger-docs.sh'> ) } ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) ] )