(command.CommandList children: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BADYEAR) op: assign_op.Equal rhs: {<no>} spids: [83] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HWCLOCKACCESS) op: assign_op.Equal rhs: {<yes>} spids: [86] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HWCLOCKPARS) op: assign_op.Equal rhs: (word.Empty) spids: [89] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:HCTOSYS_DEVICE) op: assign_op.Equal rhs: {<rtc0>} spids: [91] ) ] ) (C {<unset>} {<TZ>}) (command.ShFunction name: hwclocksh body: (BraceGroup 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 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 _> ) ] ) ) (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 name:BADYEAR) op: assign_op.Equal rhs: {(DQ )} spids: [216] ) ] ) ] spids: [210 214 220 -1] ) (case_arm pat_list: [{<yes>}] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:BADYEAR) op: assign_op.Equal rhs: {(DQ <--badyear>)} spids: [226] ) ] ) ] 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 '\\"'> ) ($ Id.VSub_DollarName '$BADYEAR') (word_part.EscapedLiteral token:<Id.Lit_EscapedChar '\\"'>) ) } ) terminator: <Id.Op_Semi _> ) (command.ControlFlow token: <Id.ControlFlow_Return return> arg_word: {<1>} ) ] spids: [234 235 251 -1] ) ] ) (command.Case to_match: {(DQ ($ Id.VSub_Number '$1'))} arms: [ (case_arm pat_list: [{<start>}] action: [ (command.If arms: [ (if_arm cond: [ (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_Other '\\'> <n0> <Id.Lit_Other '\\'> <nUTC> <Id.Lit_Other '\\'> <n> ) } ] redirects: [ (redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {<'/etc/adjtime'>} ) ] do_fork: T ) ] spids: [279 314] ) ] ) (command.If arms: [ (if_arm cond: [ (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] ) ] ) (command.If arms: [ (if_arm cond: [ (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: [ (command.Sentence child: (command.Pipeline children: [ (C {<sed>} {(SQ <'3!d'>)} {<'/etc/adjtime'>}) (C {<grep>} {<-q>} {(SQ <'^UTC$'>)}) ] negated: F ) terminator: <Id.Op_Semi _> ) ] action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:UTC) op: assign_op.Equal rhs: {(DQ <--utc>)} spids: [426] ) ] ) ] spids: [402 423] ) ] else_action: [ (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:UTC) op: assign_op.Equal rhs: (word.Empty) spids: [435] ) ] ) ] ) (command.If arms: [ (if_arm cond: [ (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')}) ) ) } ) ] 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')}) ) ) } ) ] ) ] spids: [371 387] ) ] else_action: [(C {<verbose_log_action_msg>} {(DQ <'Not setting System Clock'>)})] ) ] spids: [267 268 523 -1] ) (case_arm pat_list: [{<stop>} {<restart>} {<reload>} {<force-reload>}] action: [ (command.If arms: [ (if_arm cond: [ (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: [ (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>}) ) ) } ) ] spids: [591 607] ) ] ) ] spids: [565 581] ) ] else_action: [(C {<verbose_log_action_msg>} {(DQ <'Not saving System Clock'>)})] ) ] spids: [526 533 638 -1] ) (case_arm pat_list: [{<show>}] action: [ (command.If arms: [ (if_arm cond: [ (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] ) ] ) ] 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] ) ] ) ] ) ) (C {<hwclocksh>} {(DQ ($ Id.VSub_At '$@'))}) ] )