(command.CommandList children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '$#')} {<-ne>} {<1>} {<Id.Lit_RBracket ']'>}) ] ) action: [ (C {<echo>} {(DQ <'Usage: '> ($ Id.VSub_Number '$0') <' <url>'>)}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [4 16] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-z>} {(DQ ($ Id.VSub_DollarName '$HOME'))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<echo>} { (DQ <'Where is your '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'HOME? '> ) } ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [34 46] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {(DQ ($ Id.VSub_DollarName '$HOME'))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<echo>} { (DQ <'Where is your '> (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\$'>) <'HOME ('> ($ Id.VSub_DollarName '$HOME') <') ? '> ) } ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [64 78] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:tmpdir) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$HOME') <'/getpack'> ($ Id.VSub_Dollar '$$')} spids: [98] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:tmpfile) op: assign_op.Equal rhs: {<package>} spids: [103] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:tmpfiletar) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$tmpfile') <.tar>} spids: [106] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:tmpfiletargz) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$tmpfile') <.tar.gz>} spids: [110] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<mkdir>} {<-m>} {<700>} {($ Id.VSub_DollarName '$tmpdir')}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<cd>} {($ Id.VSub_DollarName '$tmpdir')}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (command.Simple words: [{<urlget>} {(DQ ($ Id.VSub_Number '$1'))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$tmpfiletargz')} ) ] do_fork: T ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<gzip>} {<-d>} {($ Id.VSub_DollarName '$tmpfiletargz')}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<tar>} {<xf>} {($ Id.VSub_DollarName '$tmpfiletar')}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [(C {<make>}) (C {<make>} {<install>}) (C {<echo>} {(DQ <Ok.>)})] ) ] )