(command.CommandList children: [ (command.AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(-x)} {(/sbin/resolvconf)} {(Lit_Other ']')}) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:PATH spids:[86]) op: Equal rhs: {(/sbin) (Lit_Other ':') (/bin)} spids: [86] ) ] spids: [86] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:RUN_DIR spids:[91]) op: Equal rhs: {(/run/resolvconf)} spids: [91] ) ] spids: [91] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:ENABLE_UPDATES_FLAGFILE spids:[94]) op: Equal rhs: {(DQ (${ VSub_Name RUN_DIR) (/enable-updates))} spids: [94] ) ] spids: [94] ) (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:POSTPONED_UPDATE_FLAGFILE spids:[102]) op: Equal rhs: {(DQ (${ VSub_Name RUN_DIR) (/postponed-update))} spids: [102] ) ] spids: [102] ) (C {(.)} {(/lib/lsb/init-functions)}) (command.Case to_match: {(DQ ($ VSub_Number '$1'))} arms: [ (case_arm pat_list: [{(start)} {(restart)} {(force-reload)}] action: [ (command.AndOr ops: [Op_DAmp] children: [ (C {(init_is_upstart)}) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(1)}) ] ) ] spids: [128 133 145 16777215] ) (case_arm pat_list: [{(stop)}] action: [ (command.AndOr ops: [Op_DAmp] children: [ (C {(init_is_upstart)}) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] ) ] spids: [148 149 161 16777215] ) ] spids: [119 125 163] ) (command.FuncDef name: log_action_end_msg_and_exit body: (command.BraceGroup children: [ (C {(log_action_end_msg)} {(DQ ($ VSub_Number '$1'))} { (word_part.BracedVarSub token: <VSub_Number 2> suffix_op: (suffix_op.StringUnary op_id: VTest_ColonPlus arg_word: {(DQ ($ VSub_Number '$2'))} ) spids: [185 191] ) } ) (command.ControlFlow token: <ControlFlow_Exit exit> arg_word: {($ VSub_Number '$1')} ) ] spids: [176] ) spids: [172 175] ) (command.FuncDef name: create_runtime_directories body: (command.BraceGroup children: [ (C {(umask)} {(022)}) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} {(DQ ($ VSub_DollarName '$RUN_DIR'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(-L)} {(DQ ($ VSub_DollarName '$RUN_DIR'))} {(Lit_Other ']')} ) (C {(log_action_end_msg_and_exit)} {(1)} { (DQ ($ VSub_DollarName '$RUN_DIR') (' is neither a directory nor a symbolic link') ) } ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (command.BraceGroup children: [ (command.Sentence child: (command.AndOr ops: [Op_DAmp] children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:RUN_CANONICALDIR spids:[260]) op: Equal rhs: { (DQ (word_part.CommandSubPart command_list: (command.CommandList children: [ (C {(readlink)} {(-f)} {(DQ ($ VSub_DollarName '$RUN_DIR'))} ) ] ) left_token: <Left_CommandSub '$('> spids: [262 270] ) ) } spids: [260] ) ] spids: [260] ) (C {(Lit_Other '[')} {(DQ ($ VSub_DollarName '$RUN_CANONICALDIR'))} {(Lit_Other ']')} ) ] ) terminator: <Op_Semi ';'> ) ] spids: [258] ) (C {(log_action_end_msg_and_exit)} {(1)} {(DQ ('Canonical path of the run directory could not be determined'))} ) ] ) (command.AndOr ops: [Op_DPipe] children: [ (C {(mkdir)} {(DQ ($ VSub_DollarName '$RUN_CANONICALDIR'))}) (C {(log_action_end_msg_and_exit)} {(1)} { (DQ ('Error creating directory ') ($ VSub_DollarName '$RUN_CANONICALDIR')) } ) ] ) ] spids: [16777215 229] ) ] spids: [16777215 320] ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} {(DQ (${ VSub_Name RUN_DIR) (/interface))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (command.AndOr ops: [Op_DPipe] children: [ (C {(mkdir)} {(DQ (${ VSub_Name RUN_DIR) (/interface))}) (C {(log_action_end_msg_and_exit)} {(1)} {(DQ ('Error creating directory ') (${ VSub_Name RUN_DIR) (/interface))} ) ] ) ] spids: [16777215 346] ) ] spids: [16777215 373] ) (command.ControlFlow token:<ControlFlow_Return return>) ] spids: [205] ) spids: [201 204] ) (command.FuncDef name: wipe_runtime_directories body: (command.BraceGroup children: [ (command.AndOr ops: [Op_DPipe] children: [ (C {(Lit_Other '[')} {(-d)} {(DQ ($ VSub_DollarName '$RUN_DIR'))} {(Lit_Other ']')}) (command.ControlFlow token:<ControlFlow_Return return>) ] ) (C {(rm)} {(-f)} {(DQ ($ VSub_DollarName '$RUN_DIR')) (/resolv.conf)}) (C {(rm)} {(-f)} {(DQ ($ VSub_DollarName '$ENABLE_UPDATES_FLAGFILE'))}) (C {(rm)} {(-f)} {(DQ ($ VSub_DollarName '$POSTPONED_UPDATE_FLAGFILE'))}) (C {(rm)} {(-rf)} {(DQ (${ VSub_Name RUN_DIR) ('/interface/*'))}) (command.ControlFlow token:<ControlFlow_Return return>) ] spids: [389] ) spids: [385 388] ) (command.Case to_match: {(DQ ($ 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: [Op_DPipe] children: [ (command.SimpleCommand words: [{(Lit_Other ':')}] redirects: [ (redir.Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_DollarName '$POSTPONED_UPDATE_FLAGFILE'))} ) ] ) (C {(log_action_end_msg_and_exit)} {(1)} {(DQ ('failed requesting update'))}) ] ) (command.AndOr ops: [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 16777215] ) (case_arm pat_list: [{(stop)}] action: [ (C {(log_action_begin_msg)} {(DQ ('Stopping resolvconf'))}) (command.AndOr ops: [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 16777215] ) (case_arm pat_list: [{(restart)}] action: [ (C {(log_action_begin_msg)} {(DQ ('Restarting resolvconf'))}) (command.AndOr ops: [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 16777215] ) (case_arm pat_list: [{(reload)} {(force-reload)}] action: [ (command.AndOr ops: [Op_DPipe] children: [ (C {(resolvconf)} {(-u)}) (C {(log_action_end_msg_and_exit)} {(1)} {(DQ ('failed to update'))}) ] ) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] spids: [619 622 645 16777215] ) (case_arm pat_list: [{(enable-updates)}] action: [ (command.AndOr ops: [Op_DPipe] children: [ (C {(resolvconf)} {(--enable-updates)}) (C {(log_action_end_msg_and_exit)} {(1)} {(DQ ('failed to enable updates'))}) ] ) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] spids: [648 649 672 16777215] ) (case_arm pat_list: [{(disable-updates)}] action: [ (command.AndOr ops: [Op_DPipe] children: [ (C {(resolvconf)} {(--disable-updates)}) (C {(log_action_end_msg_and_exit)} {(1)} {(DQ ('failed to disable updates'))}) ] ) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] spids: [675 676 699 16777215] ) (case_arm pat_list: [{(status)}] action: [ (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(resolvconf)} {(--updates-are-enabled)}) terminator: <Op_Semi ';'> ) ] action: [(C {(log_success_msg)} {(DQ ('resolvconf updates are enabled'))})] spids: [16777215 714] ) ] else_action: [(C {(log_failure_msg)} {(DQ ('resolvconf updates are disabled'))})] spids: [724 734] ) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] spids: [702 703 742 16777215] ) (case_arm pat_list: [{(Lit_Other '*')}] action: [ (command.SimpleCommand words: [ {(echo)} { (DQ ( 'Usage: /etc/init.d/resolvconf {start|stop|restart|reload|force-reload|enable-updates|disable-updates|status}' ) ) } ] redirects: [(redir.Redir op:<Redir_GreatAnd '>&'> fd:16777215 arg_word:{(2)})] ) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(3)}) ] spids: [745 746 764 16777215] ) ] spids: [456 462 766] ) (command.ControlFlow token:<ControlFlow_Exit exit> arg_word:{(99)}) ] )