(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:T) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_Number '$1'))} spids: [4] ) ] ) (command.ForEach iter_name: h iter_words: [ {(Id.Lit_Star '*') (.txt)} {(Id.Lit_Star '*') (.html)} {(howto/) (Id.Lit_Star '*') (.txt)} {(howto/) (Id.Lit_Star '*') (.html)} {(technical/) (Id.Lit_Star '*') (.txt)} {(technical/) (Id.Lit_Star '*') (.html)} {(RelNotes/) (Id.Lit_Star '*') (.txt)} {(Id.Lit_Star '*') (.css)} ] do_arg_iter: F body: (command.DoGroup children: [ (command.If arms: [ (if_arm cond: [(C {(test)} {(Id.KW_Bang '!')} {(-f)} {(DQ ($ Id.VSub_DollarName '$h'))})] action: [(C {(Id.Lit_Other ':')} {(did)} {(not)} {(match)})] spids: [56 69] ) (if_arm cond: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(test)} {(-f)} {(DQ ($ Id.VSub_DollarName '$T') (/) ($ Id.VSub_DollarName '$h'))} ) (C {($ Id.VSub_DollarName '$DIFF')} {(-u)} {(-I) (SQ (Token id:Id.Lit_Chars val:'^Last updated ' span_id:102))} {(DQ ($ Id.VSub_DollarName '$T') (/) ($ Id.VSub_DollarName '$h'))} {(DQ ($ Id.VSub_DollarName '$h'))} ) ] ) ] action: [ (command.Sentence child: (C {(Id.Lit_Other ':')}) terminator: (Token id:Id.Op_Semi val:';' span_id:120) ) ] spids: [81 116] ) ] else_action: [ (command.Simple words: [ {(echo)} { (DQ ('# install ') ($ Id.VSub_DollarName '$h') (' ') ($ Id.VSub_DollarName '$T') (/) ($ Id.VSub_DollarName '$h') ) } ] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:131) fd: -1 arg_word: {(2)} ) ] ) (C {(rm)} {(-f)} {(DQ ($ Id.VSub_DollarName '$T') (/) ($ Id.VSub_DollarName '$h'))}) (C {(mkdir)} {(-p)} { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:159) command_list: (command.CommandList children: [ (C {(dirname)} {(DQ ($ Id.VSub_DollarName '$T') (/) ($ Id.VSub_DollarName '$h'))} ) ] ) ) } ) (C {(cp)} {(DQ ($ Id.VSub_DollarName '$h'))} {(DQ ($ Id.VSub_DollarName '$T') (/) ($ Id.VSub_DollarName '$h'))} ) ] ) ] ) ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:strip_leading) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:188) command_list: (command.CommandList children: [ (command.Pipeline children: [ (C {(echo)} {(DQ ($ Id.VSub_DollarName '$T') (/))}) (C {(sed)} {(-e)} {(SQ (Token id:Id.Lit_Chars val:'s|.|.|g' span_id:203))}) ] negated: F ) ] ) ) } spids: [187] ) ] ) (command.ForEach iter_name: th iter_words: [ {(DQ ($ Id.VSub_DollarName '$T')) (/) (Id.Lit_Star '*') (.html)} {(DQ ($ Id.VSub_DollarName '$T')) (/) (Id.Lit_Star '*') (.txt)} {(DQ ($ Id.VSub_DollarName '$T')) (/howto/) (Id.Lit_Star '*') (.txt)} {(DQ ($ Id.VSub_DollarName '$T')) (/howto/) (Id.Lit_Star '*') (.html)} {(DQ ($ Id.VSub_DollarName '$T')) (/technical/) (Id.Lit_Star '*') (.txt)} {(DQ ($ Id.VSub_DollarName '$T')) (/technical/) (Id.Lit_Star '*') (.html)} ] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:h) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:265) command_list: (command.CommandList children: [ (C {(expr)} {(DQ ($ Id.VSub_DollarName '$th'))} {(Id.Lit_Other ':')} {(DQ ($ Id.VSub_DollarName '$strip_leading')) (SQ (Token id:Id.Lit_Chars val:'\\(.*\\)' span_id:278)) } ) ] ) ) } spids: [264] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$h'))} arms: [ (case_arm pat_list: [{(RelNotes-) (Id.Lit_Star '*') (.txt)} {(index.html)}] action: [ (command.ControlFlow token: (Token id:Id.ControlFlow_Continue val:continue span_id:301) ) ] spids: [292 299 303 -1] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {(test)} {(-f)} {(DQ ($ Id.VSub_DollarName '$h'))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Continue val:continue span_id:319) ) ] ) (command.Simple words: [{(echo)} {(DQ ('# rm -f ') ($ Id.VSub_DollarName '$th'))}] redirects: [ (redir.Redir op: (Token id:Id.Redir_GreatAnd val:'>&' span_id:324) fd: -1 arg_word: {(2)} ) ] ) (C {(rm)} {(-f)} {(DQ ($ Id.VSub_DollarName '$th'))}) ] ) ) (C {(ln)} {(-sf)} {(git.html)} {(DQ ($ Id.VSub_DollarName '$T') (/index.html))}) ] )