(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TAG) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<uname>} {<-p>})) <-> (command_sub left_token:<Id.Left_Backtick '`'> child:(C {<uname>} {<-r>})) <.> (command_sub left_token:<Id.Left_Backtick '`'> child:(C {<uname>} {<-v>})) } spids: [4] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PACKDIR) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<uname>} {<-p>})) <'/'> (command_sub left_token:<Id.Left_Backtick '`'> child:(C {<uname>} {<-r>})) <.> (command_sub left_token:<Id.Left_Backtick '`'> child:(C {<uname>} {<-v>})) } spids: [29] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RC) op: assign_op.Equal rhs: {<'/usr/etc/rc.package'>} spids: [54] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CDDIR) op: assign_op.Equal rhs: {<PACKAGES>} spids: [57] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CDMP) op: assign_op.Equal rhs: {<'/mnt'>} spids: [60] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CDPACK) op: assign_op.Equal rhs: {(${ Id.VSub_Name CDMP) <'/install/packages'>} spids: [63] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:CDSRC) op: assign_op.Equal rhs: {(${ Id.VSub_Name CDMP) <'/install/package-sources'>} spids: [69] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SRC) op: assign_op.Equal rhs: {<'/usr/bigsrc'>} spids: [75] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LISTFILE) op: assign_op.Equal rhs: {<'/etc/packages-'> ($ Id.VSub_DollarName '$TAG')} spids: [78] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LISTURL) op: assign_op.Equal rhs: {<http> <Id.Lit_Colon ':'> <'//www.minix3.org/packages/'> ($ Id.VSub_DollarName '$PACKDIR') <'/List'> } spids: [82] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TMPDIR) op: assign_op.Equal rhs: {<'/usr/tmp/packages'>} spids: [89] ) ] ) (C {<mkdir>} {<-p>} {($ Id.VSub_DollarName '$TMPDIR')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:URL1) op: assign_op.Equal rhs: {<http> <Id.Lit_Colon ':'> <'//www.minix3.org/packages/'> ($ Id.VSub_DollarName '$PACKDIR')} spids: [98] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:SRCURL1) op: assign_op.Equal rhs: {<http> <Id.Lit_Colon ':'> <'//www.minix3.org/software'>} spids: [104] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PATH) op: assign_op.Equal rhs: {<'/bin'> <Id.Lit_Colon ':'> <'/sbin'> <Id.Lit_Colon ':'> <'/usr/bin'> <Id.Lit_Colon ':'> <'/usr/sbin'> } spids: [109] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pack) op: assign_op.Equal rhs: {(DQ )} spids: [118] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cdpackages) op: assign_op.Equal rhs: {(DQ )} spids: [122] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:netpackages) op: assign_op.Equal rhs: {(DQ )} spids: [126] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cdmounted) op: assign_op.Equal rhs: {(DQ )} spids: [130] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {(DQ ($ Id.VSub_DollarName '$PAGER'))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PAGER) op: assign_op.Equal rhs: {<more>} spids: [149] ) ] ) ] spids: [135 147] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_Number '$1'))} {<Id.Lit_Equals '='>} {<-y>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:YESMODE) op: assign_op.Equal rhs: {<1>} spids: [171] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PAGER) op: assign_op.Equal rhs: {<cat>} spids: [175] ) ] ) ] spids: [155 169] ) ] ) (command.ShFunction name: myread body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$YESMODE'))} {<Id.Lit_RBracket ']'>} ) ] ) action: [(C {<echo>} {(DQ <all>)})] spids: [188 199] ) ] else_action: [(C {<read>} {<ans>}) (C {<echo>} {($ Id.VSub_DollarName '$ans')})] ) ] ) ) (command.ShFunction name: myexit body: (BraceGroup children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$cdmounted'))} {<-a>} {<-n>} {(DQ ($ Id.VSub_DollarName '$pack'))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.AndOr ops: [Id.Op_DPipe] children: [(C {<umount>} {($ Id.VSub_DollarName '$pack')}) (C {<true>})] ) ] spids: [232 253] ) ] ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {($ Id.VSub_Number '$1')} ) ] ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Pipeline children: [ (command.Simple words: [{<bunzip2>} {<--help>}] redirects: [ (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) (command.Simple words: [{<grep>} {<usage>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) ] negated: F ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BUNZIP2) op: assign_op.Equal rhs: {<bunzip2>} spids: [299] ) ] ) ] spids: [279 297] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BUNZIP2) op: assign_op.Equal rhs: {<smallbunzip2>} spids: [305] ) ] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Pipeline children: [ (C {<id>}) (command.Simple words: [{<fgrep>} {(DQ <'uid=0('>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) ] negated: F ) ] ) action: [(C {<Id.Lit_Colon ':'>})] spids: [311 326] ) ] else_action: [ (C {<echo>} {(DQ <'Please run '> ($ Id.VSub_Number '$0') <' as root.'>)}) (C {<myexit>} {<1>}) ] ) (C {<chmod>} {<700>} {($ Id.VSub_DollarName '$TMPDIR')}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ ($ Id.VSub_DollarName '$RC'))} {<Id.Lit_RBracket ']'>} ) ] ) action: [(C {<.>} {(DQ ($ Id.VSub_DollarName '$RC'))})] spids: [355 367] ) ] ) (C {<cd>} {<'/'>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {(DQ ($ Id.VSub_DollarName '$SRC'))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.AndOr ops: [Id.Op_DPipe] children: [(C {<mkdir>} {($ Id.VSub_DollarName '$SRC')}) (C {<myexit>} {<1>})] ) ] spids: [386 400] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$cddrive'))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pack) op: assign_op.Equal rhs: {(${ Id.VSub_Name cddrive) <p2>} spids: [432] ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{<umount>} {($ Id.VSub_DollarName '$pack')}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) (redir op: <Id.Redir_GreatAnd '2>&'> loc: (redir_loc.Fd fd:2) arg: {<1>} ) ] do_fork: T ) (C {<true>}) ] ) (C {<echo>} {(DQ <'Checking for CD in '> ($ Id.VSub_DollarName '$pack') <.>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Simple words: [ {<mount>} {<-r>} {($ Id.VSub_DollarName '$pack')} {($ Id.VSub_DollarName '$CDMP')} ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:fn) op: assign_op.Equal rhs: {(DQ ($ Id.VSub_DollarName '$CDPACK') <'/List'>)} spids: [479] ) ] ) (C {<echo>} {(DQ <Found.>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cdmounted) op: assign_op.Equal rhs: {<1>} spids: [493] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cdpackages) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$fn')} spids: [497] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {($ Id.VSub_DollarName '$cdpackages')} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cdpackages) op: assign_op.Equal rhs: {(DQ )} spids: [516] ) ] ) (C {<echo>} { (DQ <'No package list found on CD in '> ($ Id.VSub_DollarName '$fn') <.> ) } ) ] spids: [501 514] ) ] ) ] spids: [463 477] ) ] else_action: [(C {<echo>} {(DQ <'Not found.'>)})] ) ] spids: [418 430] ) ] else_action: [ (C {<echo>} { (DQ <'Don\'t know where the install CD is. You can set it in '> ($ Id.VSub_DollarName '$RC') <.> ) } ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:TMPF) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$TMPDIR') <'/.list.'> ($ Id.VSub_Dollar '$$')} spids: [557] ) ] ) (C {<rm>} {<-f>} {($ Id.VSub_DollarName '$TMPF')}) (C {<rm>} {<-f>} {($ Id.VSub_DollarName '$TMPDIR') <'/.'> <Id.Lit_Star '*'>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Subshell child: (command.Simple words: [{<Id.Lit_Colon ':'>}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {<'/dev/tcp'>} ) ] do_fork: T ) redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] ) ] ) action: [ (C {<echo>} {<-n>} {(DQ <'Update package list from network? (Y/n) '>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:y) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<myread>}))} spids: [608] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$y'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<n>} {<-a>} {(DQ ($ Id.VSub_DollarName '$y'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<N>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<echo>} {(DQ <'Fetching package list from '> ($ Id.VSub_DollarName '$LISTURL') <.>)} ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DPipe] children: [ (command.Simple words: [{<urlget>} {($ Id.VSub_DollarName '$LISTURL')}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$TMPF')} ) ] do_fork: T ) (C {<mv>} {($ Id.VSub_DollarName '$TMPF')} {($ Id.VSub_DollarName '$LISTFILE')}) (C {<echo>} {(DQ <'Update not successful.'>)}) ] ) ] spids: [616 643] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:netpackages) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$LISTFILE')} spids: [681] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {(DQ ($ Id.VSub_DollarName '$netpackages'))} {<-o>} {<Id.KW_Bang '!'>} { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (command.Simple words: [{<cat>} {(DQ ($ Id.VSub_DollarName '$netpackages'))}] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (C {<wc>} {<-l>}) (C {<awk>} {(SQ <'{ print $1 }'>)}) ] negated: F ) ) } {<-gt>} {<1>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:netpackages) op: assign_op.Equal rhs: {(DQ )} spids: [737] ) ] ) ] spids: [685 735] ) ] ) ] spids: [583 597] ) ] else_action: [(C {<echo>} {(DQ <'No working network detected.'>)})] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-n>} {(DQ ($ Id.VSub_DollarName '$netpackages'))} {<-a>} {<Id.KW_Bang '!'>} {<-n>} {(DQ ($ Id.VSub_DollarName '$cdpackages'))} {<Id.Lit_RBracket ']'>} ) ] ) action: [(C {<echo>} {(DQ <'No packages found.'>)}) (C {<myexit>} {<1>})] spids: [758 782] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$netpackages'))} {<-a>} {<-n>} {(DQ ($ Id.VSub_DollarName '$cdpackages'))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<echo>} {<-n>} {(DQ <'Would you like to install from (C)D or (N)etwork? [C] '>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:whichsrc) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<myread>}))} spids: [832] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$whichsrc'))} {<Id.Lit_Equals '='>} {<N>} {<-o>} {(DQ ($ Id.VSub_DollarName '$whichsrc'))} {<Id.Lit_Equals '='>} {<n>} {<Id.Lit_RBracket ']'>} ) ] ) action: [(C {<unset>} {<cdpackages>})] spids: [840 865] ) ] else_action: [(C {<unset>} {<netpackages>})] ) ] spids: [801 821] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$netpackages'))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:source) op: assign_op.Equal rhs: {<net>} spids: [898] ) ] ) ] spids: [884 896] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:source) op: assign_op.Equal rhs: {<cdrom>} spids: [903] ) ] ) ] ) (command.ShAssignment pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:cont) op:assign_op.Equal rhs:{<y>} spids:[909])] ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$cont'))} {<Id.Lit_Equals '='>} {<y>} {<Id.Lit_RBracket ']'>} ) ] ) body: (command.DoGroup children: [ (C {<cd>} {($ Id.VSub_DollarName '$TMPDIR')}) (C {<echo>} {(DQ )}) (C {<echo>} { (DQ <'Showing you a list of packages using '> ($ Id.VSub_DollarName '$PAGER') <'. Press q when'> ) } ) (C {<echo>} {(DQ <'you want to leave the list.'>)}) (C {<echo>} {<-n>} {(DQ <'Press RETURN to continue..'>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:xyzzy) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<myread>}))} spids: [964] ) ] ) (C {<echo>} {(DQ <'Package list:'>)}) (command.Subshell child: (command.CommandList children: [ (C {<echo>} {(DQ <'No.|Package|Description'>)}) (command.Pipeline children: [ (command.Subshell child: (command.CommandList children: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ ($ Id.VSub_DollarName '$netpackages'))} {<-a>} {(DQ ($ Id.VSub_DollarName '$source'))} {<Id.Lit_Equals '='>} {<net>} {<Id.Lit_RBracket ']'>} ) ] ) action: [(C {<cat>} {($ Id.VSub_DollarName '$netpackages')})] spids: [991 1014] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ ($ Id.VSub_DollarName '$cdpackages'))} {<-a>} {(DQ ($ Id.VSub_DollarName '$source'))} {<Id.Lit_Equals '='>} {<cdrom>} {<Id.Lit_RBracket ']'>} ) ] ) action: [(C {<cat>} {($ Id.VSub_DollarName '$cdpackages')})] spids: [1024 1047] ) ] ) ] ) ) (C {<sort>} {<-f>} {<-t> (SQ <'|'>)} {<Id.Lit_Other '+'> <0>}) (C {<awk>} {(SQ <'{ n++; printf "%d|%s\\n", n, $0 }'>)}) ] negated: F ) ] ) redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$TMPF')} ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:highest) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<wc>} {<-l>} {($ Id.VSub_DollarName '$TMPF')}) (C {<awk>} {(SQ <'{ print $1 - 1 }'>)}) ] negated: F ) ) ) } spids: [1089] ) ] ) (command.Pipeline children: [ (command.Simple words: [{<awk>} {<-F> (SQ <'|'>)} {(SQ <'{ printf "%3s %-15s %s\\n", $1, $2, $3 }'>)}] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {($ Id.VSub_DollarName '$TMPF')} ) ] do_fork: T ) (C {($ Id.VSub_DollarName '$PAGER')}) ] negated: F ) (C {<echo>} {(DQ <'Format examples: \'3\', \'3,6\', \'3-9\', \'3-9,11-15\', \'all\''>)}) (C {<echo>} {<-n>} {(DQ <'Package(s) to install (RETURN or q to exit)? '>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:packnolist) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<myread>}))} spids: [1146] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$packnolist'))} {<Id.Lit_Equals '='>} {(DQ )} {<-o>} {(DQ ($ Id.VSub_DollarName '$packnolist'))} {<Id.Lit_Equals '='>} {(DQ <q>)} {<Id.Lit_RBracket ']'>} ) ] ) action: [(C {<myexit>} {<0>})] spids: [1154 1182] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$packnolist'))} {<Id.Lit_Equals '='>} {<all>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:packnolist) op: assign_op.Equal rhs: {<1-> ($ Id.VSub_DollarName '$highest')} spids: [1209] ) ] ) ] spids: [1192 1207] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:IFS) op: assign_op.Equal rhs: {(SQ <','>)} spids: [1217] ) ] ) (C {<set>} {($ Id.VSub_DollarName '$packnolist')}) (C {<echo>} {<-n>} {(DQ <'Get source(s) too? (y/N) '>)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:getsources) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<myread>}))} spids: [1237] ) ] ) (command.ForEach iter_name: packrange iter_words: [{($ Id.VSub_DollarName '$packnolist')}] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:IFS) op: assign_op.Equal rhs: {(SQ <->)} spids: [1261] ) ] ) (C {<set>} {($ Id.VSub_DollarName '$packrange')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:start) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1272] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '$#')} {<Id.Lit_Equals '='>} {<2>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:end) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [1291] ) ] ) ] spids: [1276 1289] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:end) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [1297] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:IFS) op: assign_op.Equal rhs: {(SQ <' '>)} spids: [1304] ) ] ) (command.ForEach iter_name: packno iter_words: [ { (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Simple words: [ {<awk>} { (DQ <'BEGIN { for(i='> ($ Id.VSub_DollarName '$start') <'; i<='> ($ Id.VSub_DollarName '$end') <'; i++) { printf '> ) <Id.Lit_Other '%'> <d> } {(DQ <', i } }'>)} ] redirects: [ (redir op: <Id.Redir_Less '<'> loc: (redir_loc.Fd fd:0) arg: {<'/dev/null'>} ) ] do_fork: T ) ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ok) op: assign_op.Equal rhs: {<y>} spids: [1351] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:pat) op: assign_op.Equal rhs: {(DQ <'^'> ($ Id.VSub_DollarName '$packno') <'|'>)} spids: [1355] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<grep>} {<-c>} {($ Id.VSub_DollarName '$pat')} {($ Id.VSub_DollarName '$TMPF')} ) ) ) } {<-ne>} {<1>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$packno'))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<echo>} { (DQ ($ Id.VSub_DollarName '$packno') <': Wrong package number.'> ) } ) ] spids: [1390 1401] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ok) op: assign_op.Equal rhs: {<n>} spids: [1414] ) ] ) ] spids: [1363 1388] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$ok')} {<Id.Lit_Equals '='>} {<y>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:packagename) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_Backtick '`'> child: (command.Pipeline children: [ (C {<grep>} {($ Id.VSub_DollarName '$pat')} {($ Id.VSub_DollarName '$TMPF')} ) (C {<awk>} {<-F> (SQ <'|'>)} {(SQ <'{ print $2 }'>)} ) ] negated: F ) ) ) } spids: [1438] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:file) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$packagename') <.tar.bz2>} spids: [1465] ) ] ) (C {<echo>} {(DQ )}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-f>} {($ Id.VSub_DollarName '$file')} {<-a>} {<Id.KW_Bang '!'>} {(DQ ($ Id.VSub_DollarName '$YESMODE'))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<echo>} { (DQ <'Skipping '> ($ Id.VSub_DollarName '$file') <' - it\'s already in '> ($ Id.VSub_DollarName '$TMPDIR') <.> ) } ) (C {<echo>} { (DQ < 'Remove that file if you want to re-retrieve and install this package.' > ) } ) ] spids: [1478 1497] ) ] else_action: [ (command.Case to_match: {($ Id.VSub_DollarName '$source')} arms: [ (case_arm pat_list: [{<net> <Id.Lit_Star '*'>}] action: [ (C {<echo>} { (DQ <'Retrieving '> ($ Id.VSub_DollarName '$packno') <' ('> ($ Id.VSub_DollarName '$packagename') <') from primary location into '> ($ Id.VSub_DollarName '$TMPDIR') <' ..'> ) } ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:srcurl) op: assign_op.Equal rhs: {(DQ )} spids: [1544] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Simple words: [ {<urlget>} {($ Id.VSub_DollarName '$URL1') <'/'> ($ Id.VSub_DollarName '$file') } ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$file')} ) ] do_fork: T ) ] ) action: [ (C {<echo>} {(DQ <'Retrieved ok. Installing ..'>)} ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<packit>} {($ Id.VSub_DollarName '$file')} ) (C {<echo>} {<Installed>} {<ok.>}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:srcurl) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$SRCURL1') <'/'> ($ Id.VSub_DollarName '$file') } spids: [1583] ) ] ) ] spids: [1549 1561] ) ] else_action: [ (C {<echo>} {(DQ <'Retrieval failed.'>)}) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} { (DQ ($ Id.VSub_DollarName '$getsources') ) } {<Id.Lit_Equals '='>} {<y>} {<-o>} {(DQ ($ Id.VSub_DollarName '$getsources'))} {<Id.Lit_Equals '='>} {<Y>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.Subshell child: (command.CommandList children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<cd>} {($ Id.VSub_DollarName '$SRC')} ) (C {<myexit>} {<2>}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name: srcfile ) op: assign_op.Equal rhs: { (${ Id.VSub_Name packagename ) <-src.tar.bz2> } spids: [1641] ) ] ) (C {<echo>} { (DQ <'Retrieving source from '> ($ Id.VSub_DollarName '$srcurl') <' ..'> ) } ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [ {<urlget>} { ($ Id.VSub_DollarName '$srcurl' ) } ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: { ($ Id.VSub_DollarName '$srcfile' ) } ) ] do_fork: T ) (C {<myexit>} {<3>}) ] ) (C {<echo>} { (DQ <'Source retrieved in '> ($ Id.VSub_DollarName '$SRC') <'/'> ($ Id.VSub_DollarName '$srcfile') <.> ) } ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Pipeline children: [ (C { ($ Id.VSub_DollarName '$BUNZIP2' ) } {<-dc>} {($ Id.VSub_DollarName '$srcfile')} ) (command.Simple words: [{<tar>} {<xf>} {<->}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd: 1 ) arg: {<'/dev/null'>} ) ] do_fork: T ) ] negated: F ) (C {<myexit>} {<3>}) ] ) (C {<echo>} { (DQ <'Source unpacked in '> ($ Id.VSub_DollarName '$SRC') <.> ) } ) ] ) ) ] spids: [1601 1626] ) ] ) ] spids: [1527 1529 1721 -1] ) (case_arm pat_list: [{<cdrom> <Id.Lit_Star '*'>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-f>} {($ Id.VSub_DollarName '$CDPACK') <'/'> ($ Id.VSub_DollarName '$file') } {<Id.Lit_RBracket ']'>} ) ] ) action: [ (C {<echo>} { (DQ <'Installing from '> ($ Id.VSub_DollarName '$CDPACK') <'/'> ($ Id.VSub_DollarName '$file') <' ..'> ) } ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<packit>} {($ Id.VSub_DollarName '$CDPACK') <'/'> ($ Id.VSub_DollarName '$file') } ) (C {<echo>} {<Installed>} {<ok.>}) ] ) ] spids: [1729 1742] ) ] else_action: [ (C {<echo>} { (DQ ($ Id.VSub_DollarName '$CDPACK') <'/'> ($ Id.VSub_DollarName '$file') <' not found.'> ) } ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:srcfile) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$CDSRC') <'/'> (${ Id.VSub_Name packagename) <.tar.bz2> } spids: [1785] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-f>} {($ Id.VSub_DollarName '$srcfile')} {<-a>} {(DQ ($ Id.VSub_DollarName '$getsources'))} {<Id.Lit_Equals '='>} {<y>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.Subshell child: (command.CommandList children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<cd>} {($ Id.VSub_DollarName '$SRC')} ) (C {<myexit>} {<2>}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Pipeline children: [ (C { ($ Id.VSub_DollarName '$BUNZIP2' ) } {<-dc>} {($ Id.VSub_DollarName '$srcfile')} ) (C {<tar>} {<xf>} {<->}) ] negated: F ) (C {<myexit>} {<3>}) ] ) (C {<echo>} { (DQ <'Source '> ($ Id.VSub_DollarName '$srcfile' ) <' unpacked in '> ($ Id.VSub_DollarName '$SRC') <.> ) } ) ] ) ) ] spids: [1794 1815] ) ] ) ] spids: [1724 1726 1870 -1] ) ] ) ] ) ] spids: [1421 1434] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cont) op: assign_op.Equal rhs: {<n>} spids: [1881] ) ] ) ] ) ] ) ) ] ) ) ] ) ) (C {<rm>} {<-f>} {($ Id.VSub_DollarName '$TMPDIR') <'/.'> <Id.Lit_Star '*'>}) (C {<myexit>} {<0>}) ] )