(command.CommandList children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {<-x>} {<'/sbin/resolvconf'>} {<Id.Lit_RBracket ']'>}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'PATH='> name:PATH) op: assign_op.Equal rhs: {<'/sbin'> <Id.Lit_Colon ':'> <'/bin'>} spids: [86] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'RUN_DIR='> name:RUN_DIR) op: assign_op.Equal rhs: {<'/run/resolvconf'>} spids: [91] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'ENABLE_UPDATES_FLAGFILE='> name: ENABLE_UPDATES_FLAGFILE ) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RUN_DIR) <'/enable-updates'>)} spids: [94] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'POSTPONED_UPDATE_FLAGFILE='> name: POSTPONED_UPDATE_FLAGFILE ) op: assign_op.Equal rhs: {(DQ (${ Id.VSub_Name RUN_DIR) <'/postponed-update'>)} spids: [102] ) ] redirects: [] ) (C {<.>} {<'/lib/lsb/init-functions'>}) (command.Case to_match: {(DQ ($ Id.VSub_Number 1))} arms: [ (case_arm pat_list: [{<start>} {<restart>} {<force-reload>}] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<init_is_upstart>}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<1>}) ] ) ] spids: [128 133 145 -1] ) (case_arm pat_list: [{<stop>}] action: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<init_is_upstart>}) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] ) ] spids: [148 149 161 -1] ) ] redirects: [] ) (command.ShFunction name: log_action_end_msg_and_exit body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<log_action_end_msg>} {(DQ ($ Id.VSub_Number 1))} { (braced_var_sub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Number 2> var_name: 2 suffix_op: (suffix_op.Unary op: <Id.VTest_ColonPlus _> arg_word: {(DQ ($ Id.VSub_Number 2))} ) right: <Id.Right_DollarBrace '}'> ) } ) (command.ControlFlow token: <Id.ControlFlow_Exit exit> arg_word: {($ Id.VSub_Number 1)} ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: create_runtime_directories body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (C {<umask>} {<022>}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {(DQ ($ Id.VSub_DollarName RUN_DIR))} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {<-L>} {(DQ ($ Id.VSub_DollarName RUN_DIR))} {<Id.Lit_RBracket ']'>} ) (C {<log_action_end_msg_and_exit>} {<1>} { (DQ ($ Id.VSub_DollarName RUN_DIR) <' is neither a directory nor a symbolic link'> ) } ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp] children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'RUN_CANONICALDIR='> name: RUN_CANONICALDIR ) op: assign_op.Equal rhs: { (DQ (command_sub left_token: <Id.Left_DollarParen '$('> child: (C {<readlink>} {<-f>} {(DQ ($ Id.VSub_DollarName RUN_DIR))} ) right: <Id.Eof_RParen _> ) ) } spids: [260] ) ] redirects: [] ) (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName RUN_CANONICALDIR))} {<Id.Lit_RBracket ']'>} ) ] ) terminator: <Id.Op_Semi _> ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) (C {<log_action_end_msg_and_exit>} {<1>} {(DQ <'Canonical path of the run directory could not be determined'>)} ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<mkdir>} {(DQ ($ Id.VSub_DollarName RUN_CANONICALDIR))}) (C {<log_action_end_msg_and_exit>} {<1>} {(DQ <'Error creating directory '> ($ Id.VSub_DollarName RUN_CANONICALDIR))} ) ] ) ] spids: [213 229] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-d>} {(DQ (${ Id.VSub_Name RUN_DIR) <'/interface'>)} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<mkdir>} {(DQ (${ Id.VSub_Name RUN_DIR) <'/interface'>)}) (C {<log_action_end_msg_and_exit>} {<1>} { (DQ <'Error creating directory '> (${ Id.VSub_Name RUN_DIR) <'/interface'>) } ) ] ) ] spids: [327 346] ) ] else_action: [] redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name: wipe_runtime_directories body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {<-d>} {(DQ ($ Id.VSub_DollarName RUN_DIR))} {<Id.Lit_RBracket ']'>} ) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] ) (C {<rm>} {<-f>} {(DQ ($ Id.VSub_DollarName RUN_DIR)) <'/resolv.conf'>}) (C {<rm>} {<-f>} {(DQ ($ Id.VSub_DollarName ENABLE_UPDATES_FLAGFILE))}) (C {<rm>} {<-f>} {(DQ ($ Id.VSub_DollarName POSTPONED_UPDATE_FLAGFILE))}) (C {<rm>} {<-rf>} {(DQ (${ Id.VSub_Name RUN_DIR) <'/interface/*'>)}) (command.ControlFlow token:<Id.ControlFlow_Return return>) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Case to_match: {(DQ ($ Id.VSub_Number 1))} arms: [ (case_arm pat_list: [{<start>}] action: [ (C {<log_action_begin_msg>} {(DQ <'Setting up resolvconf'>)}) (C {<wipe_runtime_directories>}) (C {<create_runtime_directories>}) (command.AndOr ops: [Id.Op_DPipe] children: [ (command.Simple words: [{<Id.Lit_Colon ':'>}] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ ($ Id.VSub_DollarName POSTPONED_UPDATE_FLAGFILE))} ) ] more_env: [] do_fork: T ) (C {<log_action_end_msg_and_exit>} {<1>} {(DQ <'failed requesting update'>)}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<resolvconf>} {<--enable-updates>}) (C {<log_action_end_msg_and_exit>} {<1>} {(DQ <'failed to enable updates'>)}) ] ) (C {<log_action_end_msg_and_exit>} {<0>}) ] spids: [465 466 544 -1] ) (case_arm pat_list: [{<stop>}] action: [ (C {<log_action_begin_msg>} {(DQ <'Stopping resolvconf'>)}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<resolvconf>} {<--disable-updates>}) (C {<log_action_end_msg_and_exit>} {<1>} {(DQ <'failed to disable updates'>)}) ] ) (C {<log_action_end_msg_and_exit>} {<0>}) ] spids: [547 548 582 -1] ) (case_arm pat_list: [{<restart>}] action: [ (C {<log_action_begin_msg>} {(DQ <'Restarting resolvconf'>)}) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<resolvconf>} {<--enable-updates>}) (C {<log_action_end_msg_and_exit>} {<1>} {(DQ <'failed to enable updates'>)}) ] ) (C {<log_action_end_msg_and_exit>} {<0>}) ] spids: [585 586 616 -1] ) (case_arm pat_list: [{<reload>} {<force-reload>}] action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<resolvconf>} {<-u>}) (C {<log_action_end_msg_and_exit>} {<1>} {(DQ <'failed to update'>)}) ] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] spids: [619 622 645 -1] ) (case_arm pat_list: [{<enable-updates>}] action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<resolvconf>} {<--enable-updates>}) (C {<log_action_end_msg_and_exit>} {<1>} {(DQ <'failed to enable updates'>)}) ] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] spids: [648 649 672 -1] ) (case_arm pat_list: [{<disable-updates>}] action: [ (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<resolvconf>} {<--disable-updates>}) (C {<log_action_end_msg_and_exit>} {<1>} {(DQ <'failed to disable updates'>)}) ] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] spids: [675 676 699 -1] ) (case_arm pat_list: [{<status>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<resolvconf>} {<--updates-are-enabled>}) terminator: <Id.Op_Semi _> ) ] ) action: [(C {<log_success_msg>} {(DQ <'resolvconf updates are enabled'>)})] spids: [706 714] ) ] else_action: [(C {<log_failure_msg>} {(DQ <'resolvconf updates are disabled'>)})] redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<0>}) ] spids: [702 703 742 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.Simple words: [ {<echo>} { (DQ < 'Usage: /etc/init.d/resolvconf {start|stop|restart|reload|force-reload|enable-updates|disable-updates|status}' > ) } ] redirects: [(redir op:<Id.Redir_GreatAnd '>&'> loc:(redir_loc.Fd fd:1) arg:{<2>})] more_env: [] do_fork: T ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<3>}) ] spids: [745 746 764 -1] ) ] redirects: [] ) (command.ControlFlow token:<Id.ControlFlow_Exit exit> arg_word:{<99>}) ] )