(command.CommandList children: [ (command.ShAssignment pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:T) op:Equal rhs:{(DQ ($ VSub_Number '$1'))})] ) (command.ForEach iter_name: h iter_words: [ {(Lit_Star '*') (.txt)} {(Lit_Star '*') (.html)} {(howto/) (Lit_Star '*') (.txt)} {(howto/) (Lit_Star '*') (.html)} {(technical/) (Lit_Star '*') (.txt)} {(technical/) (Lit_Star '*') (.html)} {(RelNotes/) (Lit_Star '*') (.txt)} {(Lit_Star '*') (.css)} ] do_arg_iter: F body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [(C {(test)} {(KW_Bang '!')} {(-f)} {(DQ ($ VSub_DollarName '$h'))})] action: [(C {(Lit_Other ':')} {(did)} {(not)} {(match)})] ) (if_arm cond: [ (command.AndOr ops: [Op_DAmp] children: [ (C {(test)} {(-f)} {(DQ ($ VSub_DollarName '$T') (/) ($ VSub_DollarName '$h'))}) (C {($ VSub_DollarName '$DIFF')} {(-u)} {(-I) (SQ <'^Last updated '>)} {(DQ ($ VSub_DollarName '$T') (/) ($ VSub_DollarName '$h'))} {(DQ ($ VSub_DollarName '$h'))} ) ] ) ] action: [(command.Sentence child:(C {(Lit_Other ':')}) terminator:<Op_Semi ';'>)] ) ] else_action: [ (command.Simple words: [ {(echo)} { (DQ ('# install ') ($ VSub_DollarName '$h') (' ') ($ VSub_DollarName '$T') (/) ($ VSub_DollarName '$h') ) } ] redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (C {(rm)} {(-f)} {(DQ ($ VSub_DollarName '$T') (/) ($ VSub_DollarName '$h'))}) (C {(mkdir)} {(-p)} { (command_sub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(dirname)} {(DQ ($ VSub_DollarName '$T') (/) ($ VSub_DollarName '$h'))}) ] ) ) } ) (C {(cp)} {(DQ ($ VSub_DollarName '$h'))} {(DQ ($ VSub_DollarName '$T') (/) ($ VSub_DollarName '$h'))} ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:strip_leading) op: Equal rhs: { (command_sub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ VSub_DollarName '$T') (/))}) (C {(sed)} {(-e)} {(SQ <'s|.|.|g'>)}) ] negated: F ) ] ) ) } ) ] ) (command.ForEach iter_name: th iter_words: [ {(DQ ($ VSub_DollarName '$T')) (/) (Lit_Star '*') (.html)} {(DQ ($ VSub_DollarName '$T')) (/) (Lit_Star '*') (.txt)} {(DQ ($ VSub_DollarName '$T')) (/howto/) (Lit_Star '*') (.txt)} {(DQ ($ VSub_DollarName '$T')) (/howto/) (Lit_Star '*') (.html)} {(DQ ($ VSub_DollarName '$T')) (/technical/) (Lit_Star '*') (.txt)} {(DQ ($ VSub_DollarName '$T')) (/technical/) (Lit_Star '*') (.html)} ] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:h) op: Equal rhs: { (command_sub left_token: <Left_DollarParen '$('> command_list: (command.CommandList children: [ (C {(expr)} {(DQ ($ VSub_DollarName '$th'))} {(Lit_Other ':')} {(DQ ($ VSub_DollarName '$strip_leading')) (SQ <'\\(.*\\)'>)} ) ] ) ) } ) ] ) (command.Case to_match: {(DQ ($ VSub_DollarName '$h'))} arms: [ (case_arm pat_list: [{(RelNotes-) (Lit_Star '*') (.txt)} {(index.html)}] action: [(command.ControlFlow token:<ControlFlow_Continue continue>)] ) ] ) (command.AndOr ops: [Op_DAmp] children: [ (C {(test)} {(-f)} {(DQ ($ VSub_DollarName '$h'))}) (command.ControlFlow token:<ControlFlow_Continue continue>) ] ) (command.Simple words: [{(echo)} {(DQ ('# rm -f ') ($ VSub_DollarName '$th'))}] redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (C {(rm)} {(-f)} {(DQ ($ VSub_DollarName '$th'))}) ] ) ) (C {(ln)} {(-sf)} {(git.html)} {(DQ ($ VSub_DollarName '$T') (/index.html))}) ] )