(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: { (CommandSubPart command_list: (CommandList children: [(C {(dirname)} {(DQ (${ VSub_Name BASH_SOURCE))})] ) left_token: <Left_CommandSub '$('> spids: [69 77] ) (/..) } spids: [68] ) ] spids: [68] ) (C {(source)} {(DQ (${ VSub_Name KUBE_ROOT) (/hack/lib/init.sh))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:prefix) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name KUBE_ROOT> suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(DQ (k8s.io/kubernetes))}) spids: [91 97] ) ) } spids: [89] ) ] spids: [89] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:register_files) op: Equal rhs: {(ArrayLiteralPart)} spids: [101] ) ] spids: [101] ) (While cond: [ (Sentence child: (SimpleCommand words: [{(read)} {(-d)} {(SQ <Lit_EscapedChar '\\0'>)} {(-r)} {(file)}] more_env: [(env_pair name:IFS val:{(SQ )} spids:[107])] ) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:register_files) op: PlusEqual rhs: {(ArrayLiteralPart words:[{(DQ (${ VSub_Name file))}])} spids: [126] ) ] spids: [126] ) ] spids: [123 135] ) redirects: [ (Redir op_id: Redir_Less fd: 16777215 arg_word: { (CommandSubPart command_list: (CommandList children: [ (C {(find)} {(DQ (${ VSub_Name KUBE_ROOT)) (/pkg/apis)} {(-name)} {(register.go)} {(-print0)} ) ] ) left_token: <Left_ProcSubIn '<('> spids: [139 154] ) } spids: [137] ) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:group_dirnames) op: Equal rhs: {(ArrayLiteralPart)} spids: [169] ) ] spids: [169] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:external_group_versions) op: Equal rhs: {(ArrayLiteralPart)} spids: [173] ) ] spids: [173] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:expected_install_packages) op: Equal rhs: {(ArrayLiteralPart)} spids: [177] ) ] spids: [177] ) (ForEach iter_name: register_file iter_words: [ { (DQ (BracedVarSub token: <VSub_Name register_files> bracket_op: (WholeArray op_id:Lit_At) spids: [188 193] ) ) } ] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:package) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name register_file> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {(DQ (${ VSub_Name prefix))} ) spids: [202 210] ) ) } spids: [200] ) ] spids: [200] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:package) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name package> suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(DQ (/register.go))}) spids: [216 222] ) ) } spids: [214] ) ] spids: [214] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:group_dirname) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name package> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {(DQ (k8s.io/kubernetes/pkg/apis/))} ) spids: [228 234] ) ) } spids: [226] ) ] spids: [226] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:group_dirname) op: Equal rhs: { (DQ (BracedVarSub token: <VSub_Name group_dirname> suffix_op: (StringUnary op_id:VOp1_DPercent arg_word:{(DQ ('/*'))}) spids: [240 246] ) ) } spids: [238] ) ] spids: [238] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:group_name) op:Equal rhs:{(DQ )} spids:[250])] spids: [250] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(grep)} {(-q)} {(SQ <'GroupName = "'>)} {(DQ (${ VSub_Name register_file))}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:group_name) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(grep)} {(-q)} {(SQ <'GroupName = "'>)} {(DQ (${ VSub_Name register_file))} ) (C {(cut)} {(-d) (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>)} {(-f2)} {(-)} ) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [276 301] ) } spids: [275] ) ] spids: [275] ) ] spids: [16777215 272] ) ] else_action: [ (C {(echo)} { (DQ (${ VSub_Name register_file) (' is missing ') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ('const GroupName =') (EscapedLiteralPart token:<Lit_EscapedChar '\\"'>) ) } ) (C {(exit)} {(1)}) ] spids: [304 325] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: { (DQ (BracedVarSub token: <VSub_Name group_dirname> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {("*'") (Lit_Slash /) ("'")} ) spids: [342 348] ) ) } right: {(DQ (${ VSub_Name group_dirname))} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:group_dirnames) op: PlusEqual rhs: {(ArrayLiteralPart words:[{(DQ (${ VSub_Name group_dirname))}])} spids: [365] ) ] spids: [365] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:expected_install_packages) op: PlusEqual rhs: {(ArrayLiteralPart words:[{(DQ (${ VSub_Name package))}])} spids: [375] ) ] spids: [375] ) ] spids: [16777215 362] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:version) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(DQ (${ VSub_Name group_dirname))}) (C {(cut)} {(-d/)} {(-f2)} {(-)}) ] negated: False ) ] ) left_token: <Left_CommandSub '$('> spids: [389 407] ) } spids: [388] ) ] spids: [388] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:external_group_versions) op: PlusEqual rhs: { (ArrayLiteralPart words: [{(DQ (${ VSub_Name group_name) (/) (${ VSub_Name version))}] ) } spids: [410] ) ] spids: [410] ) ] spids: [385 424] ) ] spids: [197 426] ) spids: [186 195] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:groups_without_codegen) op: Equal rhs: { (ArrayLiteralPart words: [{(DQ (abac))} {(DQ (componentconfig))} {(DQ (imagepolicy))} {(DQ (admission))}] ) } spids: [439] ) ] spids: [439] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:client_gen_file) op: Equal rhs: {(DQ (${ VSub_Name KUBE_ROOT) (/vendor/k8s.io/code-generator/cmd/client-gen/main.go))} spids: [464] ) ] spids: [464] ) (ForEach iter_name: group_dirname iter_words: [ { (DQ (BracedVarSub token: <VSub_Name group_dirnames> bracket_op: (WholeArray op_id:Lit_At) spids: [480 485] ) ) } ] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(grep)} {(-q)} {(DQ (${ VSub_Name group_dirname) (/))} {(DQ (${ VSub_Name client_gen_file))} ) ] negated: True ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:found) op:Equal rhs:{(0)} spids:[518])] spids: [518] ) (ForEach iter_name: group_without_codegen iter_words: [ { (DQ (BracedVarSub token: <VSub_Name groups_without_codegen> bracket_op: (WholeArray op_id:Lit_At) spids: [529 534] ) ) } ] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ (${ VSub_Name group_without_codegen))} right: {(DQ (${ VSub_Name group_dirname))} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:found) op: Equal rhs: {(1)} spids: [565] ) ] spids: [565] ) ] spids: [16777215 562] ) ] spids: [16777215 569] ) ] spids: [538 572] ) spids: [527 536] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (LogicalAnd left: (BoolBinary op_id: BoolBinary_ne left: {(DQ (${ VSub_Name found))} right: {(DQ (1))} ) right: (BoolUnary op_id: BoolUnary_f child: {(DQ (${ VSub_Name group_dirname) (/types.go))} ) ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ ('need to add ') (${ VSub_Name group_dirname) ('/ to ') (${ VSub_Name client_gen_file) ) } ) (C {(exit)} {(1)}) ] spids: [16777215 606] ) ] spids: [16777215 628] ) ] spids: [16777215 515] ) ] spids: [16777215 631] ) ] spids: [489 633] ) spids: [478 487] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:packages_without_install) op: Equal rhs: { (ArrayLiteralPart words: [ {(DQ (k8s.io/kubernetes/pkg/apis/abac))} {(DQ (k8s.io/kubernetes/pkg/apis/admission))} ] ) } spids: [645] ) ] spids: [645] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:known_version_files) op: Equal rhs: { (ArrayLiteralPart words: [ {(DQ (pkg/master/import_known_versions.go))} {(DQ (pkg/client/clientset_generated/internal_clientset/import_known_versions.go))} ] ) } spids: [660] ) ] spids: [660] ) (ForEach iter_name: expected_install_package iter_words: [ { (DQ (BracedVarSub token: <VSub_Name expected_install_packages> bracket_op: (WholeArray op_id:Lit_At) spids: [682 687] ) ) } ] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:found) op:Equal rhs:{(0)} spids:[694])] spids: [694] ) (ForEach iter_name: package_without_install iter_words: [ { (DQ (BracedVarSub token: <VSub_Name packages_without_install> bracket_op: (WholeArray op_id:Lit_At) spids: [705 710] ) ) } ] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ (${ VSub_Name package_without_install))} {(Lit_Other '=') (Lit_Other '=')} {(DQ (${ VSub_Name expected_install_package))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:found) op: Equal rhs: {(1)} spids: [742] ) ] spids: [742] ) ] spids: [16777215 739] ) ] spids: [16777215 746] ) ] spids: [714 749] ) spids: [703 712] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_eq left: {(DQ (${ VSub_Name found))} right: {(DQ (1))} ) ) terminator: <Op_Semi ';'> ) ] action: [(ControlFlow token:<ControlFlow_Continue continue>)] spids: [16777215 772] ) ] spids: [16777215 778] ) (ForEach iter_name: known_version_file iter_words: [ { (DQ (BracedVarSub token: <VSub_Name known_version_files> bracket_op: (WholeArray op_id:Lit_At) spids: [789 794] ) ) } ] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(grep)} {(-q)} {(DQ (${ VSub_Name expected_install_package) (/install))} {(${ VSub_Name known_version_files)} ) ] negated: True ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ ('missing ') (${ VSub_Name expected_install_package) ('/install from ') (${ VSub_Name known_version_files) ) } ) (C {(exit)} {(1)}) ] spids: [16777215 822] ) ] spids: [16777215 844] ) ] spids: [798 847] ) spids: [787 796] ) ] spids: [691 849] ) spids: [680 689] ) (ForEach iter_name: external_group_version iter_words: [ { (DQ (BracedVarSub token: <VSub_Name external_group_versions> bracket_op: (WholeArray op_id:Lit_At) spids: [865 870] ) ) } ] do_arg_iter: False body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(grep)} {(-q)} {(DQ (${ VSub_Name external_group_version))} {(DQ (${ VSub_Name KUBE_ROOT) (/hack/lib/init.sh))} ) ] negated: True ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} { (DQ ('missing ') (${ VSub_Name external_group_version) ( ' from hack/lib/init.sh:/KUBE_AVAILABLE_GROUP_VERSIONS or hack/init.sh:/KUBE_NONSERVER_GROUP_VERSIONS' ) ) } ) (C {(exit)} {(1)}) ] spids: [16777215 900] ) ] spids: [16777215 919] ) ] spids: [874 921] ) spids: [863 872] ) ] )