(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]} ) (Com {[LIT_CHARS make]} {[LIT_CHARS -C]} {[DQ [VarSub KUBE_ROOT]]} {[LIT_VAR_LIKE "WHAT="] [LIT_CHARS cmd/genswaggertypedocs] =} ) (= scope= flags=0 words=[] bindings=[('genswaggertypedocs', {[ComSub (Com {[LIT_CHARS kube] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS util] [LIT_OTHER ":"] [LIT_OTHER ":"] [LIT_CHARS find-binary]} {[DQ [LIT_CHARS genswaggertypedocs]]})]})]) (= scope= flags=0 words=[] bindings=[('gen_swagger_result', {[LIT_CHARS 0]})]) (= scope= flags=0 words=[] bindings=[('result', {[LIT_CHARS 0]})]) (FunctionDef find_files [] (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_ESCAPED_CHAR "\\)"]} {[LIT_CHARS -prune]} {[\ 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_ESCAPED_CHAR "\\)"]} ) ) (If (DBracket {B2 BINARY_INT_EQ {[VarSub #]} {[LIT_CHARS 0]}}) (= scope= flags=0 words=[] bindings=[('versioned_api_files', {[ComSub (Pipeline (Com {[LIT_CHARS find_files]}) (Com {[LIT_CHARS egrep]} {[DQ [LIT_CHARS "pkg/.[^/]*/((v.[^/]*)|unversioned)/types"][\ LIT_ESCAPED_CHAR "\\."][LIT_CHARS go]]}) )]})]) (ElseTrue) (= scope= flags=0 words=[] bindings=[('versioned_api_files', {[DQ [VarSub *]]})]) ) (For file [{[VarSub versioned_api_files]}]) (List (AndOr OP_OR_IF (Com {[VarSub genswaggertypedocs]} {[LIT_CHARS -v]} {[LIT_CHARS -s]} {[DQ [VarSub file]]} {[LIT_CHARS -f]} {[LIT_CHARS -]} ) (= scope= flags=0 words=[] bindings=[('gen_swagger_result', {[VarSub ?]})]) ) (If (DBracket {B2 BINARY_INT_NE {[DQ [VarSub gen_swagger_result]]} {[DQ [LIT_CHARS 0]]}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "API file: "][VarSub file][LIT_CHARS " is missing: "][VarSub gen_swagger_result][LIT_CHARS " descriptions"]]} ) (= scope= flags=0 words=[] bindings=[('result', {[LIT_CHARS 1]})]) ) ) (If (Pipeline (Com {[LIT_CHARS grep]} {[LIT_CHARS json] [LIT_OTHER ":"]} {[DQ [VarSub file]]} ) (Com {[LIT_CHARS grep]} {[LIT_CHARS -v]} {[LIT_CHARS //]} ) (Com {[LIT_CHARS grep]} {[LIT_CHARS description] [LIT_OTHER ":"]} ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "API file: "][VarSub file][LIT_CHARS " should not contain descriptions in struct tags"]]} ) (= scope= flags=0 words=[] bindings=[('result', {[LIT_CHARS 1]})]) ) ) (If (Pipeline (Com {[LIT_CHARS grep]} {[LIT_CHARS json] [LIT_OTHER ":"]} {[DQ [VarSub file]]} ) (Com {[LIT_CHARS grep]} {[LIT_CHARS -Ee]} {[DQ [LIT_CHARS ",[[:space:]]+omitempty|omitempty[[:space:]]+"]]} ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "API file: "][VarSub file][LIT_CHARS " should not contain leading or trailing spaces for omitempty directive"]]} ) (= scope= flags=0 words=[] bindings=[('result', {[LIT_CHARS 1]})]) ) ) ) ) (= scope= flags=0 words=[] bindings=[('internal_types_files', {[DQ [VarSub KUBE_ROOT][LIT_CHARS "/pkg/api/types.go "][VarSub KUBE_ROOT][LIT_CHARS /pkg/apis/extensions/types.go]]})]) (For internal_types_file [{[VarSub internal_types_files]}]) (List (If (DBracket {B! {B1 UNARY_FILE_e {[VarSub internal_types_file]}}}) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Internal types file "][VarSub internal_types_file][LIT_CHARS " does not exist"]]} ) (= scope= flags=0 words=[] bindings=[('result', {[LIT_CHARS 1]})]) (Com {[LIT_CHARS continue]} ) ) ) (If (Pipeline (Com {[LIT_CHARS grep]} {[LIT_CHARS json] [LIT_OTHER ":"]} {[DQ [VarSub internal_types_file]]} ) (Com {[LIT_CHARS grep]} {[LIT_CHARS -v]} {[LIT_CHARS //]} ) (Com {[LIT_CHARS grep]} {[LIT_CHARS description] [LIT_OTHER ":"]} ) ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Internal API types should not contain descriptions"]]} ) (= scope= flags=0 words=[] bindings=[('result', {[LIT_CHARS 1]})]) ) ) ) ) (Com {[LIT_CHARS exit]} {[VarSub result]} ) )