(CommandList children: [ (BraceGroup children: [ (C {(.)} {(/DietPi/dietpi/func/dietpi-globals)}) (C {(G_CHECK_ROOT_USER)}) (C {(export)} {(Lit_VarLike 'G_PROGRAM_NAME=') (SQ <DietPi-Cron>)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PROGRAM_NAME) op: Equal rhs: {(DQ (DietPi-Cron))} spids: [100] ) ] spids: [100] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:TARGETMENUID) op:Equal rhs:{(0)} spids:[107])] spids: [107] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PREVIOUS_MENU_SELECTION) op: Equal rhs: {(DQ (cron.hourly))} spids: [111] ) ] spids: [111] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:OPTION) op:Equal rhs:{(0)} spids:[117])] spids: [117] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:CHOICE) op:Equal rhs:{(0)} spids:[121])] spids: [121] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:aCRON_TIME) op: Equal rhs: {(ArrayLiteralPart)} spids: [125] ) ] spids: [125] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:aDAY_OF_THE_WEEK_TEXT) op: Equal rhs: { (ArrayLiteralPart words: [ {(DQ (Monday))} {(DQ (Tuesday))} {(DQ (Wednesday))} {(DQ (Thursday))} {(DQ (Friday))} {(DQ (Saturday))} {(DQ (Sunday))} ] ) } spids: [130] ) ] spids: [130] ) (FuncDef name: Read_Cron_Times body: (BraceGroup children: [ (C {(aCRON_TIME) (Lit_Other '[') (0) (Lit_Other ']') (Lit_Other '=') (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(cat)} {(/etc/crontab)}) (C {(grep)} {(-m1)} {(SQ <cron.hourly>)}) (C {(awk)} {(SQ <'{print $1}'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [189 211] ) } ) (C {(aCRON_TIME) (Lit_Other '[') (1) (Lit_Other ']') (Lit_Other '=') (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(cat)} {(/etc/crontab)}) (C {(grep)} {(-m1)} {(SQ <cron.daily>)}) (C {(awk)} {(SQ <'{print $1}'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [224 246] ) } ) (C {(aCRON_TIME) (Lit_Other '[') (2) (Lit_Other ']') (Lit_Other '=') (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(cat)} {(/etc/crontab)}) (C {(grep)} {(-m1)} {(SQ <cron.daily>)}) (C {(awk)} {(SQ <'{print $2}'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [254 276] ) } ) (C {(aCRON_TIME) (Lit_Other '[') (3) (Lit_Other ']') (Lit_Other '=') (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(cat)} {(/etc/crontab)}) (C {(grep)} {(-m1)} {(SQ <cron.weekly>)}) (C {(awk)} {(SQ <'{print $1}'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [289 311] ) } ) (C {(aCRON_TIME) (Lit_Other '[') (4) (Lit_Other ']') (Lit_Other '=') (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(cat)} {(/etc/crontab)}) (C {(grep)} {(-m1)} {(SQ <cron.weekly>)}) (C {(awk)} {(SQ <'{print $2}'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [319 341] ) } ) (C {(aCRON_TIME) (Lit_Other '[') (5) (Lit_Other ']') (Lit_Other '=') (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(cat)} {(/etc/crontab)}) (C {(grep)} {(-m1)} {(SQ <cron.weekly>)}) (C {(awk)} {(SQ <'{print $5}'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [349 371] ) } ) (C {(aCRON_TIME) (Lit_Other '[') (6) (Lit_Other ']') (Lit_Other '=') (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(cat)} {(/etc/crontab)}) (C {(grep)} {(-m1)} {(SQ <cron.monthly>)}) (C {(awk)} {(SQ <'{print $1}'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [384 406] ) } ) (C {(aCRON_TIME) (Lit_Other '[') (7) (Lit_Other ']') (Lit_Other '=') (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(cat)} {(/etc/crontab)}) (C {(grep)} {(-m1)} {(SQ <cron.monthly>)}) (C {(awk)} {(SQ <'{print $2}'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [414 436] ) } ) (C {(aCRON_TIME) (Lit_Other '[') (8) (Lit_Other ']') (Lit_Other '=') (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(cat)} {(/etc/crontab)}) (C {(grep)} {(-m1)} {(SQ <cron.monthly>)}) (C {(awk)} {(SQ <'{print $3}'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [444 466] ) } ) (ForExpr init: (BinaryAssign op_id: Arith_Equal left: (LhsName name:i) right: (ArithWord w:{(Lit_Digits 0)}) ) cond: (ArithBinary op_id: Arith_Less left: (ArithVarRef name:i) right: (ArithWord w: { (BracedVarSub token: <VSub_Name aCRON_TIME> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [484 490] ) } ) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: { (BracedVarSub token: <VSub_Name aCRON_TIME> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name '$i')}) ) spids: [506 511] ) } right: {(Lit_Other '^') (-) (Lit_Other '?') (Lit_Other '[') (0-9) (Lit_Other ']') (Lit_Other '+') (Lit_Other '$') } ) ) terminator: <Op_Semi ';'> ) ] action: [ (Sentence child: (C {(echo)} {(DQ (valid))}) terminator: <Op_Amp '&'> ) (SimpleCommand redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/dev/null)} spids: [537] ) ] ) ] spids: [16777215 527] ) ] else_action: [ (C {(aCRON_TIME) (Lit_Other '[') ($ VSub_Name '$i') (Lit_Other ']') (Lit_Other '=') (1) } ) ] spids: [542 557] ) ] spids: [499 560] ) ) ] spids: [176] ) spids: [173 176] ) (FuncDef name: Write_Cron_Times body: (BraceGroup children: [ (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: { (DQ ('#Please use dietpi-cron to change cron start times\n') ('SHELL=/bin/sh\n') ('PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin\n') ('\n') ('# m h dom mon dow user command\n') (BracedVarSub token: <VSub_Name aCRON_TIME> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)})) spids: [590 595] ) (' * * * * root cd / && run-parts --report /etc/cron.hourly\n') (BracedVarSub token: <VSub_Name aCRON_TIME> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)})) spids: [597 602] ) (' ') (BracedVarSub token: <VSub_Name aCRON_TIME> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 2)})) spids: [604 609] ) (' * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )\n') (BracedVarSub token: <VSub_Name aCRON_TIME> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 3)})) spids: [611 616] ) (' ') (BracedVarSub token: <VSub_Name aCRON_TIME> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 4)})) spids: [618 623] ) (' * * ') (BracedVarSub token: <VSub_Name aCRON_TIME> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 5)})) spids: [625 630] ) (' root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )\n') (BracedVarSub token: <VSub_Name aCRON_TIME> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 6)})) spids: [632 637] ) (' ') (BracedVarSub token: <VSub_Name aCRON_TIME> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 7)})) spids: [639 644] ) (' ') (BracedVarSub token: <VSub_Name aCRON_TIME> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 8)})) spids: [646 651] ) (' * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )\n') ) } do_expansion: True here_end: _EOF_ was_filled: T spids: [577] ) (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/etc/crontab)} spids: [581] ) ] ) ] spids: [571] ) spids: [568 571] ) (FuncDef name: Input_Cron_Minute body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:input_value) op: Equal rhs: {($ VSub_Number '$1')} spids: [669] ) ] spids: [667] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:min_value) op:Equal rhs:{(0)} spids:[675])] spids: [673] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:max_value) op:Equal rhs:{(59)} spids:[681])] spids: [679] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OPTION) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [ {(whiptail)} {(--inputbox)} { (DQ ('Please enter a value for MINUTE:') (Lit_Other '\\') ('n - Valid range (') ($ VSub_Name '$min_value') (' - ') ($ VSub_Name '$max_value') (')') ) } {(9)} {(50)} {(DQ ($ VSub_Name '$input_value'))} {(--title)} {(DQ ('Set Minute'))} ] redirects: [ (Redir op_id: Redir_GreatAnd fd: 3 arg_word: {(1)} spids: [716] ) (Redir op_id: Redir_GreatAnd fd: 1 arg_word: {(2)} spids: [719] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(3)} spids: [722] ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [687 724] ) } spids: [686] ) ] spids: [686] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CHOICE) op: Equal rhs: {($ VSub_QMark '$?')} spids: [727] ) ] spids: [727] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$CHOICE')}) right: (ArithWord w:{(Lit_Digits 0)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DAmp Op_DAmp] children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {($ VSub_Name '$OPTION')} right: {(Lit_Other '^') (-) (Lit_Other '?') (Lit_Other '[') (0-9) (Lit_Other ']') (Lit_Other '+') (Lit_Other '$') } ) ) (DParen child: (ArithBinary op_id: Arith_GreatEqual left: (ArithWord w:{($ VSub_Name '$OPTION')}) right: (ArithWord w:{($ VSub_Name '$min_value')}) ) ) (DParen child: (ArithBinary op_id: Arith_LessEqual left: (ArithWord w:{($ VSub_Name '$OPTION')}) right: (ArithWord w:{($ VSub_Name '$max_value')}) ) ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:input_value) op: Equal rhs: {($ VSub_Name '$OPTION')} spids: [803] ) ] spids: [803] ) ] spids: [16777215 800] ) ] else_action: [(C {(Info_Input_Not_Valid_Integer)})] spids: [807 813] ) ] spids: [16777215 745] ) ] spids: [16777215 816] ) (ControlFlow token: <ControlFlow_Return return> arg_word: {($ VSub_Name '$input_value')} ) ] spids: [663] ) spids: [660 663] ) (FuncDef name: Input_Cron_Hour body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:input_value) op: Equal rhs: {($ VSub_Number '$1')} spids: [839] ) ] spids: [837] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:min_value) op:Equal rhs:{(0)} spids:[845])] spids: [843] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:max_value) op:Equal rhs:{(23)} spids:[851])] spids: [849] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OPTION) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [ {(whiptail)} {(--inputbox)} { (DQ ('Please enter a value for HOUR (24h):') (Lit_Other '\\') ('n - Valid range (') ($ VSub_Name '$min_value') (' - ') ($ VSub_Name '$max_value') (')') ) } {(9)} {(50)} {(DQ ($ VSub_Name '$input_value'))} {(--title)} {(DQ ('Set Hour'))} ] redirects: [ (Redir op_id: Redir_GreatAnd fd: 3 arg_word: {(1)} spids: [886] ) (Redir op_id: Redir_GreatAnd fd: 1 arg_word: {(2)} spids: [889] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(3)} spids: [892] ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [857 894] ) } spids: [856] ) ] spids: [856] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CHOICE) op: Equal rhs: {($ VSub_QMark '$?')} spids: [897] ) ] spids: [897] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$CHOICE')}) right: (ArithWord w:{(Lit_Digits 0)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DAmp Op_DAmp] children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {($ VSub_Name '$OPTION')} right: {(Lit_Other '^') (-) (Lit_Other '?') (Lit_Other '[') (0-9) (Lit_Other ']') (Lit_Other '+') (Lit_Other '$') } ) ) (DParen child: (ArithBinary op_id: Arith_GreatEqual left: (ArithWord w:{($ VSub_Name '$OPTION')}) right: (ArithWord w:{($ VSub_Name '$min_value')}) ) ) (DParen child: (ArithBinary op_id: Arith_LessEqual left: (ArithWord w:{($ VSub_Name '$OPTION')}) right: (ArithWord w:{($ VSub_Name '$max_value')}) ) ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:input_value) op: Equal rhs: {($ VSub_Name '$OPTION')} spids: [973] ) ] spids: [973] ) ] spids: [16777215 970] ) ] else_action: [(C {(Info_Input_Not_Valid_Integer)})] spids: [977 983] ) ] spids: [16777215 915] ) ] spids: [16777215 986] ) (ControlFlow token: <ControlFlow_Return return> arg_word: {($ VSub_Name '$input_value')} ) ] spids: [833] ) spids: [830 833] ) (FuncDef name: Input_Cron_DayOfWeek body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:input_value) op: Equal rhs: {($ VSub_Number '$1')} spids: [1009] ) ] spids: [1007] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:min_value) op:Equal rhs:{(1)} spids:[1015])] spids: [1013] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:max_value) op:Equal rhs:{(7)} spids:[1021])] spids: [1019] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OPTION) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [ {(whiptail)} {(--title)} {(DQ ('Day of the Week'))} {(--menu)} {(DQ ('Please select a day of the week.'))} {(--cancel-button)} {(DQ (Cancel))} {(--default-item)} {(DQ ($ VSub_Name '$input_value'))} {(15)} {(45)} {(7)} {(DQ (1))} { (DQ (BracedVarSub token: <VSub_Name aDAY_OF_THE_WEEK_TEXT> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)})) spids: [1067 1072] ) ) } {(DQ (2))} { (DQ (BracedVarSub token: <VSub_Name aDAY_OF_THE_WEEK_TEXT> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)})) spids: [1082 1087] ) ) } {(DQ (3))} { (DQ (BracedVarSub token: <VSub_Name aDAY_OF_THE_WEEK_TEXT> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 2)})) spids: [1097 1102] ) ) } {(DQ (4))} { (DQ (BracedVarSub token: <VSub_Name aDAY_OF_THE_WEEK_TEXT> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 3)})) spids: [1112 1117] ) ) } {(DQ (5))} { (DQ (BracedVarSub token: <VSub_Name aDAY_OF_THE_WEEK_TEXT> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 4)})) spids: [1127 1132] ) ) } {(DQ (6))} { (DQ (BracedVarSub token: <VSub_Name aDAY_OF_THE_WEEK_TEXT> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 5)})) spids: [1142 1147] ) ) } {(DQ (7))} { (DQ (BracedVarSub token: <VSub_Name aDAY_OF_THE_WEEK_TEXT> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 6)})) spids: [1157 1162] ) ) } ] redirects: [ (Redir op_id: Redir_GreatAnd fd: 3 arg_word: {(1)} spids: [1165] ) (Redir op_id: Redir_GreatAnd fd: 1 arg_word: {(2)} spids: [1168] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(3)} spids: [1171] ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [1027 1173] ) } spids: [1026] ) ] spids: [1026] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$CHOICE')}) right: (ArithWord w:{(Lit_Digits 0)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:input_value) op: Equal rhs: {($ VSub_Name '$OPTION')} spids: [1194] ) ] spids: [1194] ) ] spids: [16777215 1191] ) ] spids: [16777215 1198] ) (ControlFlow token: <ControlFlow_Return return> arg_word: {($ VSub_Name '$input_value')} ) ] spids: [1003] ) spids: [1000 1003] ) (FuncDef name: Input_Cron_DayOfMonth body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:input_value) op: Equal rhs: {($ VSub_Number '$1')} spids: [1221] ) ] spids: [1219] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:min_value) op:Equal rhs:{(1)} spids:[1227])] spids: [1225] ) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:max_value) op:Equal rhs:{(28)} spids:[1233])] spids: [1231] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OPTION) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [ {(whiptail)} {(--inputbox)} { (DQ ('Please enter a value for DAY of the MONTH:') (Lit_Other '\\') ('n - Valid range (') ($ VSub_Name '$min_value') (' - ') ($ VSub_Name '$max_value') (')') (Lit_Other '\\') ('n - eg: 11 = the 11th day of month') ) } {(10)} {(50)} {(DQ ($ VSub_Name '$input_value'))} {(--title)} {(DQ ('Set Day of Month'))} ] redirects: [ (Redir op_id: Redir_GreatAnd fd: 3 arg_word: {(1)} spids: [1270] ) (Redir op_id: Redir_GreatAnd fd: 1 arg_word: {(2)} spids: [1273] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(3)} spids: [1276] ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [1239 1278] ) } spids: [1238] ) ] spids: [1238] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CHOICE) op: Equal rhs: {($ VSub_QMark '$?')} spids: [1281] ) ] spids: [1281] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$CHOICE')}) right: (ArithWord w:{(Lit_Digits 0)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DAmp Op_DAmp] children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {($ VSub_Name '$OPTION')} right: {(Lit_Other '^') (-) (Lit_Other '?') (Lit_Other '[') (0-9) (Lit_Other ']') (Lit_Other '+') (Lit_Other '$') } ) ) (DParen child: (ArithBinary op_id: Arith_GreatEqual left: (ArithWord w:{($ VSub_Name '$OPTION')}) right: (ArithWord w:{($ VSub_Name '$min_value')}) ) ) (DParen child: (ArithBinary op_id: Arith_LessEqual left: (ArithWord w:{($ VSub_Name '$OPTION')}) right: (ArithWord w:{($ VSub_Name '$max_value')}) ) ) ] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:input_value) op: Equal rhs: {($ VSub_Name '$OPTION')} spids: [1357] ) ] spids: [1357] ) ] spids: [16777215 1354] ) ] else_action: [(C {(Info_Input_Not_Valid_Integer)})] spids: [1361 1367] ) ] spids: [16777215 1299] ) ] spids: [16777215 1370] ) (ControlFlow token: <ControlFlow_Return return> arg_word: {($ VSub_Name '$input_value')} ) ] spids: [1215] ) spids: [1212 1215] ) (FuncDef name: Info_Input_Not_Valid_Integer body: (BraceGroup children: [ (C {(whiptail)} {(--title)} {(DQ ('Invalid Value'))} {(--msgbox)} {(DQ ($ VSub_Name '$OPTION') (' is an invalid value.'))} {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(9)} {(60)} ) ] spids: [1388] ) spids: [1385 1388] ) (FuncDef name: Menu_Exit body: (BraceGroup children: [ (C {(whiptail)} {(--title)} {(DQ ('Exit ') ($ VSub_Name '$PROGRAM_NAME') ('?'))} {(--yesno)} {(DQ ('Exit ') ($ VSub_Name '$PROGRAM_NAME') ('?'))} {(--backtitle)} {(DQ ($ VSub_Name '$PROGRAM_NAME'))} {(--yes-button)} {(DQ (Ok))} {(--no-button)} {(DQ (Back))} {(--defaultno)} {(9)} {(55)} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CHOICE) op: Equal rhs: {($ VSub_QMark '$?')} spids: [1471] ) ] spids: [1471] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$CHOICE')}) right: (ArithWord w:{(Lit_Digits 0)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TARGETMENUID) op: Equal rhs: {(-1)} spids: [1496] ) ] spids: [1496] ) ] spids: [16777215 1489] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TARGETMENUID) op: Equal rhs: {(0)} spids: [1507] ) ] spids: [1507] ) ] spids: [1500 1511] ) ] spids: [1424] ) spids: [1421 1424] ) (FuncDef name: Menu_Main body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OPTION) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [ {(whiptail)} {(--title)} {(DQ ($ VSub_Name '$PROGRAM_NAME'))} {(--menu)} { (DQ ( 'This program allows you to change the date and times for starting each cron job.' ) (Lit_Other '\\') (n) (Lit_Other '\\') ('n- Example:') (Lit_Other '\\') ( 'nIf you set cron.daily to 22 hours and 20 minutes, all scripts in /etc/cron.daily/* will be run at 10:20pm' ) ) } {(--cancel-button)} {(DQ (Exit))} {(--default-item)} {(DQ ($ VSub_Name '$PREVIOUS_MENU_SELECTION'))} {(--backtitle)} {(DQ ($ VSub_Name '$PROGRAM_NAME'))} {(18)} {(70)} {(5)} {(DQ (cron.hourly))} { (DQ ('Every Hour at ') (BracedVarSub token: <VSub_Name aCRON_TIME> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)})) spids: [1579 1584] ) (' Minutes') ) } {(DQ (cron.daily))} { (DQ ('Every Day at ') (BracedVarSub token: <VSub_Name aCRON_TIME> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 2)})) spids: [1596 1601] ) (' Hours and ') (BracedVarSub token: <VSub_Name aCRON_TIME> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)})) spids: [1603 1608] ) (' Minutes') ) } {(DQ (cron.weekly))} { (DQ ('Every ') (BracedVarSub token: <VSub_Name aDAY_OF_THE_WEEK_TEXT> bracket_op: (ArrayIndex expr: (ArithWord w: { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithWord w: { (BracedVarSub token: <VSub_Name aCRON_TIME> bracket_op: (ArrayIndex expr: (ArithWord w: {(Lit_Digits 5)} ) ) spids: [1625 1630] ) } ) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1623 1636] ) } ) ) spids: [1620 1638] ) (' at ') (BracedVarSub token: <VSub_Name aCRON_TIME> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 4)})) spids: [1640 1645] ) (' Hours and ') (BracedVarSub token: <VSub_Name aCRON_TIME> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 3)})) spids: [1647 1652] ) (' Minutes') ) } {(DQ (cron.monthly))} { (DQ ('On Day ') (BracedVarSub token: <VSub_Name aCRON_TIME> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 8)})) spids: [1664 1669] ) (' of the month at ') (BracedVarSub token: <VSub_Name aCRON_TIME> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 7)})) spids: [1671 1676] ) (' Hours and ') (BracedVarSub token: <VSub_Name aCRON_TIME> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 6)})) spids: [1678 1683] ) (' Minutes') ) } {(DQ (Apply))} {(DQ ('Saves your cron start times and restarts service.'))} ] redirects: [ (Redir op_id: Redir_GreatAnd fd: 3 arg_word: {(1)} spids: [1697] ) (Redir op_id: Redir_GreatAnd fd: 1 arg_word: {(2)} spids: [1700] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(3)} spids: [1703] ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [1526 1705] ) } spids: [1525] ) ] spids: [1525] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CHOICE) op: Equal rhs: {($ VSub_QMark '$?')} spids: [1709] ) ] spids: [1709] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$CHOICE')}) right: (ArithWord w:{(Lit_Digits 0)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:PREVIOUS_MENU_SELECTION) op: Equal rhs: {($ VSub_Name '$OPTION')} spids: [1731] ) ] spids: [1731] ) (Case to_match: {(DQ ($ VSub_Name '$OPTION'))} arms: [ (case_arm pat_list: [{(DQ (cron.hourly))}] action: [ (C {(Input_Cron_Minute)} { (BracedVarSub token: <VSub_Name aCRON_TIME> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 0)})) spids: [1753 1758] ) } ) (C {(aCRON_TIME) (Lit_Other '[') (0) (Lit_Other ']') (Lit_Other '=') ($ VSub_QMark '$?') } ) ] spids: [1746 1748 1769 16777215] ) (case_arm pat_list: [{(DQ (cron.daily))}] action: [ (C {(Input_Cron_Hour)} { (BracedVarSub token: <VSub_Name aCRON_TIME> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 2)})) spids: [1780 1785] ) } ) (C {(aCRON_TIME) (Lit_Other '[') (2) (Lit_Other ']') (Lit_Other '=') ($ VSub_QMark '$?') } ) (C {(Input_Cron_Minute)} { (BracedVarSub token: <VSub_Name aCRON_TIME> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 1)})) spids: [1799 1804] ) } ) (C {(aCRON_TIME) (Lit_Other '[') (1) (Lit_Other ']') (Lit_Other '=') ($ VSub_QMark '$?') } ) ] spids: [1773 1775 1815 16777215] ) (case_arm pat_list: [{(DQ (cron.weekly))}] action: [ (C {(Input_Cron_DayOfWeek)} { (BracedVarSub token: <VSub_Name aCRON_TIME> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 5)})) spids: [1826 1831] ) } ) (C {(aCRON_TIME) (Lit_Other '[') (5) (Lit_Other ']') (Lit_Other '=') ($ VSub_QMark '$?') } ) (C {(Input_Cron_Hour)} { (BracedVarSub token: <VSub_Name aCRON_TIME> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 4)})) spids: [1845 1850] ) } ) (C {(aCRON_TIME) (Lit_Other '[') (4) (Lit_Other ']') (Lit_Other '=') ($ VSub_QMark '$?') } ) (C {(Input_Cron_Minute)} { (BracedVarSub token: <VSub_Name aCRON_TIME> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 3)})) spids: [1864 1869] ) } ) (C {(aCRON_TIME) (Lit_Other '[') (3) (Lit_Other ']') (Lit_Other '=') ($ VSub_QMark '$?') } ) ] spids: [1819 1821 1880 16777215] ) (case_arm pat_list: [{(DQ (cron.monthly))}] action: [ (C {(Input_Cron_DayOfMonth)} { (BracedVarSub token: <VSub_Name aCRON_TIME> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 8)})) spids: [1891 1896] ) } ) (C {(aCRON_TIME) (Lit_Other '[') (8) (Lit_Other ']') (Lit_Other '=') ($ VSub_QMark '$?') } ) (C {(Input_Cron_Hour)} { (BracedVarSub token: <VSub_Name aCRON_TIME> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 7)})) spids: [1910 1915] ) } ) (C {(aCRON_TIME) (Lit_Other '[') (7) (Lit_Other ']') (Lit_Other '=') ($ VSub_QMark '$?') } ) (C {(Input_Cron_Minute)} { (BracedVarSub token: <VSub_Name aCRON_TIME> bracket_op: (ArrayIndex expr:(ArithWord w:{(Lit_Digits 6)})) spids: [1929 1934] ) } ) (C {(aCRON_TIME) (Lit_Other '[') (6) (Lit_Other ']') (Lit_Other '=') ($ VSub_QMark '$?') } ) ] spids: [1884 1886 1945 16777215] ) (case_arm pat_list: [{(DQ (Apply))}] action: [ (C {(Write_Cron_Times)}) (C {(systemctl)} {(restart)} {(cron)}) (C {(whiptail)} {(--title)} {(DQ (Completed))} {(--msgbox)} {(DQ ('Your Cron start times have been saved and applied.'))} {(9)} {(60)} ) ] spids: [1949 1951 1992 16777215] ) ] spids: [1736 1742 1995] ) ] spids: [16777215 1727] ) ] else_action: [(C {(Menu_Exit)})] spids: [1999 2009] ) ] spids: [1521] ) spids: [1518 1521] ) (C {(Read_Cron_Times)}) (While cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_Great left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')}) right: (ArithUnary op_id:Node_UnaryMinus child:(ArithWord w:{(Lit_Digits 1)})) ) ) terminator: <Op_Semi ';'> ) ] body: (DoGroup children: [ (C {(clear)}) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')}) right: (ArithWord w:{(Lit_Digits 0)}) ) ) terminator: <Op_Semi ';'> ) ] action: [(C {(Menu_Main)})] spids: [16777215 2085] ) ] spids: [16777215 2091] ) ] spids: [2059 2095] ) ) (C {(unset)} {(aDAY_OF_THE_WEEK_TEXT)}) (C {(unset)} {(aCRON_TIME)}) (ControlFlow token:<ControlFlow_Exit exit>) ] spids: [3] ) ] )