(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LeftVar name:PATH) rhs: {(/sbin) (Lit_Other ":") (/usr/sbin) (Lit_Other ":") (/bin) (Lit_Other ":") (/usr/bin)} spids: [43] ) ] spids: [43] ) (Assignment keyword: Assign_Export pairs: [(assign_pair lhs:(LeftVar name:PATH) spids:[54])] spids: [52] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LeftVar name:scriptname) rhs:{(DQ ($ VSub_Number "$0"))} spids:[70])] spids: [70] ) (C {(umask)} {(022)}) (FuncDef name: on_exit body: (BraceGroup children: [ (C {(echo)} { (DQ ("error: '") ($ VSub_Name "$scriptname") ("' exited outside the expected code flow.") ) } ) ] spids: [85] ) spids: [81 84] ) (C {(trap)} {(on_exit)} {(EXIT)}) (C {(trap)} {(DQ (":"))} {(INT)} {(QUIT)} {(TSTP)}) (SimpleCommand words: [{(stty)} {(onlcr)}] redirects: [(Redirect op_id:Redir_GreatAnd arg_word:{(1)} fd:0 spids:[131])] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LeftVar name:runlevel) rhs:{($ VSub_Name "$RUNLEVEL")} spids:[139])] spids: [139] ) (AndOr children: [ (C {(Lit_Other "[")} {(DQ ($ VSub_Number "$1"))} {(KW_Bang "!") (Lit_Other "=")} {(DQ )} {(Lit_Other "]")} ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LeftVar name:runlevel) rhs:{($ VSub_Number "$1")} spids:[161])] spids: [161] ) ] op_id: Op_DAmp ) (If arms: [ (if_arm cond: (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$runlevel"))} {(Lit_Other "=")} {(DQ )} {(Lit_Other "]")} ) action: (CommandList children: [ (SimpleCommand words: [{(echo)} {(DQ ("Usage: ") ($ VSub_Name "$scriptname") (" <runlevel>"))}] redirects: [(Redirect op_id:Redir_GreatAnd arg_word:{(2)} fd:-1 spids:[190])] ) (C {(exit)} {(1)}) ] ) spids: [-1 179] ) ] spids: [-1 198] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LeftVar name:previous) rhs:{($ VSub_Name "$PREVLEVEL")} spids:[200])] spids: [200] ) (AndOr children: [ (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$previous"))} {(Lit_Other "=")} {(DQ )} {(Lit_Other "]")}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LeftVar name:previous) rhs:{(N)} spids:[218])] spids: [218] ) ] op_id: Op_DAmp ) (Assignment keyword: Assign_Export pairs: [ (assign_pair lhs:(LeftVar name:runlevel) spids:[224]) (assign_pair lhs:(LeftVar name:previous) spids:[226]) ] spids: [222] ) (If arms: [ (if_arm cond: (Sentence command: (C {(Lit_Other "[")} {(-f)} {(/etc/default/rcS)} {(Lit_Other "]")}) terminator: <Op_Semi ";"> ) action: (C {(.)} {(/etc/default/rcS)}) spids: [-1 241] ) ] spids: [-1 248] ) (Assignment keyword: Assign_Export pairs: [(assign_pair lhs:(LeftVar name:VERBOSE) spids:[252])] spids: [250] ) (If arms: [ (if_arm cond: (Sentence command: (C {(Lit_Other "[")} {(-f)} {(/lib/lsb/init-functions)} {(Lit_Other "]")}) terminator: <Op_Semi ";"> ) action: (C {(.)} {(/lib/lsb/init-functions)}) spids: [-1 267] ) ] else_action: (CommandList children: [ (FuncDef name: log_action_msg body: (BraceGroup children: [ (Sentence command: (C {(echo)} {($ VSub_At "$@")}) terminator: <Op_Semi ";"> ) ] spids: [281] ) spids: [277 280] ) (FuncDef name: log_failure_msg body: (BraceGroup children: [ (Sentence command: (C {(echo)} {($ VSub_At "$@")}) terminator: <Op_Semi ";"> ) ] spids: [295] ) spids: [291 294] ) (FuncDef name: log_warning_msg body: (BraceGroup children: [ (Sentence command: (C {(echo)} {($ VSub_At "$@")}) terminator: <Op_Semi ";"> ) ] spids: [309] ) spids: [305 308] ) ] ) spids: [274 318] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LeftVar name:CONCURRENCY) rhs:{(makefile)} spids:[336])] spids: [336] ) (AndOr children: [ (C {(test)} {(-s)} {(/etc/init.d/.depend.boot)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LeftVar name:CONCURRENCY) rhs:{(DQ (none))} spids:[347])] spids: [347] ) ] op_id: Op_DPipe ) (AndOr children: [ (C {(test)} {(-s)} {(/etc/init.d/.depend.start)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LeftVar name:CONCURRENCY) rhs:{(DQ (none))} spids:[360])] spids: [360] ) ] op_id: Op_DPipe ) (AndOr children: [ (C {(test)} {(-s)} {(/etc/init.d/.depend.stop)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LeftVar name:CONCURRENCY) rhs:{(DQ (none))} spids:[373])] spids: [373] ) ] op_id: Op_DPipe ) (If arms: [ (if_arm cond: (Sentence command: (C {(test)} {(-e)} {(/etc/init.d/.legacy-bootordering)}) terminator: <Op_Semi ";"> ) action: (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LeftVar name:CONCURRENCY) rhs:{(DQ (none))} spids:[391])] spids: [391] ) spids: [-1 388] ) ] spids: [-1 396] ) (If arms: [ (if_arm cond: (Sentence command: (Pipeline children:[(C {(test)} {(-e)} {(/proc/stat)})] negated:True) terminator: <Op_Semi ";"> ) action: (If arms: [ (if_arm cond: (Sentence command: (C {(Lit_Other "[")} {(DQ (CommandSubPart command_list:(C {(uname)}) spids:[417419]))} {(Lit_Other "=")} {(DQ (GNU/kFreeBSD))} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) action: (C {(mount)} {(-t)} {(linprocfs)} {(linprocfs)} {(/proc)}) spids: [-1 432] ) ] spids: [-1 450] ) spids: [-1 409] ) ] spids: [-1 452] ) (AndOr children: [ (SimpleCommand words: [{(startpar)} {(-v)}] redirects: [ (Redirect op_id:Redir_Great arg_word:{(/dev/null)} fd:-1 spids:[458]) (Redirect op_id:Redir_GreatAnd arg_word:{(1)} fd:2 spids:[462]) ] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LeftVar name:CONCURRENCY) rhs:{(DQ (none))} spids:[467])] spids: [467] ) ] op_id: Op_DPipe ) (Case to_match: {(DQ ($ VSub_Name "$CONCURRENCY"))} arms: [ (case_arm pat_list: [{(makefile)} {(startpar)} {(shell)}] action: (CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LeftVar name:CONCURRENCY) rhs:{(makefile)} spids:[502])] spids: [502] ) (C {(log_action_msg)} { (DQ ("Using makefile-style concurrent boot in runlevel ") ($ VSub_Name "$runlevel") ) } ) (FuncDef name: startup body: (BraceGroup children: [ (C {(eval)} { (DQ (CommandSubPart command_list: (C {(startpar)} {(-p)} {(4)} {(-t)} {(20)} {(-T)} {(3)} {(-M)} {($ VSub_Number "$1")} {(-P)} {($ VSub_Name "$previous")} {(-R)} {($ VSub_Name "$runlevel")} ) spids: [524 550] ) ) } ) (If arms: [ (if_arm cond: (C {(Lit_Other "[")} {(-n)} {(DQ ($ VSub_Name "$failed_service"))} {(Lit_Other "]")} ) action: (C {(log_failure_msg)} { (DQ ("startpar: service(s) returned failure: ") ($ VSub_Name "$failed_service") ) } ) spids: [-1 568] ) ] spids: [-1 579] ) (If arms: [ (if_arm cond: (C {(Lit_Other "[")} {(-n)} {(DQ ($ VSub_Name "$skipped_service_not_installed"))} {(Lit_Other "]")} ) action: (C {(log_warning_msg)} { (DQ ("startpar: service(s) skipped, program is not installed: ") ($ VSub_Name "$skipped_service_not_installed") ) } ) spids: [-1 596] ) ] spids: [-1 607] ) (If arms: [ (if_arm cond: (C {(Lit_Other "[")} {(-n)} {(DQ ($ VSub_Name "$skipped_service_not_configured"))} {(Lit_Other "]")} ) action: (C {(log_warning_msg)} { (DQ ("startpar: service(s) skipped, program is not configured: ") ($ VSub_Name "$skipped_service_not_configured") ) } ) spids: [-1 624] ) ] spids: [-1 635] ) (C {(unset)} {(failed_service)} {(skipped_service_not_installed)} {(skipped_service_not_configured)} ) ] spids: [518] ) spids: [514 517] ) ] ) spids: [491 496 651 -1] ) (case_arm pat_list: [{(none)} {(Lit_Other "*")}] action: (FuncDef name: startup body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LeftVar name:action) rhs: {($ VSub_Number "$1")} spids: [667] ) ] spids: [667] ) (C {(shift)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LeftVar name:scripts) rhs: {(DQ ($ VSub_At "$@"))} spids: [674] ) ] spids: [674] ) (ForEach iter_name: script iter_words: [{($ VSub_Name "$scripts")}] do_arg_iter: False body: (DoGroup child: (C {($ VSub_Name "$debug")} {(DQ ($ VSub_Name "$script"))} {($ VSub_Name "$action")} ) spids: [690 702] ) spids: [685 688] ) ] spids: [664] ) spids: [660 663] ) spids: [654 657 708 -1] ) ] spids: [482 488 710] ) (If arms: [ (if_arm cond: (C {(Lit_Other "[")} {(-d)} {(/etc/rc) ($ VSub_Name "$runlevel") (.d)} {(Lit_Other "]")}) action: (CommandList children: [ (Case to_match: {(DQ ($ VSub_Name "$runlevel"))} arms: [ (case_arm pat_list: [{(0)} {(6)}] action: (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LeftVar name:ACTION) rhs:{(stop)} spids:[746])] spids: [746] ) spids: [740 743 750 -1] ) (case_arm pat_list: [{(S)}] action: (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LeftVar name:ACTION) rhs:{(start)} spids:[757])] spids: [757] ) spids: [753 754 761 -1] ) (case_arm pat_list: [{(Lit_Other "*")}] action: (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LeftVar name:ACTION) rhs:{(start)} spids:[768])] spids: [768] ) spids: [764 765 772 -1] ) ] spids: [731 737 775] ) (If arms: [ (if_arm cond: (C {(Lit_Other "[")} {(makefile)} {(Lit_Other "=")} {(DQ ($ VSub_Name "$CONCURRENCY"))} {(Lit_Other "]")} ) action: (If arms: [ (if_arm cond: (AndOr children: [ (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$ACTION"))} {(Lit_Other "=")} {(DQ (start))} {(Lit_Other "]")} ) (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$previous"))} {(KW_Bang "!") (Lit_Other "=")} {(N)} {(Lit_Other "]")} ) ] op_id: Op_DAmp ) action: (C {(startup)} {(stop)}) spids: [-1 833] ) ] spids: [-1 841] ) spids: [-1 798] ) (if_arm cond: (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$previous"))} {(KW_Bang "!") (Lit_Other "=")} {(N)} {(Lit_Other "]")} ) action: (CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LeftVar name:CURLEVEL) rhs: {(DQ )} spids: [867] ) ] spids: [867] ) (ForEach iter_name: s iter_words: [ {(/etc/rc) ($ VSub_Name "$runlevel") (.d/K) (Lit_Other "*")} ] do_arg_iter: False body: (DoGroup child: (CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LeftVar name:level) rhs: { (BracedVarSub token: <VSub_Name s> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {(Lit_Slash /) (etc) (Lit_Slash /) (rc) ($ VSub_Name "$runlevel") (.d) (Lit_Slash /) (K) } ) spids: [892 903] ) } spids: [891] ) ] spids: [891] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LeftVar name:level) rhs: { (BracedVarSub token: <VSub_Name level> suffix_op: (StringUnary op_id: VOp1_DPercent arg_word: {("[a-zA-Z]*")} ) spids: [907 911] ) } spids: [906] ) ] spids: [906] ) (If arms: [ (if_arm cond: (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$level"))} {(Lit_Other "=")} {(DQ ($ VSub_Name "$CURLEVEL"))} {(Lit_Other "]")} ) action: (C {(continue)}) spids: [-1 931] ) ] spids: [-1 937] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LeftVar name:CURLEVEL) rhs: {($ VSub_Name "$level")} spids: [940] ) ] spids: [940] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LeftVar name:SCRIPTS) rhs: {(DQ )} spids: [944] ) ] spids: [944] ) (ForEach iter_name: i iter_words: [ {(/etc/rc) ($ VSub_Name "$runlevel") (.d/K) ($ VSub_Name "$level") (Lit_Other "*") } ] do_arg_iter: False body: (DoGroup child: (CommandList children: [ (AndOr children: [ (C {(Lit_Other "[")} {(KW_Bang "!")} {(-f)} {($ VSub_Name "$i")} {(Lit_Other "]")} ) (C {(continue)}) ] op_id: Op_DAmp ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LeftVar name:suffix) rhs: { (BracedVarSub token: <VSub_Name i> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {(Lit_Slash /) (etc) (Lit_Slash /) (rc) ($ VSub_Name "$runlevel") (.d) (Lit_Slash /) ("K[0-9][0-9]") } ) spids: [1002 1013] ) } spids: [1001] ) ] spids: [1001] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LeftVar name:previous_stop) rhs: {(/etc/rc) ($ VSub_Name "$previous") (.d/K) (Lit_Other "[") (0-9) (Lit_Other "]") (Lit_Other "[") (0-9) (Lit_Other "]") ($ VSub_Name "$suffix") } spids: [1016] ) ] spids: [1016] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LeftVar name:previous_start) rhs: {(/etc/rc) ($ VSub_Name "$previous") (.d/S) (Lit_Other "[") (0-9) (Lit_Other "]") (Lit_Other "[") (0-9) (Lit_Other "]") ($ VSub_Name "$suffix") } spids: [1029] ) ] spids: [1029] ) (AndOr children: [ (C {(Lit_Other "[")} {(-f)} {($ VSub_Name "$previous_stop")} {(Lit_Other "]")} ) (AndOr children: [ (C {(Lit_Other "[")} {(KW_Bang "!")} {(-f)} {($ VSub_Name "$previous_start")} {(Lit_Other "]")} ) (C {(continue)}) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LeftVar name:SCRIPTS) rhs: { (DQ ($ VSub_Name "$SCRIPTS") (" ") ($ VSub_Name "$i") ) } spids: [1092] ) ] spids: [1092] ) ] ) spids: [962 1100] ) spids: [954 -1] ) (C {(startup)} {(stop)} {($ VSub_Name "$SCRIPTS")}) ] ) spids: [884 1110] ) spids: [877 -1] ) ] ) spids: [844 860] ) ] spids: [-1 1113] ) (If arms: [ (if_arm cond: (C {(Lit_Other "[")} {(makefile)} {(Lit_Other "=")} {(DQ ($ VSub_Name "$CONCURRENCY"))} {(Lit_Other "]")} ) action: (If arms: [ (if_arm cond: (C {(Lit_Other "[")} {(S)} {(Lit_Other "=")} {(DQ ($ VSub_Name "$runlevel"))} {(Lit_Other "]")} ) action: (C {(startup)} {(boot)}) spids: [-1 1150] ) ] else_action: (C {(startup)} {($ VSub_Name "$ACTION")}) spids: [1158 1166] ) spids: [-1 1132] ) ] else_action: (CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LeftVar name:CURLEVEL) rhs:{(DQ )} spids:[1180])] spids: [1180] ) (ForEach iter_name: s iter_words: [{(/etc/rc) ($ VSub_Name "$runlevel") (.d/S) (Lit_Other "*")}] do_arg_iter: False body: (DoGroup child: (CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LeftVar name:level) rhs: { (BracedVarSub token: <VSub_Name s> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {(Lit_Slash /) (etc) (Lit_Slash /) (rc) ($ VSub_Name "$runlevel") (.d) (Lit_Slash /) (S) } ) spids: [1205 1216] ) } spids: [1204] ) ] spids: [1204] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LeftVar name:level) rhs: { (BracedVarSub token: <VSub_Name level> suffix_op: (StringUnary op_id: VOp1_DPercent arg_word: {("[a-zA-Z]*")} ) spids: [1220 1224] ) } spids: [1219] ) ] spids: [1219] ) (If arms: [ (if_arm cond: (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$level"))} {(Lit_Other "=")} {(DQ ($ VSub_Name "$CURLEVEL"))} {(Lit_Other "]")} ) action: (C {(continue)}) spids: [-1 1244] ) ] spids: [-1 1250] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LeftVar name:CURLEVEL) rhs: {($ VSub_Name "$level")} spids: [1253] ) ] spids: [1253] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LeftVar name:SCRIPTS) rhs: {(DQ )} spids: [1257] ) ] spids: [1257] ) (ForEach iter_name: i iter_words: [ {(/etc/rc) ($ VSub_Name "$runlevel") (.d/S) ($ VSub_Name "$level") (Lit_Other "*") } ] do_arg_iter: False body: (DoGroup child: (CommandList children: [ (AndOr children: [ (C {(Lit_Other "[")} {(KW_Bang "!")} {(-f)} {($ VSub_Name "$i")} {(Lit_Other "]")} ) (C {(continue)}) ] op_id: Op_DAmp ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LeftVar name:suffix) rhs: { (BracedVarSub token: <VSub_Name i> suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {(Lit_Slash /) (etc) (Lit_Slash /) (rc) ($ VSub_Name "$runlevel") (.d) (Lit_Slash /) ("S[0-9][0-9]") } ) spids: [1295 1306] ) } spids: [1294] ) ] spids: [1294] ) (If arms: [ (if_arm cond: (C {(Lit_Other "[")} {(DQ ($ VSub_Name "$previous"))} {(KW_Bang "!") (Lit_Other "=")} {(N)} {(Lit_Other "]")} ) action: (CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LeftVar name:stop) rhs: {(/etc/rc) ($ VSub_Name "$runlevel") (.d/K) (Lit_Other "[") (0-9) (Lit_Other "]") (Lit_Other "[") (0-9) (Lit_Other "]") ($ VSub_Name "$suffix") } spids: [1344] ) ] spids: [1344] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LeftVar name:previous_start) rhs: {(/etc/rc) ($ VSub_Name "$previous") (.d/S) (Lit_Other "[") (0-9) (Lit_Other "]") (Lit_Other "[") (0-9) (Lit_Other "]") ($ VSub_Name "$suffix") } spids: [1357] ) ] spids: [1357] ) (If arms: [ (if_arm cond: (Sentence command: (C {(Lit_Other "[")} {(start)} {(Lit_Other "=")} {(DQ ($ VSub_Name "$ACTION"))} {(Lit_Other "]")} ) terminator: <Op_Semi ";"> ) action: (AndOr children: [ (C {(Lit_Other "[")} {(-f)} { ($ VSub_Name "$previous_start" ) } {(Lit_Other "]")} ) (AndOr children: [ (C {(Lit_Other "[")} {(KW_Bang "!")} {(-f)} {($ VSub_Name "$stop")} {(Lit_Other "]")} ) (C {(continue)}) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) spids: [-1 1406] ) ] else_action: (CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LeftVar name: previous_stop ) rhs: {(/etc/rc) ($ VSub_Name "$previous" ) (.d/K) (Lit_Other "[") (0-9) (Lit_Other "]") (Lit_Other "[") (0-9) (Lit_Other "]") ($ VSub_Name "$suffix") } spids: [1445] ) ] spids: [1445] ) (AndOr children: [ (C {(Lit_Other "[")} {(-f)} { ($ VSub_Name "$previous_stop" ) } {(Lit_Other "]")} ) (AndOr children: [ (C {(Lit_Other "[")} {(KW_Bang "!")} {(-f)} {($ VSub_Name "$previous_start")} {(Lit_Other "]")} ) (C {(continue)}) ] op_id: Op_DAmp ) ] op_id: Op_DAmp ) ] ) spids: [1434 1503] ) ] ) spids: [-1 1325] ) ] spids: [-1 1507] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LeftVar name:SCRIPTS) rhs: { (DQ ($ VSub_Name "$SCRIPTS") (" ") ($ VSub_Name "$i") ) } spids: [1510] ) ] spids: [1510] ) ] ) spids: [1275 1518] ) spids: [1267 -1] ) (C {(startup)} {($ VSub_Name "$ACTION")} {($ VSub_Name "$SCRIPTS")}) ] ) spids: [1197 1528] ) spids: [1190 -1] ) ] ) spids: [1169 1531] ) ] ) spids: [-1 728] ) ] spids: [-1 1533] ) (C {(trap)} {(-)} {(EXIT)}) (C {(exit)} {(0)}) ] )