(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LOCALRC) op: assign_op.Equal rhs: {<'/usr/etc/rc.local'>} spids: [19] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:INETCONF) op: assign_op.Equal rhs: {<'/etc/inet.conf'>} spids: [22] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RCNET) op: assign_op.Equal rhs: {<'/etc/rc.net'>} spids: [25] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOSTS) op: assign_op.Equal rhs: {<'/etc/hosts'>} spids: [28] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOSTNAME) op: assign_op.Equal rhs: {<'/etc/hostname.file'>} spids: [31] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:USRKBFILE) op: assign_op.Equal rhs: {<'/.usrkb'>} spids: [34] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:step1) op: assign_op.Equal rhs: {(DQ )} spids: [38] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:step2) op: assign_op.Equal rhs: {(DQ )} spids: [42] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:step3) op: assign_op.Equal rhs: {(DQ )} spids: [46] ) ] ) (command.ShAssignment pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:v) op:assign_op.Equal rhs:{<1>} spids:[50])] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:manual_opts) op: assign_op.Equal rhs: {<0>} spids: [56] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:prefix) op: assign_op.Equal rhs: {(DQ )} spids: [59] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cd) op: assign_op.Equal rhs: {(DQ <no>)} spids: [63] ) ] ) (command.ShAssignment pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:eth) op:assign_op.Equal rhs:{(DQ )} spids:[72])] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:driver) op: assign_op.Equal rhs: {(DQ )} spids: [76] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:driverargs) op: assign_op.Equal rhs: {(DQ )} spids: [80] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:config) op: assign_op.Equal rhs: {(DQ )} spids: [85] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:manual) op: assign_op.Equal rhs: {(DQ )} spids: [89] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dhcp) op: assign_op.Equal rhs: {(DQ <no>)} spids: [93] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:hostname) op: assign_op.Equal rhs: {(DQ )} spids: [99] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:hostname_prev) op: assign_op.Equal rhs: {(DQ )} spids: [103] ) ] ) (command.ShAssignment pairs: [(assign_pair lhs:(sh_lhs_expr.Name name:ip) op:assign_op.Equal rhs:{(DQ )} spids:[107])] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ip_prev) op: assign_op.Equal rhs: {(DQ )} spids: [111] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:netmask) op: assign_op.Equal rhs: {(DQ )} spids: [115] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:netmask_prev) op: assign_op.Equal rhs: {(DQ )} spids: [119] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:gateway) op: assign_op.Equal rhs: {(DQ )} spids: [123] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dns1) op: assign_op.Equal rhs: {(DQ )} spids: [127] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dns2) op: assign_op.Equal rhs: {(DQ )} spids: [131] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:hostname_default) op: assign_op.Equal rhs: {(command_sub left_token:<Id.Left_Backtick '`'> child:(C {<uname>} {<-n>}))} spids: [139] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$hostname_default'))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:hostname_default) op: assign_op.Equal rhs: {(DQ <Minix>)} spids: [158] ) ] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ip_default) op: assign_op.Equal rhs: {(DQ <10.0.0.1>)} spids: [163] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:netmask_default) op: assign_op.Equal rhs: {(DQ <255.255.255.0>)} spids: [168] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:gateway_default) op: assign_op.Equal rhs: {(DQ )} spids: [173] ) ] ) (command.ShFunction name: usage body: (BraceGroup children: [ (command.Simple words: [{<cat>}] redirects: [ (redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>}) (redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {(SQ <EOF>)} here_end_span_id: 216 stdin_parts: [ <'Usage:\n'> <'\n'> <' netconf [-q] [-p <prefix>] [-e <num>] [-a]\n'> < ' netconf [-H <name> -i <ip> -n <mask> -g <gw> -d <prim dns> [-s <sec dns>]]\n' > <'\n'> <' flags:\n'> <' -q Limit generated output\n'> < ' -p Path prefix for configuration files (e.g., during install -p mnt is used as files are mounted on /mnt).\n' > <' -e Ethernet card\n'> <' -a Use DHCP (-H, -i, -n, -g, -d, and -s flags are discarded)\n'> <' -H Hostname\n'> <' -i IP address\n'> <' -n Netmask\n'> <' -g Default gateway\n'> <' -d Primary DNS\n'> <' -s Secondary DNS\n'> <' -h Shows this help file\n'> <' -c Shows a list of ethernet cards supported\n'> <'\n'> < ' By default netconf starts in Interactive mode. By providing parameters on the\n' > <' command line, some questions can be omitted.\n'> ] ) ) ] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) ) (command.ShFunction name: card body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:card_number) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [232] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:card_name) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [236] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:card_avail) op: assign_op.Equal rhs: {<0>} spids: [240] ) ] ) (C {<shift>} {<2>}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_Pound '$#')} {<-gt>} {<0>} {<Id.Lit_RBracket ']'>} ) ] ) body: (command.DoGroup children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (command.Pipeline children: [ (C {<lspci>}) (command.Simple words: [{<grep>} {(DQ <'^'> ($ Id.VSub_Number '$1'))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/dev/null'>} ) ] do_fork: T ) ] negated: F ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:card_avail) op: assign_op.Equal rhs: {<1>} spids: [283] ) ] ) ] ) (C {<shift>}) ] ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$card_avail')} {<-gt>} {<0>} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:card_mark) op: assign_op.Equal rhs: {(DQ <'*'>)} spids: [310] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:eth_default) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$card_number')} spids: [316] ) ] ) ] spids: [293 306] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:card_mark) op: assign_op.Equal rhs: {(DQ <' '>)} spids: [323] ) ] ) ] ) (C {<printf>} {(DQ <'%2d. %s %s'> <Id.Lit_BadBackslash '\\'> <n>)} {(DQ ($ Id.VSub_DollarName '$card_number'))} {(DQ ($ Id.VSub_DollarName '$card_mark'))} {(DQ ($ Id.VSub_DollarName '$card_name'))} ) ] ) ) (command.ShFunction name: cards body: (BraceGroup children: [ (C {<card>} {<0>} {(DQ <'No Ethernet card (no networking)'>)}) (C {<card>} {<1>} {(DQ <'Intel Pro/100'>)} {(DQ <'8086:103D'>)} {(DQ <'8086:1064'>)} {(DQ <'8086:1229'>)} {(DQ <'8086:2449'>)} ) (C {<card>} {<2>} {(DQ <'3Com 501 or 3Com 509 based card'>)}) (C {<card>} {<3>} {(DQ <'Realtek 8139 based card (also emulated by KVM)'>)} {(DQ <'10EC:8139'>)} {(DQ <'02AC:1012'>)} {(DQ <'1065:8139'>)} {(DQ <'1113:1211'>)} {(DQ <'1186:1300'>)} {(DQ <'1186:1340'>)} {(DQ <'11DB:1234'>)} {(DQ <'1259:A117'>)} {(DQ <'1259:A11E'>)} {(DQ <'126C:1211'>)} {(DQ <'13D1:AB06'>)} {(DQ <'1432:9130'>)} {(DQ <'14EA:AB06'>)} {(DQ <'14EA:AB07'>)} {(DQ <'1500:1360'>)} {(DQ <'1743:8139'>)} {(DQ <'4033:1360'>)} ) (C {<card>} {<4>} {(DQ <'Realtek 8169 based card'>)} {(DQ <'10EC:8129'>)} {(DQ <'10EC:8167'>)} {(DQ <'10EC:8169'>)} {(DQ <'1186:4300'>)} {(DQ <'1259:C107'>)} {(DQ <'1385:8169'>)} {(DQ <'16EC:0116'>)} {(DQ <'1737:1032'>)} ) (C {<card>} {<5>} {(DQ <'Realtek 8029 based card (also emulated by Qemu)'>)} {(DQ <'10EC:8029'>)} ) (C {<card>} {<6>} {(DQ <'NE2000, 3com 503 or WD based card (also emulated by Bochs)'>)}) (C {<card>} {<7>} {(DQ <'AMD LANCE (also emulated by VMWare and VirtualBox)'>)} {(DQ <'1022:2000'>)} ) (C {<card>} {<8>} {(DQ <'Intel PRO/1000 Gigabit'>)} {(DQ <'8086:100E'>)} {(DQ <'8086:107C'>)} {(DQ <'8086:10CD'>)} ) (C {<card>} {<9>} {(DQ <'Attansic/Atheros L2 FastEthernet'>)} {(DQ <'1969:2048'>)}) (C {<card>} {<10>} {(DQ <'DEC Tulip 21140A in VirtualPC'>)} {(DQ <'1011:0009'>)}) (C {<card>} {<11>} {(DQ <'Different Ethernet card (no networking)'>)}) ] ) ) (command.ShFunction name: warn body: (BraceGroup children: [ (C {<echo>} {<-e>} { (DQ <Id.Lit_BadBackslash '\\'> <b> <Id.Lit_BadBackslash '\\'> <b> <Id.Lit_BadBackslash '\\'> <b> <Id.Lit_BadBackslash '\\'> <b> <Id.Lit_BadBackslash '\\'> <b> <Id.Lit_BadBackslash '\\'> <b> <Id.Lit_BadBackslash '\\'> <b> <Id.Lit_BadBackslash '\\'> <b> <Id.Lit_BadBackslash '\\'> <b> <Id.Lit_BadBackslash '\\'> <b> <Id.Lit_BadBackslash '\\'> <b> <Id.Lit_BadBackslash '\\'> <b> <Id.Lit_BadBackslash '\\'> <b> <Id.Lit_BadBackslash '\\'> <b> <Id.Lit_BadBackslash '\\'> <b> <Id.Lit_BadBackslash '\\'> <b> <Id.Lit_BadBackslash '\\'> <b> <Id.Lit_BadBackslash '\\'> <b> <Id.Lit_BadBackslash '\\'> <b> <Id.Lit_BadBackslash '\\'> <b> <Id.Lit_BadBackslash '\\'> <b> <Id.Lit_BadBackslash '\\'> <'b ! '> ($ Id.VSub_Number '$1') ) } ) ] ) ) (command.ShFunction name: do_step1 body: (BraceGroup children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:eth_default) op: assign_op.Equal rhs: {<0>} spids: [697] ) ] ) (C {<echo>} {(DQ <'MINIX 3 currently supports the following Ethernet cards. PCI cards detected'>)} ) (C {<echo>} {(DQ <'by MINIX are marked with *. Please choose: '>)}) (C {<echo>} {(DQ )}) (C {<cards>}) (C {<echo>} {(DQ )}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$step1'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<ok>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (command.Sentence child: (C {<echo>} {<-n>} {(DQ <'Ethernet card? ['> ($ Id.VSub_DollarName '$eth_default') <'] '>)} ) terminator: <Id.Op_Semi _> ) (C {<read>} {<eth>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {<-z>} {($ Id.VSub_DollarName '$eth')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:eth) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$eth_default')} spids: [780] ) ] ) ] ) (C {<drv_params>} {($ Id.VSub_DollarName '$eth')}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$driver'))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:step1) op: assign_op.Equal rhs: {(DQ <ok>)} spids: [800] ) ] ) ] ) ] ) ) ] ) ) (command.ShFunction name: drv_params body: (BraceGroup children: [ (command.Case to_match: {(DQ ($ Id.VSub_Number '$1'))} arms: [ (case_arm pat_list: [{<0>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:driver) op: assign_op.Equal rhs: {<psip0>} spids: [830] ) ] ) terminator: <Id.Op_Semi _> ) ] spids: [827 828 834 -1] ) (case_arm pat_list: [{<1>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:driver) op: assign_op.Equal rhs: {<fxp>} spids: [841] ) ] ) terminator: <Id.Op_Semi _> ) ] spids: [838 839 845 -1] ) (case_arm pat_list: [{<2>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:driver) op: assign_op.Equal rhs: {<dpeth>} spids: [851] ) ] ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:driverargs) op: assign_op.Equal rhs: {(DQ <'#dpeth_arg=\'DPETH0=port:irq:memory\''>)} spids: [855] ) ] ) terminator: <Id.Op_Semi _> ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {(DQ ($ Id.VSub_DollarName '$v'))} {<Id.Lit_Equals '='>} {<1>}) (C {<echo>} {(DQ )}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {(DQ ($ Id.VSub_DollarName '$v'))} {<Id.Lit_Equals '='>} {<1>}) (C {<echo>} { (DQ <'Note: After installing, edit '> ($ Id.VSub_DollarName '$LOCALRC') <' to the right configuration.'> ) } ) ] ) ] spids: [848 849 901 -1] ) (case_arm pat_list: [{<4>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:driver) op: assign_op.Equal rhs: {<rtl8169>} spids: [907] ) ] ) terminator: <Id.Op_Semi _> ) ] spids: [904 905 911 -1] ) (case_arm pat_list: [{<3>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:driver) op: assign_op.Equal rhs: {<rtl8139>} spids: [917] ) ] ) terminator: <Id.Op_Semi _> ) ] spids: [914 915 921 -1] ) (case_arm pat_list: [{<5>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:driver) op: assign_op.Equal rhs: {<dp8390>} spids: [927] ) ] ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:driverargs) op: assign_op.Equal rhs: {(DQ <'dp8390_arg=\'DPETH0=pci\''>)} spids: [931] ) ] ) terminator: <Id.Op_Semi _> ) ] spids: [924 925 937 -1] ) (case_arm pat_list: [{<6>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:driver) op: assign_op.Equal rhs: {<dp8390>} spids: [943] ) ] ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:driverargs) op: assign_op.Equal rhs: {(DQ <'dp8390_arg=\'DPETH0=240:9\''>)} spids: [947] ) ] ) terminator: <Id.Op_Semi _> ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {(DQ ($ Id.VSub_DollarName '$v'))} {<Id.Lit_Equals '='>} {<1>}) (C {<echo>} {(DQ )}) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {(DQ ($ Id.VSub_DollarName '$v'))} {<Id.Lit_Equals '='>} {<1>}) (C {<echo>} { (DQ <'Note: After installing, edit '> ($ Id.VSub_DollarName '$LOCALRC') <' to the right configuration.'> ) } ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {(DQ ($ Id.VSub_DollarName '$v'))} {<Id.Lit_Equals '='>} {<1>}) (C {<echo>} { (DQ < ' chose option 4, the defaults for emulation by Bochs have been set.' > ) } ) ] ) ] spids: [940 941 1013 -1] ) (case_arm pat_list: [{<7>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:driver) op: assign_op.Equal rhs: {(DQ <lance>)} spids: [1019] ) ] ) terminator: <Id.Op_Semi _> ) ] spids: [1016 1017 1025 -1] ) (case_arm pat_list: [{<8>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:driver) op: assign_op.Equal rhs: {(DQ <e1000>)} spids: [1032] ) ] ) terminator: <Id.Op_Semi _> ) ] spids: [1029 1030 1038 -1] ) (case_arm pat_list: [{<9>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:driver) op: assign_op.Equal rhs: {(DQ <atl2>)} spids: [1044] ) ] ) terminator: <Id.Op_Semi _> ) ] spids: [1041 1042 1050 -1] ) (case_arm pat_list: [{<10>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:driver) op: assign_op.Equal rhs: {(DQ <dec21140A>)} spids: [1056] ) ] ) terminator: <Id.Op_Semi _> ) ] spids: [1053 1054 1062 -1] ) (case_arm pat_list: [{<11>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:driver) op: assign_op.Equal rhs: {(DQ <psip0>)} spids: [1069] ) ] ) terminator: <Id.Op_Semi _> ) ] spids: [1066 1067 1075 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(C {<warn>} {(DQ <'choose a number'>)})] spids: [1079 1080 -1 1089] ) ] ) ] ) ) (command.ShFunction name: do_step2 body: (BraceGroup children: [ (C {<echo>} {(DQ )}) (C {<echo>} {(DQ <'Configure network using DHCP or manually?'>)}) (C {<echo>} {(DQ )}) (C {<echo>} {(DQ <'1. Automatically using DHCP'>)}) (C {<echo>} {(DQ <'2. Manually'>)}) (C {<echo>} {(DQ )}) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$step2'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<ok>} {<Id.Lit_RBracket ']'>} ) ] ) body: (command.DoGroup children: [ (command.Sentence child: (C {<echo>} {<-n>} {(DQ <'Configure method? [1] '>)}) terminator: <Id.Op_Semi _> ) (C {<read>} {<config>}) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {<-z>} {($ Id.VSub_DollarName '$config')}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:config) op: assign_op.Equal rhs: {<1>} spids: [1182] ) ] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$config'))} arms: [ (case_arm pat_list: [{<1>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:step2) op: assign_op.Equal rhs: {(DQ <ok>)} spids: [1200] ) ] ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dhcp) op: assign_op.Equal rhs: {(DQ <yes>)} spids: [1206] ) ] ) terminator: <Id.Op_Semi _> ) ] spids: [1197 1198 1213 -1] ) (case_arm pat_list: [{<2>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:step2) op: assign_op.Equal rhs: {(DQ <ok>)} spids: [1219] ) ] ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:manual) op: assign_op.Equal rhs: {(DQ <do>)} spids: [1225] ) ] ) terminator: <Id.Op_Semi _> ) ] spids: [1216 1217 1231 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(C {<warn>} {(DQ <'choose a number'>)})] spids: [1234 1235 -1 1244] ) ] ) ] ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$manual'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {($ Id.VSub_DollarName '$hostname_prev')} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:hostname_prev) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$hostname_default')} spids: [1294] ) ] ) ] spids: [1280 1291] ) ] ) (C {<echo>} {<-n>} {(DQ <'Hostname ['> ($ Id.VSub_DollarName '$hostname_prev') <']: '>)} ) (C {<read>} {<hostname>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} {($ Id.VSub_DollarName '$hostname')} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:hostname_prev) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$hostname')} spids: [1333] ) ] ) ] spids: [1317 1330] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:hostname) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$hostname_prev')} spids: [1340] ) ] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {($ Id.VSub_DollarName '$ip_prev')} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ip_prev) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$ip_default')} spids: [1367] ) ] ) ] spids: [1353 1364] ) ] ) (C {<echo>} {<-n>} {(DQ <'IP address ['> ($ Id.VSub_DollarName '$ip_prev') <']: '>)}) (C {<read>} {<ip>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} {($ Id.VSub_DollarName '$ip')} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ip_prev) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$ip')} spids: [1406] ) ] ) ] spids: [1390 1403] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ip) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$ip_prev')} spids: [1413] ) ] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-z>} {($ Id.VSub_DollarName '$netmask_prev')} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:netmask_prev) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$netmask_default')} spids: [1440] ) ] ) ] spids: [1426 1437] ) ] ) (C {<echo>} {<-n>} {(DQ <'Netmask ['> ($ Id.VSub_DollarName '$netmask_prev') <']: '>)} ) (C {<read>} {<netmask>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} {($ Id.VSub_DollarName '$netmask')} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:netmask_prev) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$netmask')} spids: [1479] ) ] ) ] spids: [1463 1476] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:netmask) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$netmask_prev')} spids: [1486] ) ] ) ] ) (C {<echo>} {<-n>} {(DQ <'Gateway: '>)}) (C {<read>} {<gateway>}) (C {<echo>} {<-n>} {(DQ <'Primary DNS Server ['> ($ Id.VSub_DollarName '$dns1_prev') <']: '>)} ) (C {<read>} {<dns1>}) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$dns1'))}) (C {<test>} {<-n>} {(DQ ($ Id.VSub_DollarName '$dns1_prev'))}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dns1) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$dns1_prev')} spids: [1555] ) ] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} {(DQ ($ Id.VSub_DollarName '$dns1'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dns1_prev) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$dns1')} spids: [1577] ) ] ) (C {<echo>} {<-n>} { (DQ <'Secondary DNS Server ['> ($ Id.VSub_DollarName '$dns2_prev') <']: '> ) } ) (C {<read>} {<dns2>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-z>} {($ Id.VSub_DollarName '$dns2')} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dns2_prev) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$dns2')} spids: [1615] ) ] ) ] spids: [1599 1612] ) ] ) ] spids: [1559 1574] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dns2) op: assign_op.Equal rhs: {(DQ )} spids: [1629] ) ] ) ] ) ] spids: [1256 1269] ) ] ) ] ) ) (command.WhileUntil keyword: <Id.KW_While while> cond: (condition.Shell commands: [ (command.Sentence child: (C {<getopts>} {(DQ <':qe:p:aH:i:n:g:d:s:hc'>)} {<arg>}) terminator: <Id.Op_Semi _> ) ] ) body: (command.DoGroup children: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$arg'))} arms: [ (case_arm pat_list: [{<q>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:v) op: assign_op.Equal rhs: {<0>} spids: [1671] ) ] ) terminator: <Id.Op_Semi _> ) ] spids: [1668 1669 1675 -1] ) (case_arm pat_list: [{<e>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ethernet) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTARG')} spids: [1681] ) ] ) terminator: <Id.Op_Semi _> ) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [ {<test>} {(DQ ($ Id.VSub_DollarName '$ethernet'))} {<-ge>} {<0>} {<-a>} {(DQ ($ Id.VSub_DollarName '$ethernet'))} {<-le>} {<7>} ] redirects: [ (redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {<'/dev/null'>} ) ] do_fork: T ) (C {<usage>}) ] ) (C {<drv_params>} {($ Id.VSub_DollarName '$ethernet')}) ] spids: [1678 1679 1720 -1] ) (case_arm pat_list: [{<p>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:prefix) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTARG')} spids: [1726] ) ] ) terminator: <Id.Op_Semi _> ) ] spids: [1723 1724 1730 -1] ) (case_arm pat_list: [{<a>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dhcp) op: assign_op.Equal rhs: {(DQ <yes>)} spids: [1736] ) ] ) terminator: <Id.Op_Semi _> ) ] spids: [1733 1734 1742 -1] ) (case_arm pat_list: [{<H>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:hostname) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTARG')} spids: [1748] ) ] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:manual_opts) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$manual_opts')} {(SQ <'+'>)} {<1>}) ) } spids: [1752] ) ] ) ] spids: [1745 1746 1766 -1] ) (case_arm pat_list: [{<i>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:ip) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTARG')} spids: [1772] ) ] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:manual_opts) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$manual_opts')} {(SQ <'+'>)} {<1>}) ) } spids: [1776] ) ] ) ] spids: [1769 1770 1790 -1] ) (case_arm pat_list: [{<n>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:netmask) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTARG')} spids: [1796] ) ] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:manual_opts) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$manual_opts')} {(SQ <'+'>)} {<1>}) ) } spids: [1800] ) ] ) ] spids: [1793 1794 1814 -1] ) (case_arm pat_list: [{<g>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:gateway) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTARG')} spids: [1820] ) ] ) terminator: <Id.Op_Semi _> ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:manual_opts) op: assign_op.Equal rhs: { (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<expr>} {($ Id.VSub_DollarName '$manual_opts')} {(SQ <'+'>)} {<1>}) ) } spids: [1824] ) ] ) ] spids: [1817 1818 1838 -1] ) (case_arm pat_list: [{<d>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dns1) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTARG')} spids: [1844] ) ] ) terminator: <Id.Op_Semi _> ) ] spids: [1841 1842 1848 -1] ) (case_arm pat_list: [{<s>}] action: [ (command.Sentence child: (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:dns2) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$OPTARG')} spids: [1854] ) ] ) terminator: <Id.Op_Semi _> ) ] spids: [1851 1852 1858 -1] ) (case_arm pat_list: [{<h>}] action: [(C {<usage>})] spids: [1861 1862 1866 -1] ) (case_arm pat_list: [{<c>}] action: [ (command.Sentence child: (C {<echo>} {<-e>} { (DQ <'The following cards are supported by Minix:'> <Id.Lit_BadBackslash '\\'> <n> ) } ) terminator: <Id.Op_Semi _> ) (command.Sentence child: (C {<cards>}) terminator: <Id.Op_Semi _> ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<0>} ) ] spids: [1869 1870 1892 -1] ) (case_arm pat_list: [{(word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\?'>)}] action: [ (command.Sentence child: (C {<echo>} {(DQ <'Unknown option -'> ($ Id.VSub_DollarName '$OPTARG'))}) terminator: <Id.Op_Semi _> ) (C {<usage>}) ] spids: [1895 1896 1908 -1] ) (case_arm pat_list: [{<Id.Lit_Colon ':'>}] action: [ (command.Sentence child: (C {<echo>} {(DQ <'Missing required argument for -'> ($ Id.VSub_DollarName '$OPTARG'))} ) terminator: <Id.Op_Semi _> ) (C {<usage>}) ] spids: [1911 1912 1924 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [(C {<usage>})] spids: [1927 1928 1932 -1] ) ] ) ] ) ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$dhcp'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <yes>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {($ Id.VSub_DollarName '$manual_opts')} {<-gt>} {<0>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<test>} {($ Id.VSub_DollarName '$manual_opts')} {<-eq>} {<4>} {<-a>} {<-n>} {(DQ ($ Id.VSub_DollarName '$dns1'))} ) (C {<usage>}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:manual) op: assign_op.Equal rhs: {(DQ <do>)} spids: [2003] ) ] ) ] spids: [1965 1979] ) ] ) ] spids: [1943 1962] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$prefix'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:LOCALRC) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$prefix') ($ Id.VSub_DollarName '$LOCALRC')} spids: [2031] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:INETCONF) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$prefix') ($ Id.VSub_DollarName '$INETCONF')} spids: [2036] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:RCNET) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$prefix') ($ Id.VSub_DollarName '$RCNET')} spids: [2041] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOSTS) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$prefix') ($ Id.VSub_DollarName '$HOSTS')} spids: [2046] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HOSTNAME) op: assign_op.Equal rhs: {($ Id.VSub_DollarName '$prefix') ($ Id.VSub_DollarName '$HOSTNAME')} spids: [2051] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {($ Id.VSub_DollarName '$INETCONF')} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<echo>} {<-e>} { (DQ <'It seems the supplied prefix ('> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\`'> ) ($ Id.VSub_DollarName '$prefix') <'\') is invalid.'> ) } ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {<1>} ) ] spids: [2056 2069] ) ] ) ] spids: [2014 2028] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$USER'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<root>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {(DQ ($ Id.VSub_DollarName '$v'))} {<Id.Lit_Equals '='>} {<1>}) (C {<echo>} {(DQ <'Please run netconf as root.'>)}) ] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] spids: [2094 2111] ) ] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<-f>} {(DQ ($ Id.VSub_DollarName '$USRKBFILE'))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:cd) op: assign_op.Equal rhs: {(DQ <yes>)} spids: [2160] ) ] ) ] spids: [2143 2157] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [(C {<test>} {<-z>} {(DQ ($ Id.VSub_DollarName '$ethernet'))}) (C {<do_step1>})] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {($ Id.VSub_DollarName '$manual_opts')} {<-eq>} {<0>} {<-a>} {(DQ ($ Id.VSub_DollarName '$dhcp'))} {<Id.Lit_Equals '='>} {(DQ <no>)} ) (C {<do_step2>}) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (C {<test>} {(DQ ($ Id.VSub_DollarName '$cd'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <yes>)} ) (C {<test>} {<-f>} {($ Id.VSub_DollarName '$INETCONF')}) (C {<mv>} {($ Id.VSub_DollarName '$INETCONF')} {(DQ ($ Id.VSub_DollarName '$INETCONF') <'~'>)}) (C {<test>} {(DQ ($ Id.VSub_DollarName '$v'))} {<Id.Lit_Equals '='>} {<1>}) (C {<echo>} { (DQ <'Backed up '> ($ Id.VSub_DollarName '$INETCONF') <' to '> ($ Id.VSub_DollarName '$INETCONF') <'~'> ) } ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (C {<test>} {(DQ ($ Id.VSub_DollarName '$cd'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <yes>)} ) (C {<test>} {<-f>} {($ Id.VSub_DollarName '$LOCALRC')}) (C {<mv>} {($ Id.VSub_DollarName '$LOCALRC')} {(DQ ($ Id.VSub_DollarName '$LOCALRC') <'~'>)}) (C {<test>} {(DQ ($ Id.VSub_DollarName '$v'))} {<Id.Lit_Equals '='>} {<1>}) (C {<echo>} { (DQ <'Backed up '> ($ Id.VSub_DollarName '$LOCALRC') <' to '> ($ Id.VSub_DollarName '$LOCALRC') <'~'> ) } ) ] ) (command.Simple words: [{<echo>} {(DQ <'eth0 '> ($ Id.VSub_DollarName '$driver') <' 0 { default; } ;'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$INETCONF')} ) ] do_fork: T ) (command.Simple words: [{<echo>} {(DQ ($ Id.VSub_DollarName '$driverargs'))}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$LOCALRC')} ) ] do_fork: T ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (C {<Id.Lit_LBracket '['>} {<-n>} {(DQ ($ Id.VSub_DollarName '$manual'))} {<Id.Lit_RBracket ']'>} ) ] ) action: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (C {<test>} {(DQ ($ Id.VSub_DollarName '$cd'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <yes>)} ) (C {<test>} {<-f>} {($ Id.VSub_DollarName '$RCNET')}) (C {<mv>} {($ Id.VSub_DollarName '$RCNET')} {(DQ ($ Id.VSub_DollarName '$RCNET') <'~'>)}) (C {<test>} {(DQ ($ Id.VSub_DollarName '$v'))} {<Id.Lit_Equals '='>} {<1>}) (C {<echo>} { (DQ <'Backed up '> ($ Id.VSub_DollarName '$RCNET') <' to '> ($ Id.VSub_DollarName '$RCNET') <'~'> ) } ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (C {<test>} {(DQ ($ Id.VSub_DollarName '$cd'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <yes>)} ) (C {<test>} {<-f>} {($ Id.VSub_DollarName '$HOSTS')}) (C {<mv>} {($ Id.VSub_DollarName '$HOSTS')} {(DQ ($ Id.VSub_DollarName '$HOSTS') <'~'>)}) (C {<test>} {(DQ ($ Id.VSub_DollarName '$v'))} {<Id.Lit_Equals '='>} {<1>}) (C {<echo>} { (DQ <'Backed up '> ($ Id.VSub_DollarName '$HOSTS') <' to '> ($ Id.VSub_DollarName '$HOSTS') <'~'> ) } ) ] ) (command.Simple words: [ {<echo>} { (DQ <'ifconfig -I /dev/ip0 -n '> ($ Id.VSub_DollarName '$netmask') <' -h '> ($ Id.VSub_DollarName '$ip') ) } ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$RCNET')} ) ] do_fork: T ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {<Id.KW_Bang '!'>} {<-z>} {($ Id.VSub_DollarName '$gateway')}) (command.Simple words: [{<echo>} {(DQ <'add_route -g '> ($ Id.VSub_DollarName '$gateway'))}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$RCNET')} ) ] do_fork: T ) ] ) (command.Simple words: [{<echo>} {(DQ <'daemonize nonamed -L'>)}] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$RCNET')} ) ] do_fork: T ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {<Id.KW_Bang '!'>} {<-z>} {($ Id.VSub_DollarName '$dns1')}) (command.Simple words: [ {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$ip') <Id.Lit_BadBackslash '\\'> <'t%nameserver'> <Id.Lit_BadBackslash '\\'> <'t#'> ($ Id.VSub_DollarName '$hostname') ) } ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$HOSTS')} ) ] do_fork: T ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {<Id.KW_Bang '!'>} {<-z>} {($ Id.VSub_DollarName '$dns1')}) (command.Simple words: [ {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$dns1') <Id.Lit_BadBackslash '\\'> <'t%nameserver'> <Id.Lit_BadBackslash '\\'> <'t#DNS 1'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$HOSTS')} ) ] do_fork: T ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {<Id.KW_Bang '!'>} {<-z>} {($ Id.VSub_DollarName '$dns2')}) (command.Simple words: [ {<echo>} {<-e>} { (DQ ($ Id.VSub_DollarName '$dns2') <Id.Lit_BadBackslash '\\'> <'t%nameserver'> <Id.Lit_BadBackslash '\\'> <'t#DNS 2'> ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$HOSTS')} ) ] do_fork: T ) ] ) (command.Simple words: [ {<echo>} {<-e>} { (DQ <Id.Lit_BadBackslash '\\'> <n> ($ Id.VSub_DollarName '$ip') <Id.Lit_BadBackslash '\\'> <t> ($ Id.VSub_DollarName '$hostname') ) } ] redirects: [ (redir op: <Id.Redir_DGreat '>>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$HOSTS')} ) ] do_fork: T ) (command.Simple words: [{<echo>} {($ Id.VSub_DollarName '$hostname')}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$HOSTNAME')} ) ] do_fork: T ) ] spids: [2360 2373] ) ] else_action: [ (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (C {<test>} {(DQ ($ Id.VSub_DollarName '$cd'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <yes>)} ) (C {<test>} {<-f>} {(DQ ($ Id.VSub_DollarName '$RCNET'))}) (C {<mv>} {(DQ ($ Id.VSub_DollarName '$RCNET'))} {(DQ ($ Id.VSub_DollarName '$RCNET') <'~'>)}) (C {<test>} {(DQ ($ Id.VSub_DollarName '$v'))} {<Id.Lit_Equals '='>} {<1>}) (C {<echo>} { (DQ <'Moved '> ($ Id.VSub_DollarName '$RCNET') <' to '> ($ Id.VSub_DollarName '$RCNET') <'~ to use default settings'> ) } ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp Id.Op_DAmp] children: [ (C {<test>} {(DQ ($ Id.VSub_DollarName '$cd'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <yes>)} ) (C {<test>} {<-f>} {($ Id.VSub_DollarName '$HOSTS')}) (C {<mv>} {($ Id.VSub_DollarName '$HOSTS')} {(DQ ($ Id.VSub_DollarName '$HOSTS') <'~'>)}) (C {<test>} {(DQ ($ Id.VSub_DollarName '$v'))} {<Id.Lit_Equals '='>} {<1>}) (C {<echo>} { (DQ <'Backed up '> ($ Id.VSub_DollarName '$HOSTS') <' to '> ($ Id.VSub_DollarName '$HOSTS') <'~'> ) } ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<test>} {<-f>} {(DQ ($ Id.VSub_DollarName '$HOSTS') <'~'>)}) (command.Simple words: [{<grep>} {<-v>} {(DQ <'%nameserver'>)} {(DQ ($ Id.VSub_DollarName '$HOSTS') <'~'>)}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {($ Id.VSub_DollarName '$HOSTS')} ) ] do_fork: T ) ] ) ] ) (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {<test>} {(DQ ($ Id.VSub_DollarName '$cd'))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {(DQ <yes>)} ) (C {<test>} {(DQ ($ Id.VSub_DollarName '$v'))} {<Id.Lit_Equals '='>} {<1>}) (C {<echo>} {(DQ <'\n'> <'You might have to reboot for the changes to take effect.'>)}) ] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] )