(List (Com {[LIT_CHARS set]} {[LIT_CHARS -o]} {[LIT_CHARS errexit]} ) (Com {[LIT_CHARS set]} {[LIT_CHARS -o]} {[LIT_CHARS nounset]} ) (Com {[LIT_CHARS set]} {[LIT_CHARS -o]} {[LIT_CHARS pipefail]} ) (= scope= flags=0 words=[] bindings=[('KUBE_ROOT', {[ComSub (Com {[LIT_CHARS dirname]} {[DQ [VarSub BASH_SOURCE]]})] [LIT_CHARS /..]})]) (Com {[LIT_CHARS source]} {[DQ [VarSub KUBE_ROOT][LIT_CHARS /hack/lib/init.sh]]} ) (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS golang] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS setup_env]} ) (= scope= flags=0 words=[] bindings=[('generated_files', {[Array {[ComSub (Pipeline (Com {[LIT_CHARS find]} {[LIT_CHARS .]} {[LIT_CHARS -not]} {[\ LIT_ESCAPED_CHAR "\\("]} {[\ LIT_ESCAPED_CHAR "\\("]} {[LIT_CHARS -wholename]} {[SQ ]} {[LIT_CHARS -o]} {[LIT_CHARS -wholename]} {[SQ ]} {[LIT_CHARS -o]} {[LIT_CHARS -wholename]} {[SQ ]} {[LIT_CHARS -o]} {[LIT_CHARS -wholename]} {[SQ ]} {[LIT_CHARS -o]} {[LIT_CHARS -wholename]} {[SQ ]} {[LIT_CHARS -o]} {[LIT_CHARS -wholename]} {[SQ ]} {[LIT_CHARS -o]} {[LIT_CHARS -wholename]} {[SQ ]} {[LIT_CHARS -o]} {[LIT_CHARS -wholename]} {[SQ ]} {[\ LIT_ESCAPED_CHAR "\\)"]} {[LIT_CHARS -prune]} {[\ LIT_ESCAPED_CHAR "\\)"]} {[LIT_CHARS -name]} {[SQ ]}) (Com more_env=[('LC_ALL', {[LIT_CHARS C]})] {[LIT_CHARS sort]} {[LIT_CHARS -r]}) )]}]})]) (= scope= flags=0 words=[] bindings=[('my_prefix', {[DQ [LIT_CHARS k8s.io/kubernetes]]})]) (FunctionDef cleanup [] (List (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[DQ [VarSub CODECGEN test_op=VS_TEST_COLON_HYPHEN {}]]} ) (Com {[LIT_CHARS pushd]} {[DQ [VarSub KUBE_ROOT]]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) (ForExpr {A2 AS_OP_EQUAL {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}}} {A2 AS_OP_LESS {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[VarSub number]}}} {A1 AS_OP_DPLUS {A Atom NODE_ARITH_WORD {[VarSub i]}} } (AndOr OP_OR_IF (Com {[LIT_CHARS touch]} {[DQ [VarSub generated_files bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub i]}})]]} ) (Com {[LIT_CHARS true]} ) ) ) (Com {[LIT_CHARS popd]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) ) (Com {[LIT_CHARS trap]} {[LIT_CHARS cleanup]} {[LIT_CHARS EXIT]} ) (= scope= flags=0 words=[] bindings=[('number', {[VarSub generated_files bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}}) transform_ops=[(#len)]]})]) (= scope= flags=0 words=[] bindings=[('result', {[DQ ]})]) (ForExpr {A2 AS_OP_EQUAL {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}}} {A2 AS_OP_LESS {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[VarSub number]}}} {A1 AS_OP_DPLUS {A Atom NODE_ARITH_WORD {[VarSub i]}} } (List (Com {[LIT_CHARS visited] [LIT_DBRACKET_LIKE "["] [VarSub i] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS false]} ) (= scope= flags=0 words=[] bindings=[('file', {[DQ [VarSub generated_files bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub i]}}) transform_ops=[PatSub {[\ LIT_ESCAPED_CHAR "\\."] [LIT_CHARS generated] [\ LIT_ESCAPED_CHAR "\\."] [LIT_CHARS go]} {[LIT_CHARS .go]}]]]})]) (Com {[LIT_CHARS deps] [LIT_DBRACKET_LIKE "["] [VarSub i] [LIT_DBRACKET_LIKE "]="] [ComSub (Pipeline (Com {[LIT_CHARS go]} {[LIT_CHARS list]} {[LIT_CHARS -f]} {[SQ ]} {[VarSub file]}) (Com {[LIT_CHARS grep]} {[DQ [LIT_CHARS "^"][VarSub my_prefix]]}) )]} ) ) ) (FunctionDef depends [] (List (= scope= flags=0 words=[] bindings=[('rhs', {[DQ [ComSub (Com {[LIT_CHARS dirname]} {[VarSub generated_files bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub 2]}}) transform_ops=[PatSub {[LIT_CHARS .]} {[VarSub my_prefix]} do_suffix]]})]]})]) (For dep [{[VarSub deps bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub 1]}})]}]) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub dep]]} {[DQ [VarSub rhs]]}}) (Com {[LIT_CHARS return]} {[LIT_CHARS 0]} ) ) ) (Com {[LIT_CHARS return]} {[LIT_CHARS 1]} ) ) ) (FunctionDef tsort [] (List (Com {[LIT_CHARS visited] [LIT_DBRACKET_LIKE "["] [VarSub 1] [LIT_DBRACKET_LIKE "]="] [LIT_CHARS true]} ) (= scope= flags=0 words=[] bindings=[('j', {[LIT_CHARS 0]})]) (ForExpr {A2 AS_OP_EQUAL {A Atom NODE_ARITH_WORD {[VarSub j]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}}} {A2 AS_OP_LESS {A Atom NODE_ARITH_WORD {[VarSub j]}} {A Atom NODE_ARITH_WORD {[VarSub number]}}} {A1 AS_OP_DPLUS {A Atom NODE_ARITH_WORD {[VarSub j]}} } (If (Pipeline! (Com {[VarSub visited bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub j]}})]} ) ) (If (Com {[LIT_CHARS depends]} {[DQ [VarSub 1]]} {[VarSub j]} ) (Com {[LIT_CHARS tsort]} {[VarSub j]} ) ) ) ) (= scope= flags=0 words=[] bindings=[('result', {[DQ [VarSub result][LIT_CHARS " "][VarSub 1]]})]) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Building dependencies"]]} ) (ForExpr {A2 AS_OP_EQUAL {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}}} {A2 AS_OP_LESS {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[VarSub number]}}} {A1 AS_OP_DPLUS {A Atom NODE_ARITH_WORD {[VarSub i]}} } (If (Pipeline! (Com {[VarSub visited bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub i]}})]} ) ) (Com {[LIT_CHARS tsort]} {[VarSub i]} ) ) ) (= scope= flags=0 words=[] bindings=[('index', {[Array {[VarSub result]}]})]) (= scope= flags=0 words=[] bindings=[('haveindex', {[VarSub index test_op=VS_TEST_COLON_HYPHEN {}]})]) (If (DBracket {B1 UNARY_STRING_z {[VarSub haveindex]}}) (List (Com {[LIT_CHARS echo]} {[LIT_CHARS No]} {[LIT_CHARS files]} {[LIT_CHARS found]} {[LIT_CHARS for]} {[VarSub 0]} ) (Com {[LIT_CHARS echo]} {[LIT_CHARS A]} {[LIT_CHARS previous]} {[LIT_CHARS run]} {[LIT_CHARS of]} {[VarSub 0]} {[LIT_CHARS may]} {[LIT_CHARS have]} {[LIT_CHARS deleted]} {[LIT_CHARS all]} {[LIT_CHARS the]} {[LIT_CHARS files]} {[LIT_CHARS and]} {[LIT_CHARS then]} {[LIT_CHARS crashed.]} ) (Com {[LIT_CHARS echo]} {[LIT_CHARS Use]} {[SQ ]} {[LIT_CHARS to]} {[LIT_CHARS create]} {[LIT_CHARS files]} {[LIT_CHARS named]} {[SQ ]} {[LIT_CHARS listed]} {[LIT_CHARS as]} {[LIT_CHARS deleted]} {[LIT_CHARS in]} {[SQ ]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Building codecgen"]]} ) (Com {[LIT_CHARS make]} {[LIT_CHARS generated_files]} ) (= scope= flags=0 words=[] bindings=[('CODECGEN', {[DQ [VarSub PWD][LIT_CHARS /codecgen_binary]]})]) (Com {[LIT_CHARS go]} {[LIT_CHARS build]} {[LIT_CHARS -o]} {[DQ [VarSub CODECGEN]]} {[LIT_CHARS ./vendor/github.com/ugorji/go/codec/codecgen]} ) (ForExpr {A2 AS_OP_EQUAL {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[AS_NUM_LITERAL 0]}}} {A2 AS_OP_LESS {A Atom NODE_ARITH_WORD {[VarSub i]}} {A Atom NODE_ARITH_WORD {[VarSub number]}}} {A1 AS_OP_DPLUS {A Atom NODE_ARITH_WORD {[VarSub i]}} } (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[DQ [VarSub generated_files bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub i]}})]]} ) ) (For current [{[DQ [VarSub index bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]}]) (List (= scope= flags=0 words=[] bindings=[('generated_file', {[VarSub generated_files bracket_op=(Index {A Atom NODE_ARITH_WORD {[VarSub current]}})]})]) (= scope= flags=0 words=[] bindings=[('initial_dir', {[VarSub PWD]})]) (= scope= flags=0 words=[] bindings=[('file', {[VarSub generated_file transform_ops=[PatSub {[\ LIT_ESCAPED_CHAR "\\."] [LIT_CHARS generated] [\ LIT_ESCAPED_CHAR "\\."] [LIT_CHARS go]} {[LIT_CHARS .go]}]]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "processing "][VarSub file]]} ) (Com {[LIT_CHARS pushd]} {[DQ [ComSub (Com {[LIT_CHARS dirname]} {[VarSub file]})]]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) (= scope= flags=0 words=[] bindings=[('base_file', {[ComSub (Com {[LIT_CHARS basename]} {[DQ [VarSub file]]})]})]) (= scope= flags=0 words=[] bindings=[('base_generated_file', {[ComSub (Com {[LIT_CHARS basename]} {[DQ [VarSub generated_file]]})]})]) (Com {[VarSub CODECGEN]} {[LIT_CHARS -d]} {[LIT_CHARS 1234]} {[LIT_CHARS -o]} {[DQ [VarSub base_generated_file]]} {[DQ [VarSub base_file]]} ) (Com {[LIT_CHARS sed]} {[SQ ]} {[DQ [VarSub initial_dir][LIT_CHARS /hack/boilerplate/boilerplate.go.txt]]} < (FilenameRedirectNode filename={[DQ [VarSub base_generated_file][LIT_CHARS .tmp]]} "> 1), > ) (Com {[LIT_CHARS cat]} {[DQ [VarSub base_generated_file]]} < (FilenameRedirectNode filename={[DQ [VarSub base_generated_file][LIT_CHARS .tmp]]} >"> 1), > ) (Com {[LIT_CHARS mv]} {[DQ [VarSub base_generated_file][LIT_CHARS .tmp]]} {[DQ [VarSub base_generated_file]]} ) (Com {[LIT_CHARS popd]} < (FilenameRedirectNode filename={[LIT_CHARS /dev/null]} "> 1), > ) ) ) )