(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: (condition.Shell commands: [ (C {<test>} {<Id.KW_Bang '!'>} {<-f>} {(DQ ($ Id.VSub_DollarName '$h'))}) ] ) action: [(C {<Id.Lit_Colon ':'>} {<did>} {<not>} {<match>})] spids: [56 69] ) (if_arm cond: (condition.Shell commands: [ (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 <'^Last updated '>)} {(DQ ($ Id.VSub_DollarName '$T') <'/'> ($ Id.VSub_DollarName '$h'))} {(DQ ($ Id.VSub_DollarName '$h'))} ) ] ) ] ) action: [(command.Sentence child:(C {<Id.Lit_Colon ':'>}) terminator:<Id.Op_Semi _>)] 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 op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (C {<rm>} {<-f>} {(DQ ($ Id.VSub_DollarName '$T') <'/'> ($ Id.VSub_DollarName '$h'))}) (C {<mkdir>} {<-p>} { (command_sub left_token: <Id.Left_DollarParen '$('> child: (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: <Id.Left_DollarParen '$('> child: (command.Pipeline children: [ (C {<echo>} {(DQ ($ Id.VSub_DollarName '$T') <'/'>)}) (C {<sed>} {<-e>} {(SQ <'s|.|.|g'>)}) ] 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: <Id.Left_DollarParen '$('> child: (C {<expr>} {(DQ ($ Id.VSub_DollarName '$th'))} {<Id.Lit_Colon ':'>} {(DQ ($ Id.VSub_DollarName '$strip_leading')) (SQ <'\\(.*\\)'>)} ) ) } 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:<Id.ControlFlow_Continue continue>)] spids: [292 299 303 -1] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {<-f>} {(DQ ($ Id.VSub_DollarName '$h'))}) (command.ControlFlow token:<Id.ControlFlow_Continue continue>) ] ) (command.Simple words: [{<echo>} {(DQ <'# rm -f '> ($ Id.VSub_DollarName '$th'))}] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] do_fork: T ) (C {<rm>} {<-f>} {(DQ ($ Id.VSub_DollarName '$th'))}) ] ) ) (C {<ln>} {<-sf>} {<git.html>} {(DQ ($ Id.VSub_DollarName '$T') <'/index.html'>)}) ] )