(List (= scope= flags=0 words=[] bindings=[('PKG', {[LIT_CHARS google.golang.org/appengine]})]) (FunctionDef die [] (List (Com {[LIT_CHARS echo]} {[VarSub *]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (For tool [{[LIT_CHARS go]}, {[LIT_CHARS protoc]}, {[LIT_CHARS protoc-gen-go]}]) (List (AndOr OP_OR_IF (= scope= flags=0 words=[] bindings=[('q', {[ComSub (Com {[LIT_CHARS which]} {[VarSub tool]})]})]) (Com {[LIT_CHARS die]} {[DQ [LIT_CHARS "didn't find "][VarSub tool]]} ) ) (Com {[LIT_CHARS echo]} {[DQ [VarSub tool][LIT_CHARS ": "][VarSub q]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) ) ) (Com {[LIT_CHARS echo]} {[LIT_CHARS -n]} {[DQ [LIT_CHARS "finding package dir... "]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (= scope= flags=0 words=[] bindings=[('pkgdir', {[ComSub (Com {[LIT_CHARS go]} {[LIT_CHARS list]} {[LIT_CHARS -f]} {[SQ ]} {[VarSub PKG]})]})]) (Com {[LIT_CHARS echo]} {[VarSub pkgdir]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (= scope= flags=0 words=[] bindings=[('base', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub pkgdir]}) (Com {[LIT_CHARS sed]} {[DQ [LIT_CHARS "s,/"][VarSub PKG][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS ",,"]]}) )]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "base: "][VarSub base]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS cd]} {[VarSub base]} ) (For dir [{[ComSub (Pipeline (Com {[LIT_CHARS find]} {[VarSub PKG] [LIT_CHARS /internal]} {[LIT_CHARS -name]} {[SQ ]}) (Com {[LIT_CHARS xargs]} {[LIT_CHARS dirname]}) (Com {[LIT_CHARS sort]}) (Com {[LIT_CHARS uniq]}) )]}]) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "* "][VarSub dir]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS protoc]} {[LIT_CHARS --go_out] [LIT_DBRACKET_LIKE "="] [LIT_CHARS .]} {[VarSub dir] [LIT_CHARS /] [LIT_OTHER "*"] [LIT_CHARS .proto]} ) ) ) (For f [{[ComSub (Com {[LIT_CHARS find]} {[VarSub PKG] [LIT_CHARS /internal]} {[LIT_CHARS -name]} {[SQ ]})]}]) (Com {[LIT_CHARS sed]} {[LIT_CHARS -i]} {[SQ ]} {[VarSub f]} ) ) )