(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'BADYEAR='> name:BADYEAR) op: assign_op.Equal rhs: {<no>} spids: [83] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HWCLOCKACCESS='> name:HWCLOCKACCESS) op: assign_op.Equal rhs: {<yes>} spids: [86] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HWCLOCKPARS='> name:HWCLOCKPARS) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [89] ) ] redirects: [] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'HCTOSYS_DEVICE='> name:HCTOSYS_DEVICE) op: assign_op.Equal rhs: {<rtc0>} spids: [91] ) ] redirects: [] ) (C {<unset>} {<TZ>}) (command.ShFunction name: hwclocksh body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr ops: [Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-x>} {<'/sbin/hwclock'>} {<Id.Lit_RBracket ']'>} ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-r>} {<'/etc/default/rcS'>} {<Id.Lit_RBracket ']'>} ) (C {<.>} {<'/etc/default/rcS'>}) ] ) (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-r>} {<'/etc/default/hwclock'>} {<Id.Lit_RBracket ']'>} ) (C {<.>} {<'/etc/default/hwclock'>}) ] ) (C {<.>} {<'/lib/lsb/init-functions'>}) (command.ShFunction name: verbose_log_action_msg body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName VERBOSE))} {<Id.Lit_Equals '='>} {<no>} {<Id.Lit_RBracket ']'>} ) (C {<log_action_msg>} {(DQ ($ Id.VSub_At '@'))}) ] ) terminator: <Id.Op_Semi _> ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Case to_match: {(DQ ($ Id.VSub_DollarName BADYEAR))} arms: [ (case_arm pat_list: [{<no>} {(DQ )}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'BADYEAR='> name:BADYEAR) op: assign_op.Equal rhs: {(DQ )} spids: [216] ) ] redirects: [] ) ] spids: [210 214 220 -1] ) (case_arm pat_list: [{<yes>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'BADYEAR='> name:BADYEAR) op: assign_op.Equal rhs: {(DQ <--badyear>)} spids: [226] ) ] redirects: [] ) ] spids: [223 224 231 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (command.Sentence child: (C {<log_action_msg>} { (DQ <'unknown BADYEAR setting: '> (word_part.EscapedLiteral token: <Id.Lit_EscapedChar '\\"'> ch: '"' ) ($ Id.VSub_DollarName BADYEAR) (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'> ch:'"') ) } ) terminator: <Id.Op_Semi _> ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [234 235 251 -1] ) ] redirects: [] ) (command.Case to_match: {(DQ ($ Id.VSub_Number 1))} arms: [ (case_arm pat_list: [{<start>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DAmp Id.Op_DAmp] children: [ (C {<Id.Lit_LBracket '['>} {<-w>} {<'/etc'>} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-f>} {<'/etc/adjtime'>} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {<Id.KW_Bang '!'>} {<-e>} {<'/etc/adjtime'>} {<Id.Lit_RBracket ']'>} ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.Simple words: [ {<printf>} { (DQ <'0.0 0 0.0'> <Id.Lit_BadBackslash '\\'> <n0> <Id.Lit_BadBackslash '\\'> <nUTC> <Id.Lit_BadBackslash '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/adjtime'>} ) ] more_env: [] do_fork: T ) ] spids: [279 314] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.AndOr ops: [Id.Op_DPipe] children: [ (C {<Id.Lit_LBracket '['>} {<-d>} {<'/run/udev'>} {<Id.Lit_RBracket ']'>} ) (C {<Id.Lit_LBracket '['>} {<-d>} {<'/dev/.udev'>} {<Id.Lit_RBracket ']'>} ) ] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<0>} ) ] spids: [338 359] ) ] else_action: [] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName HWCLOCKACCESS))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<no>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<log_action_msg>} {(DQ <'Setting the system clock'>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (command.Pipeline children: [ (C {<sed>} {(SQ <'3!d'>)} {<'/etc/adjtime'>}) (C {<grep>} {<-q>} {(SQ <'^UTC$'>)}) ] negated: F stderr_indices: [] ) terminator: <Id.Op_Semi _> ) ] ) action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'UTC='> name: UTC ) op: assign_op.Equal rhs: {(DQ <--utc>)} spids: [426] ) ] redirects: [] ) ] spids: [402 423] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'UTC='> name:UTC) op: assign_op.Equal rhs: (rhs_word.Empty) spids: [435] ) ] redirects: [] ) ] redirects: [] ) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<'/sbin/hwclock'>} {<--rtc> <Id.Lit_Equals '='> <'/dev/'> ($ Id.VSub_DollarName HCTOSYS_DEVICE) } {<--hctosys>} {($ Id.VSub_DollarName HWCLOCKPARS)} {($ Id.VSub_DollarName BADYEAR)} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<verbose_log_action_msg>} { (DQ <'System Clock set to: '> (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<date>} {($ Id.VSub_DollarName UTC)}) right: <Id.Backtick_Right '`'> ) ) } ) ] spids: [453 469] ) ] else_action: [ (C {<log_warning_msg>} { (DQ <'Unable to set System Clock to: '> (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<date>} {($ Id.VSub_DollarName UTC)}) right: <Id.Backtick_Right '`'> ) ) } ) ] redirects: [] ) ] spids: [371 387] ) ] else_action: [(C {<verbose_log_action_msg>} {(DQ <'Not setting System Clock'>)})] redirects: [] ) ] spids: [267 268 523 -1] ) (case_arm pat_list: [{<stop>} {<restart>} {<reload>} {<force-reload>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName HWCLOCKACCESS))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<no>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<log_action_msg>} {(DQ <'Saving the system clock'>)}) (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<'/sbin/hwclock'>} {<--rtc> <Id.Lit_Equals '='> <'/dev/'> ($ Id.VSub_DollarName HCTOSYS_DEVICE) } {<--systohc>} {($ Id.VSub_DollarName HWCLOCKPARS)} {($ Id.VSub_DollarName BADYEAR)} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<verbose_log_action_msg>} { (DQ <'Hardware Clock updated to '> (command_sub left_token: <Id.Left_Backtick '`'> child: (C {<date>}) right: <Id.Backtick_Right '`'> ) ) } ) ] spids: [591 607] ) ] else_action: [] redirects: [] ) ] spids: [565 581] ) ] else_action: [(C {<verbose_log_action_msg>} {(DQ <'Not saving System Clock'>)})] redirects: [] ) ] spids: [526 533 638 -1] ) (case_arm pat_list: [{<show>}] action: [ (command.If arms: [ (if_arm cond: (condition.Shell commands: [ (command.Sentence child: (C {<Id.Lit_LBracket '['>} {(DQ ($ Id.VSub_DollarName HWCLOCKACCESS))} {<Id.KW_Bang '!'> <Id.Lit_Equals '='>} {<no>} {<Id.Lit_RBracket ']'>} ) terminator: <Id.Op_Semi _> ) ] ) action: [ (C {<'/sbin/hwclock'>} {<--rtc> <Id.Lit_Equals '='> <'/dev/'> ($ Id.VSub_DollarName HCTOSYS_DEVICE) } {<--show>} {($ Id.VSub_DollarName HWCLOCKPARS)} {($ Id.VSub_DollarName BADYEAR)} ) ] spids: [645 661] ) ] else_action: [] redirects: [] ) ] spids: [641 642 681 -1] ) (case_arm pat_list: [{<Id.Lit_Star '*'>}] action: [ (C {<log_success_msg>} {(DQ <'Usage: hwclock.sh {start|stop|reload|force-reload|show}'>)} ) (C {<log_success_msg>} {(DQ <' start sets kernel (system) clock from hardware (RTC) clock'>)} ) (C {<log_success_msg>} { (DQ < ' stop and reload set hardware (RTC) clock from kernel (system) clock' > ) } ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [684 685 714 -1] ) ] redirects: [] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (C {<hwclocksh>} {(DQ ($ Id.VSub_At '@'))}) ] )