(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 verify_go_version]} ) (Com {[LIT_CHARS cd]} {[DQ [VarSub KUBE_ROOT]]} ) (FunctionDef array_contains [] (List (= scope= flags=0 words=[] bindings=[('seeking', {[VarSub 1]})]) (Com {[LIT_CHARS shift]} ) (= scope= flags=0 words=[] bindings=[('in', {[LIT_CHARS 1]})]) (For element do_arg_iter) (If (DBracket {B2 BINARY_STRING_EQUAL {[DQ [VarSub element]]} {[DQ [VarSub seeking]]}}) (List (= scope= flags=0 words=[] bindings=[('in', {[LIT_CHARS 0]})]) (Com {[LIT_CHARS break]} ) ) ) ) (Com {[LIT_CHARS return]} {[VarSub in]} ) ) ) (= scope= flags=0 words=[] bindings=[('linted_file', {[DQ [VarSub KUBE_ROOT][LIT_CHARS /hack/.linted_packages]]})]) (If (Pipeline! (Com {[LIT_CHARS diff]} {[LIT_CHARS -u]} {[DQ [VarSub linted_file]]} {[ComSub (Com more_env=[('LC_ALL', {[LIT_CHARS C]})] {[LIT_CHARS sort]} {[DQ [VarSub linted_file]]})]} ) ) (List (List redirects=[(DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1)] (Com {[LIT_CHARS echo]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "hack/.linted_packages is not in alphabetical order. Please sort it:"]]} ) (Com {[LIT_CHARS echo]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " LC_ALL=C sort -o hack/.linted_packages hack/.linted_packages"]]} ) (Com {[LIT_CHARS echo]} ) ) (Com {[LIT_CHARS false]} ) ) ) (= scope= flags=1 words=[] bindings=[('IFS', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('all_packages', {[Array {OP_NEWLINE "\n"} {[ComSub (Pipeline (Com {[LIT_CHARS go]} {[LIT_CHARS list]} {[LIT_CHARS -e]} {[LIT_CHARS ./...]}) (Com {[LIT_CHARS egrep]} {[LIT_CHARS -v]} {[DQ [LIT_CHARS "/(third_party|vendor|staging|generated|clientset_generated)"]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[SQ ]} {[LIT_CHARS -e]} {[DQ [LIT_CHARS "s|^_"][VarSub KUBE_ROOT][LIT_CHARS /][\ LIT_ESCAPED_CHAR "\\?"][LIT_CHARS "||"]]}) )]} {OP_NEWLINE "\n"}]})]) (= scope= flags=0 words=[] bindings=[('linted_packages', {[Array {OP_NEWLINE "\n"} {[ComSub (Com {[LIT_CHARS cat]} {[VarSub linted_file]})]} {OP_NEWLINE "\n"}]})]) (Com {[LIT_CHARS unset]} {[LIT_CHARS IFS]} ) (= scope= flags=0 words=[] bindings=[('linted', {[Array ]})]) (= scope= flags=0 words=[] bindings=[('errors', {[Array ]})]) (For p [{[DQ [VarSub all_packages bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]}]) (List (= scope= flags=0 words=[] bindings=[('failedLint', {[ComSub (Com {[LIT_CHARS golint]} {[DQ [VarSub p]] [LIT_CHARS /] [LIT_OTHER "*"] [LIT_CHARS .go]})]})]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[DQ [VarSub failedLint]]} {[LIT_DBRACKET_LIKE "]"]} ) (If (Com {[LIT_CHARS array_contains]} {[DQ [VarSub p]]} {[DQ [VarSub linted_packages bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]} ) (= scope= flags=0 words=[] bindings=[('errors+', {[Array {[DQ [VarSub failedLint]]}]})]) ) (ElseTrue) (AndOr OP_OR_IF (Com {[LIT_CHARS array_contains]} {[DQ [VarSub p]]} {[DQ [VarSub linted_packages bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]} ) (= scope= flags=0 words=[] bindings=[('linted+', {[Array {[DQ [VarSub p]]}]})]) ) ) ) ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub errors bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}}) transform_ops=[(#len)]]} {[LIT_CHARS -eq]} {[LIT_CHARS 0]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS echo]} {[SQ ]} ) (ElseTrue) (List (List redirects=[(DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1)] (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Errors from golint:"]]} ) (For err [{[DQ [VarSub errors bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]}]) (Com {[LIT_CHARS echo]} {[DQ [VarSub err]]} ) ) (Com {[LIT_CHARS echo]} ) (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS echo]} ) ) (Com {[LIT_CHARS false]} ) ) ) (Com {[LIT_CHARS echo]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub linted bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}}) transform_ops=[(#len)]]} {[LIT_CHARS -eq]} {[LIT_CHARS 0]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS echo]} {[SQ ]} ) (ElseTrue) (List (List redirects=[(DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1)] (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Some packages passed golint but are not listed in hack/.linted_packages."]]} ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Please add them in alphabetical order:"]]} ) (Com {[LIT_CHARS echo]} ) (For p [{[DQ [VarSub linted bracket_op=(Index {A Atom NODE_ARITH_WORD {AS_OP_AT "@"}})]]}]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " echo "][VarSub p][LIT_CHARS " >> hack/.linted_packages"]]} ) ) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS " LC_ALL=C sort -o hack/.linted_packages hack/.linted_packages"]]} ) (Com {[LIT_CHARS echo]} ) (Com {[LIT_CHARS echo]} {[SQ ]} ) (Com {[LIT_CHARS echo]} ) ) (Com {[LIT_CHARS false]} ) ) ) )