(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:NETDOWN) op: assign_op.Equal rhs: {<yes>} spids: [31] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:PATH) op: assign_op.Equal rhs: {</sbin> <Id.Lit_Other ':'> </usr/sbin> <Id.Lit_Other ':'> </bin> <Id.Lit_Other ':'> </usr/bin> } spids: [35] ) ] ) (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-f>} {</etc/default/halt>} {<Id.Lit_RBracket ']'>}) (C {<.>} {</etc/default/halt>}) ] ) (C {<.>} {</lib/lsb/init-functions>}) (command.ShFunction name: do_stop body: (command.BraceGroup children: [ (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INIT_HALT'))} {<Id.Lit_Equals '='>} {(DQ )} {<Id.Lit_RBracket ']'>} ) ] action: [ (command.Case to_match: {(DQ ($ Id.VSub_DollarName '$HALT'))} arms: [ (case_arm pat_list: [ {<Id.Lit_LBracket '['> <Pp> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>} ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:INIT_HALT) op: assign_op.Equal rhs: {<POWEROFF>} spids: [107] ) ] ) ] spids: [100 104 111 -1] ) (case_arm pat_list: [ {<Id.Lit_LBracket '['> <Hh> <Id.Lit_RBracket ']'> <Id.Lit_Star '*'>} ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:INIT_HALT) op: assign_op.Equal rhs: {<HALT>} spids: [121] ) ] ) ] spids: [114 118 125 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:INIT_HALT) op: assign_op.Equal rhs: {<POWEROFF>} spids: [132] ) ] ) ] spids: [128 129 136 -1] ) ] ) ] spids: [72 88] ) ] ) (command.If arms: [ (if_arm cond: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INIT_HALT'))} {<Id.Lit_Equals '='>} {(DQ <POWEROFF>)} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {<-x>} {</etc/init.d/ups-monitor>} {<Id.Lit_RBracket ']'>} ) ] ) ] action: [(C {</etc/init.d/ups-monitor>} {<poweroff>})] spids: [150 177] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:hddown) op: assign_op.Equal rhs: {(DQ <-h>)} spids: [193] ) ] ) (command.If arms: [ (if_arm cond: [(C {<grep>} {<-qs>} {(SQ <'^md.*active'>)} {</proc/mdstat>})] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:hddown) op: assign_op.Equal rhs: {(DQ )} spids: [215] ) ] ) ] spids: [199 212] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:poweroff) op: assign_op.Equal rhs: {(DQ <-p>)} spids: [228] ) ] ) (command.If arms: [ (if_arm cond: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$INIT_HALT'))} {<Id.Lit_Equals '='>} {(DQ <HALT>)} {<Id.Lit_RBracket ']'>} ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:poweroff) op: assign_op.Equal rhs: {(DQ )} spids: [254] ) ] ) ] spids: [234 251] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:netdown) op: assign_op.Equal rhs: {(DQ <-i>)} spids: [271] ) ] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName '$NETDOWN'))} {<Id.Lit_Equals '='>} {(DQ <no>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:netdown) op: assign_op.Equal rhs: {(DQ )} spids: [297] ) ] ) ] spids: [277 294] ) ] ) (C {<log_action_msg>} {(DQ <'Will now halt'>)}) (C {<halt>} {<-d>} {<-f>} {($ Id.VSub_DollarName '$netdown')} {($ Id.VSub_DollarName '$poweroff')} {($ Id.VSub_DollarName '$hddown')} ) ] ) ) (command.Case to_match: {(DQ ($ Id.VSub_Number '$1'))} arms: [ (case_arm pat_list:[{<start>} {<status>}] spids:[337 340 347 -1]) (case_arm pat_list: [{<restart>} {<reload>} {<force-reload>}] action: [ (command.Simple words: [{<echo>} {(DQ <"Error: argument '"> ($ Id.VSub_Number '$1') <"' not supported">)}] redirects: [(redir.Redir op:<Id.Redir_GreatAnd '>&'> fd:-1 arg_word:{<2>})] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<3>}) ] spids: [350 355 375 -1] ) (case_arm pat_list:[{<stop>}] action:[(C {<do_stop>})] spids:[378 379 385 -1]) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.Simple words: [{<echo>} {(DQ <'Usage: '> ($ Id.VSub_Number '$0') <' start|stop'>)}] redirects: [(redir.Redir op:<Id.Redir_GreatAnd '>&'> fd:-1 arg_word:{<2>})] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<3>}) ] spids: [388 389 409 -1] ) ] ) (C {<Id.Lit_Other ':'>}) ] )