(List (If (Com {[LIT_CHARS test]} {[VarSub #]} {[LIT_CHARS -lt]} {[LIT_CHARS 4]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Usage: "][VarSub 0][LIT_CHARS " "]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 2]} ) ) ) (Case to_match={[DQ [VarSub 1]]}, pat_word_list=[[{[LIT_CHARS /] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"]}]] (= scope= flags=0 words=[] bindings=[('disttree', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('disttree', {[ComSub (Com {[LIT_CHARS pwd]})] [LIT_CHARS /] [VarSub 1]})]) ) (Case to_match={[DQ [VarSub 2]]}, pat_word_list=[[{[LIT_CHARS /] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"]}]] (= scope= flags=0 words=[] bindings=[('sdir_top', {[VarSub 2]})]) (= scope= flags=0 words=[] bindings=[('sdir_top', {[ComSub (Com {[LIT_CHARS pwd]})] [LIT_CHARS /] [VarSub 2]})]) ) (Case to_match={[DQ [VarSub 3]]}, pat_word_list=[[{[LIT_CHARS /] [LIT_OTHER "*"]}], [{[LIT_OTHER "*"]}]] (= scope= flags=0 words=[] bindings=[('dir_top', {[VarSub 3]})]) (= scope= flags=0 words=[] bindings=[('dir_top', {[ComSub (Com {[LIT_CHARS pwd]})] [LIT_CHARS /] [VarSub 3]})]) ) (= scope= flags=0 words=[] bindings=[('type', {[VarSub 4]})]) (Com {[LIT_CHARS shift]} {[LIT_CHARS 4]} ) (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[VarSub disttree]} ) (= scope= flags=0 words=[] bindings=[('sed_separate', {[SQ ]})]) (= scope= flags=0 words=[] bindings=[('filelist', {[LIT_CHARS filelist] [VarSub $]})]) (Com {[LIT_CHARS trap]} {[SQ ]} {[LIT_CHARS 1]} {[LIT_CHARS 2]} {[LIT_CHARS 15]} ) (Subshell (List (Com {[LIT_CHARS cd]} {[VarSub sdir_top]} ) (Com {[LIT_CHARS find]} {[LIT_CHARS .]} {[LIT_CHARS -name]} {[LIT_CHARS .git]} {[LIT_CHARS -prune]} {[LIT_CHARS -o]} {[LIT_CHARS -name]} {[SQ ]} {[LIT_CHARS -prune]} {[LIT_CHARS -o]} {[LIT_CHARS -name]} {[LIT_CHARS .distfiles]} {[LIT_CHARS -print]} ) ) ) (Subshell (While (Com {[LIT_CHARS read]} {[LIT_CHARS dfn]} ) (List (= scope= flags=0 words=[] bindings=[('subdir', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[VarSub dfn]}) (Com {[LIT_CHARS sed]} {[SQ ]}) )]})]) (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Processing directory "][VarSub subdir][LIT_CHARS ...]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS eval]} {[DQ [LIT_CHARS DISTFILES_][VarSub type][LIT_CHARS "= DISTFILES_NOT="]]} ) (Com {[LIT_CHARS .]} {[VarSub sdir_top] [LIT_CHARS /] [VarSub dfn]} ) (Com {[LIT_CHARS eval]} {[DQ [LIT_CHARS "distfiles="][\ LIT_ESCAPED_CHAR "\\$"][LIT_CHARS DISTFILES_][VarSub type]]} ) (If (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub type]} {[LIT_DBRACKET_LIKE "="]} {[LIT_CHARS SRC]} {[LIT_DBRACKET_LIKE "]"]} ) (= scope= flags=0 words=[] bindings=[('distfiles', {[DQ [VarSub distfiles][LIT_CHARS "\n"][LIT_CHARS " "][ComSub (List (Com {[LIT_CHARS cd]} {[VarSub sdir_top] [LIT_CHARS /] [VarSub subdir]}) (Pipeline (Com {[LIT_CHARS git]} {[LIT_CHARS ls-files]}) (Com {[LIT_CHARS grep]} {[LIT_CHARS -v]} {[LIT_CHARS /]}) ) )]]})]) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub distfiles]]} ) (List (= scope= flags=0 words=[] bindings=[('cmds', {[ComSub (Pipeline (Com {[LIT_CHARS echo]} {[DQ [VarSub distfiles]]}) (Com {[LIT_CHARS sed]} {[LIT_CHARS -e]} {[DQ [VarSub sed_separate]]}) )]})]) (Com {[LIT_CHARS eval]} {[DQ [VarSub cmds]]} ) (If (AndOr OP_AND_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -n]} {[DQ [VarSub deplist]]} ) (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[VarSub dir_top] [LIT_CHARS /] [VarSub subdir] [LIT_CHARS /Makefile]} ) ) (AndOr OP_OR_IF (Subshell (List (Com {[LIT_CHARS trap]} {[SQ ]} {[LIT_CHARS 1]} {[LIT_CHARS 2]} {[LIT_CHARS 15]} ) (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[VarSub dir_top] [LIT_CHARS /] [VarSub subdir]} ) (Com {[DQ [VarSub @]]} {[VarSub deplist]} ) ) ) ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (AndOr OP_OR_IF (Com {[VarSub sdir_top] [LIT_CHARS /mkinstalldirs]} {[VarSub disttree] [LIT_CHARS /] [VarSub subdir]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) (For f [{[VarSub deplist]}, {[ComSub (AndOr OP_OR_IF (Com {[LIT_CHARS test]} {[LIT_CHARS -z]} {[DQ [VarSub globlist]]}) (Subshell (AndOr OP_AND_IF (Com {[LIT_CHARS cd]} {[VarSub dir_top] [LIT_CHARS /] [VarSub subdir]}) (Com {[LIT_CHARS eval]} {[DQ [LIT_CHARS "echo "][VarSub globlist]]}) ) ) )]}]) (List (For fnot [{[VarSub DISTFILES_NOT]}]) (If (Com {[LIT_DBRACKET_LIKE "["]} {[VarSub fnot]} {[LIT_DBRACKET_LIKE "="]} {[VarSub f]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS continue]} {[LIT_CHARS 2]} ) ) ) (If (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[VarSub dir_top] [LIT_CHARS /] [VarSub subdir] [LIT_CHARS /] [VarSub f]} ) (AndOr OP_OR_IF (Com {[LIT_CHARS cp]} {[LIT_CHARS -p]} {[VarSub dir_top] [LIT_CHARS /] [VarSub subdir] [LIT_CHARS /] [VarSub f]} {[VarSub disttree] [LIT_CHARS /] [VarSub subdir] [LIT_CHARS /] [VarSub f]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) (Com {[LIT_CHARS test]} {[LIT_CHARS -f]} {[VarSub sdir_top] [LIT_CHARS /] [VarSub subdir] [LIT_CHARS /] [VarSub f]} ) (AndOr OP_OR_IF (Com {[LIT_CHARS cp]} {[LIT_CHARS -p]} {[VarSub sdir_top] [LIT_CHARS /] [VarSub subdir] [LIT_CHARS /] [VarSub f]} {[VarSub disttree] [LIT_CHARS /] [VarSub subdir] [LIT_CHARS /] [VarSub f]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) (ElseTrue) (List (Com {[LIT_CHARS echo]} {[DQ [VarSub 0][LIT_CHARS ": can't find file "][VarSub subdir][LIT_CHARS /][VarSub f]]} < (DescriptorRedirectNode target={[LIT_CHARS 2]} &"> 1), > ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) ) ) ) ) ) ) ) (= scope= flags=0 words=[] bindings=[('status', {[VarSub ?]})]) (Com {[LIT_CHARS rm]} {[LIT_CHARS -f]} {[VarSub filelist]} ) (Com {[LIT_CHARS trap]} {[SQ ]} {[LIT_CHARS 1]} {[LIT_CHARS 2]} {[LIT_CHARS 15]} ) (If (Com {[LIT_CHARS test]} {[VarSub status]} {[LIT_CHARS -ne]} {[LIT_CHARS 0]} ) (List (Com {[LIT_CHARS rm]} {[LIT_CHARS -rf]} {[VarSub disttree]} ) (Com {[LIT_CHARS exit]} {[VarSub status]} ) ) ) (Com {[LIT_CHARS exec]} {[LIT_CHARS chmod]} {[LIT_CHARS -R]} {[LIT_CHARS a] [LIT_OTHER "+"] [LIT_CHARS rX] [LIT_COMMA ","] [LIT_CHARS u] [LIT_OTHER "+"] [LIT_CHARS w] [LIT_COMMA ","] [LIT_CHARS g-s] [LIT_COMMA ","] [LIT_CHARS go-w]} {[VarSub disttree]} ) )