(BraceGroup children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:INPUT) op:Equal rhs:{(0)} spids:[71])] spids: [71] ) (If arms: [ (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_EqualTilde left: {($ VSub_Number '$1')} right: {(Lit_Other '^') (-) (Lit_Other '?') (Lit_Other '[') (0-9) (Lit_Other ']') (Lit_Other '+') (Lit_Other '$') } ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:INPUT) op: Equal rhs: {($ VSub_Number '$1')} spids: [98] ) ] spids: [98] ) ] spids: [16777215 95] ) ] spids: [16777215 102] ) (C {(.)} {(/DietPi/dietpi/func/dietpi-globals)}) (C {(G_CHECK_ROOT_USER)}) (C {(G_CHECK_ROOTFS_RW)}) (C {(export)} {(Lit_VarLike 'G_PROGRAM_NAME=') (SQ <DietPi-Cleaner>)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FP_TEMP) op: Equal rhs: {(DQ (/tmp/.dietpi-cleaner))} spids: [146] ) ] spids: [146] ) (FuncDef name: Banner_Cleaning body: (BraceGroup children: [ (C {(echo)} {(-e)} {(DQ (Lit_Other '\\') (n) (Lit_Other '\\') (n))}) (C {(echo)} {(-e)} { (DQ (Lit_Other '\\') ( 'e[38;5;154m\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80' ) (Lit_Other '\\') ('e[0m') (Lit_Other '\\') (n) (Lit_Other '\\') ('e[1mDietPi-Cleaner') (Lit_Other '\\') ('e[0m') (Lit_Other '\\') ('n - ') ($ VSub_Name '$INFO_CLEAN_NAME') (Lit_Other '\\') (n) (Lit_Other '\\') ( 'e[38;5;154m\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80' ) (Lit_Other '\\') ('e[0m') ) } ) ] spids: [168] ) spids: [165 168] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:WHIP_BACKTITLE) op: Equal rhs: {(SQ <'- DietPi-Cleaner -'>)} spids: [232] ) ] spids: [232] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:WHIP_TITLE) op: Equal rhs: {($ VSub_Name '$WHIP_BACKTITLE')} spids: [238] ) ] spids: [238] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:WHIP_QUESTION) op:Equal rhs:{(0)} spids:[242])] spids: [242] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:CHOICE) op:Equal rhs:{(0)} spids:[246])] spids: [246] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:TARGETMENUID) op:Equal rhs:{(0)} spids:[250])] spids: [250] ) (FuncDef name: Menu_Exit body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:WHIP_TITLE) op: Equal rhs: {(SQ <'Exit DietPi-Cleaner?'>)} spids: [261] ) ] spids: [261] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:WHIP_QUESTION) op: Equal rhs: {(SQ <'Exit DietPi-Cleaner?'>)} spids: [267] ) ] spids: [267] ) (C {(whiptail)} {(--title)} {(DQ ($ VSub_Name '$WHIP_TITLE'))} {(--yesno)} {(DQ ($ VSub_Name '$WHIP_QUESTION'))} {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_TITLE'))} {(--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: [312] ) ] spids: [312] ) (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)}) ) spids: [318 327] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TARGETMENUID) op: Equal rhs: {(-1)} spids: [337] ) ] spids: [337] ) ] spids: [16777215 330] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TARGETMENUID) op: Equal rhs: {(0)} spids: [348] ) ] spids: [348] ) ] spids: [341 352] ) ] spids: [258] ) spids: [255 258] ) (FuncDef name: Menu_Main body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:WHIP_TITLE) op: Equal rhs: {($ VSub_Name '$WHIP_BACKTITLE')} spids: [370] ) ] spids: [370] ) (C {(Update_Space_Used)}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:TARGETMENUID) op:Equal rhs:{(0)} spids:[383])] spids: [383] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:WHIP_QUESTION) op: Equal rhs: { (DQ ('Free up used space and system resources:') (Lit_Other '\\') ('n - RootFS usage current = ') ($ VSub_Name '$ROOT_SPACE_USED_CURRENT') (' MB') (Lit_Other '\\') ('n - RootFS space cleared = ') ($ VSub_Name '$ROOT_SPACE_FREE_DELTA') (' MB') ) } spids: [387] ) ] spids: [387] ) (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 '$WHIP_TITLE'))} {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(--menu)} {(DQ ($ VSub_Name '$WHIP_QUESTION'))} {(--cancel-button)} {(DQ (Exit))} {(15)} {(75)} {(5)} {(DQ (Help))} {(DQ ('What does DietPi-Cleaner do?'))} {(DQ (Cleaners))} {(DQ ('Control which cleaners are enabled.'))} {(DQ (' - Files'))} {(DQ ('Set file cleaner options.'))} {(DQ (Test))} { (DQ ( 'Simulate the cleaning process, without modifying any data.' ) ) } {(DQ (Run))} {(DQ ('Run enabled cleaners.'))} ] redirects: [ (Redir op: <Redir_GreatAnd '3>&'> fd: 3 arg_word: {(1)} ) (Redir op: <Redir_GreatAnd '1>&'> fd: 1 arg_word: {(2)} ) (Redir op: <Redir_GreatAnd '2>&'> fd: 2 arg_word: {(3)} ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [403 494] ) } spids: [402] ) ] spids: [402] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CHOICE) op: Equal rhs: {($ VSub_QMark '$?')} spids: [498] ) ] spids: [498] ) (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)}) ) spids: [504 513] ) terminator: <Op_Semi ';'> ) ] action: [ (Case to_match: {(DQ ($ VSub_Name '$OPTION'))} arms: [ (case_arm pat_list: [{(Help)}] action: [ (C {(whiptail)} {(--title)} {(DQ ('DietPi-Cleaner Help'))} {(--msgbox)} { (DQ ( 'DietPi-Cleaner is a program that allows you to remove unwanted junk from your DietPi system, freeing up filesystem space in the process.' ) (Lit_Other '\\') (n) (Lit_Other '\\') ( 'nSimply enable the cleaners you require, then select Test to see what will happen, without modifying your system.' ) (Lit_Other '\\') ('nOnce your satisfied with the Test results, select Run to clean your system.') (Lit_Other '\\') (n) (Lit_Other '\\') ('nMore information:') (Lit_Other '\\') ('n - http://dietpi.com/phpbb/viewtopic.php?f=8&t=5&p=623#p623') ) } {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(16)} {(75)} ) ] spids: [528 529 569 16777215] ) (case_arm pat_list: [{(DQ (' - Files'))}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TARGETMENUID) op: Equal rhs: {(2)} spids: [578] ) ] spids: [578] ) ] spids: [572 575 582 16777215] ) (case_arm pat_list: [{(Cleaners)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TARGETMENUID) op: Equal rhs: {(1)} spids: [589] ) ] spids: [589] ) ] spids: [585 586 593 16777215] ) (case_arm pat_list: [{(Test)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DRY_RUN) op: Equal rhs: {(1)} spids: [604] ) ] spids: [604] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:at_least_one_cleaner_is_enabled) op: Equal rhs: {(0)} spids: [614] ) ] spids: [612] ) (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:{($ VSub_Name '$MAX_CLEANERS')}) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w: { (BracedVarSub token: <VSub_Name aEnabledCleaners> bracket_op: (ArrayIndex expr: (ArithWord w: {($ VSub_Name '$i')} ) ) spids: [644 649] ) } ) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [642 656] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:at_least_one_cleaner_is_enabled) op: Equal rhs: {(1)} spids: [662] ) ] spids: [662] ) (ControlFlow token: <ControlFlow_Break break> ) ] spids: [16777215 659] ) ] spids: [16777215 669] ) ] spids: [637 672] ) ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w: { ($ VSub_Name '$at_least_one_cleaner_is_enabled') } ) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [678 687] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(whiptail)} {(--title)} {(DQ ('Run DietPi-Cleaner?'))} {(--yesno)} { (DQ ( 'DietPi-Cleaner will now simulate your enabled cleaners.' ) (Lit_Other '\\') (n) (Lit_Other '\\') ('n(Notice): No data will be modified.') (Lit_Other '\\') (n) (Lit_Other '\\') ('nContinue with test run?') ) } {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(--defaultno)} {(12)} {(70)} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CHOICE) op: Equal rhs: {($ VSub_QMark '$?')} spids: [732] ) ] spids: [732] ) (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)}) ) spids: [738 747] ) terminator: <Op_Semi ';'> ) ] action: [(C {(Run_Cleaners)})] spids: [16777215 750] ) ] spids: [16777215 756] ) ] spids: [16777215 690] ) ] else_action: [ (C {(whiptail)} {(--title)} {(DQ ('No cleaner jobs enabled'))} {(--msgbox)} { (DQ ( 'DietPi-Cleaner could not be run as there are no enabled cleaners. Please go to cleaners, then select which you would like to enable.' ) ) } {(10)} {(70)} ) ] spids: [759 781] ) ] spids: [596 597 784 16777215] ) (case_arm pat_list: [{(Run)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:DRY_RUN) op: Equal rhs: {(0)} spids: [795] ) ] spids: [795] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:at_least_one_cleaner_is_enabled) op: Equal rhs: {(0)} spids: [805] ) ] spids: [803] ) (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:{($ VSub_Name '$MAX_CLEANERS')}) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w: { (BracedVarSub token: <VSub_Name aEnabledCleaners> bracket_op: (ArrayIndex expr: (ArithWord w: {($ VSub_Name '$i')} ) ) spids: [835 840] ) } ) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [833 847] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:at_least_one_cleaner_is_enabled) op: Equal rhs: {(1)} spids: [853] ) ] spids: [853] ) (ControlFlow token: <ControlFlow_Break break> ) ] spids: [16777215 850] ) ] spids: [16777215 860] ) ] spids: [828 863] ) ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w: { ($ VSub_Name '$at_least_one_cleaner_is_enabled') } ) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [869 878] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(whiptail)} {(--title)} {(DQ ('Run DietPi-Cleaner?'))} {(--yesno)} { (DQ ('DietPi-Cleaner will now run your enabled cleaners.') (Lit_Other '\\') (n) (Lit_Other '\\') ( 'n(Notice): If you are unsure what this program will do, I would recommend creating a backup with dietpi-backup before proceeding.' ) (Lit_Other '\\') (n) (Lit_Other '\\') ('nWould you like to continue and start the cleaning process?') ) } {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(--defaultno)} {(13)} {(70)} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CHOICE) op: Equal rhs: {($ VSub_QMark '$?')} spids: [923] ) ] spids: [923] ) (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)}) ) spids: [929 938] ) terminator: <Op_Semi ';'> ) ] action: [(C {(Run_Cleaners)})] spids: [16777215 941] ) ] spids: [16777215 947] ) ] spids: [16777215 881] ) ] else_action: [ (C {(whiptail)} {(--title)} {(DQ ('No cleaner jobs enabled'))} {(--msgbox)} { (DQ ( 'DietPi-Cleaner could not be run as there are no enabled cleaners. Please go to cleaners, then select which you would like to enable.' ) ) } {(10)} {(70)} ) ] spids: [950 972] ) ] spids: [787 788 975 16777215] ) ] spids: [519 525 978] ) ] spids: [16777215 516] ) ] else_action: [(C {(Menu_Exit)})] spids: [981 987] ) ] spids: [366] ) spids: [363 366] ) (FuncDef name: Menu_Cleaners body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:TARGETMENUID) op:Equal rhs:{(0)} spids:[1010])] spids: [1010] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:aWhiptailLine) op: Equal rhs: {(ArrayLiteralPart)} spids: [1021] ) ] spids: [1019] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:OnOff_Status) op: Equal rhs: {(DQ (on))} spids: [1028] ) ] spids: [1026] ) (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:{($ VSub_Name '$MAX_CLEANERS')}) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OnOff_Status) op: Equal rhs: {(DQ (on))} spids: [1060] ) ] spids: [1060] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w: { (BracedVarSub token: <VSub_Name aEnabledCleaners> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name '$i')}) ) spids: [1070 1075] ) } ) right: (ArithWord w:{(Lit_Digits 0)}) ) spids: [1068 1082] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OnOff_Status) op: Equal rhs: {(DQ (off))} spids: [1088] ) ] spids: [1088] ) ] spids: [16777215 1085] ) ] spids: [16777215 1094] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$i')}) right: (ArithWord w:{(Lit_Digits 0)}) ) spids: [1104 1113] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:aWhiptailLine) op: PlusEqual rhs: { (ArrayLiteralPart words: [ {(DQ ($ VSub_Name '$i') (' '))} { (DQ ( 'Dev - Uninstalls all dev packages (eg: git, lib123-dev).' ) ) } {(DQ ($ VSub_Name '$OnOff_Status'))} ] ) } spids: [1119] ) ] spids: [1119] ) ] spids: [16777215 1116] ) (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$i')}) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1138 1147] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:aWhiptailLine) op: PlusEqual rhs: { (ArrayLiteralPart words: [ {(DQ ($ VSub_Name '$i') (' '))} {(DQ ('Manpages - Removes offline documentation.'))} {(DQ ($ VSub_Name '$OnOff_Status'))} ] ) } spids: [1153] ) ] spids: [1153] ) ] spids: [1136 1150] ) (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$i')}) right: (ArithWord w:{(Lit_Digits 2)}) ) spids: [1172 1181] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:aWhiptailLine) op: PlusEqual rhs: { (ArrayLiteralPart words: [ {(DQ ($ VSub_Name '$i') (' '))} { (DQ ( 'Files - Scan and remove files matching user include list.' ) ) } {(DQ ($ VSub_Name '$OnOff_Status'))} ] ) } spids: [1187] ) ] spids: [1187] ) ] spids: [1170 1184] ) (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$i')}) right: (ArithWord w:{(Lit_Digits 3)}) ) spids: [1206 1215] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:aWhiptailLine) op: PlusEqual rhs: { (ArrayLiteralPart words: [ {(DQ ($ VSub_Name '$i') (' '))} {(DQ ('Logs - Clears the log file directory (/var/log).'))} {(DQ ($ VSub_Name '$OnOff_Status'))} ] ) } spids: [1221] ) ] spids: [1221] ) ] spids: [1204 1218] ) (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$i')}) right: (ArithWord w:{(Lit_Digits 4)}) ) spids: [1240 1249] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:aWhiptailLine) op: PlusEqual rhs: { (ArrayLiteralPart words: [ {(DQ ($ VSub_Name '$i') (' '))} { (DQ ( 'Apt - Clears the apt cache and runs a fresh update.' ) ) } {(DQ ($ VSub_Name '$OnOff_Status'))} ] ) } spids: [1255] ) ] spids: [1255] ) ] spids: [1238 1252] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:aWhiptailLine) op: PlusEqual rhs: { (ArrayLiteralPart words: [ {(DQ ('New '))} {(DQ (Unknown))} {(DQ ($ VSub_Name '$OnOff_Status'))} ] ) } spids: [1275] ) ] spids: [1275] ) ] spids: [1272 1291] ) ] spids: [1053 1295] ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:WHIP_TITLE) op: Equal rhs: {(SQ <'- Options : Cleaner Selection -'>)} spids: [1299] ) ] spids: [1299] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:WHIP_QUESTION) op: Equal rhs: {(SQ <'Please use the spacebar to toggle which cleaners are enabled.'>)} spids: [1305] ) ] spids: [1305] ) (SimpleCommand words: [ {(whiptail)} {(--title)} {(DQ ($ VSub_Name '$WHIP_TITLE'))} {(--checklist)} {(DQ ($ VSub_Name '$WHIP_QUESTION'))} {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_TITLE'))} {(--separate-output)} {(14)} {(75)} {(5)} { (DQ (BracedVarSub token: <VSub_Name aWhiptailLine> bracket_op: (WholeArray op_id:Lit_At) spids: [1340 1345] ) ) } ] redirects: [(Redir op:<Redir_Great '2>'> fd:2 arg_word:{(DQ ($ VSub_Name '$FP_TEMP'))})] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CHOICE) op: Equal rhs: {($ VSub_QMark '$?')} spids: [1355] ) ] spids: [1355] ) (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)}) ) spids: [1362 1371] ) terminator: <Op_Semi ';'> ) ] action: [ (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:{($ VSub_Name '$MAX_CLEANERS')}) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (C {(aEnabledCleaners) (Lit_Other '[') ($ VSub_Name '$i') (Lit_Other ']') (Lit_Other '=') (0) } ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(cat)} {(DQ ($ VSub_Name '$FP_TEMP'))} ) (C {(grep)} {(-ci)} {(-m1)} {(DQ ($ VSub_Name '$i') (' '))} ) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [1412 1431] ) } ) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1410 1438] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(aEnabledCleaners) (Lit_Other '[') ($ VSub_Name '$i') (Lit_Other ']') (Lit_Other '=') (1) } ) ] spids: [16777215 1441] ) ] spids: [16777215 1452] ) ] spids: [1397 1456] ) ) ] spids: [16777215 1374] ) ] spids: [16777215 1460] ) (SimpleCommand words: [{(rm)} {(DQ ($ VSub_Name '$FP_TEMP'))}] redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})] ) (C {(unset)} {(aWhiptailLine)}) ] spids: [1002] ) spids: [999 1002] ) (FuncDef name: Menu_Options_Files body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:TARGETMENUID) op:Equal rhs:{(0)} spids:[1509])] spids: [1509] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:option_1_text) op: Equal rhs: {(DQ ('Include mount directory (/mnt/*) during file scan'))} spids: [1516] ) ] spids: [1514] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:include_mnt_status) op: Equal rhs: {(DQ (Disabled))} spids: [1524] ) ] spids: [1522] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$INCLUDE_MNT')}) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1532 1541] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:include_mnt_status) op: Equal rhs: {(DQ (Enabled))} spids: [1547] ) ] spids: [1547] ) ] spids: [16777215 1544] ) ] spids: [16777215 1553] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:option_2_text) op: Equal rhs: {(DQ ('Modify filenames/extensions to include during scan.'))} spids: [1559] ) ] spids: [1557] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:WHIP_QUESTION) op: Equal rhs: { (DQ ('Files: Cleaner options.') (Lit_Other '\\') ("n(NB) The cleaner named 'Files' must be enabled for this to work.") ) } spids: [1566] ) ] spids: [1566] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:WHIP_TITLE) op: Equal rhs: {(SQ <'- Files: Cleaner options -'>)} spids: [1574] ) ] spids: [1574] ) (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 '$WHIP_TITLE'))} {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(--menu)} {(DQ ($ VSub_Name '$WHIP_QUESTION'))} {(--cancel-button)} {(DQ (Exit))} {(12)} {(68)} {(2)} {(DQ ($ VSub_Name '$option_1_text'))} {(DQ (': ') ($ VSub_Name '$include_mnt_status'))} {(DQ ($ VSub_Name '$option_2_text'))} {(DQ )} ] redirects: [ (Redir op: <Redir_GreatAnd '3>&'> fd: 3 arg_word: {(1)} ) (Redir op: <Redir_GreatAnd '1>&'> fd: 1 arg_word: {(2)} ) (Redir op: <Redir_GreatAnd '2>&'> fd: 2 arg_word: {(3)} ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [1582 1643] ) } spids: [1581] ) ] spids: [1581] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CHOICE) op: Equal rhs: {($ VSub_QMark '$?')} spids: [1647] ) ] spids: [1647] ) (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)}) ) spids: [1653 1662] ) terminator: <Op_Semi ';'> ) ] action: [ (Case to_match: {(DQ ($ VSub_Name '$OPTION'))} arms: [ (case_arm pat_list: [{(DQ ($ VSub_Name '$option_1_text'))}] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$INCLUDE_MNT')}) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1685 1694] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:INCLUDE_MNT) op: Equal rhs: {(0)} spids: [1700] ) ] spids: [1700] ) ] spids: [16777215 1697] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:INCLUDE_MNT) op: Equal rhs: {(1)} spids: [1707] ) ] spids: [1707] ) ] spids: [1704 1711] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TARGETMENUID) op: Equal rhs: {(2)} spids: [1714] ) ] spids: [1714] ) ] spids: [1677 1680 1718 16777215] ) (case_arm pat_list: [{(DQ ($ VSub_Name '$option_2_text'))}] action: [ (C {(nano)} {(DQ ($ VSub_Name '$FILEPATH_CUSTOMFILES'))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TARGETMENUID) op: Equal rhs: {(2)} spids: [1734] ) ] spids: [1734] ) ] spids: [1721 1724 1738 16777215] ) ] spids: [1668 1674 1741] ) ] spids: [16777215 1665] ) ] spids: [16777215 1744] ) ] spids: [1501] ) spids: [1498 1501] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:ROOT_SPACE_USED_BEFORE) op:Equal rhs:{(0)} spids:[1768])] spids: [1768] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:ROOT_SPACE_USED_AFTER) op:Equal rhs:{(0)} spids:[1772])] spids: [1772] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ROOT_SPACE_USED_CURRENT) op: Equal rhs: {(0)} spids: [1776] ) ] spids: [1776] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ROOT_SPACE_FREE_DELTA) op: Equal rhs: {(DQ ('Cleaner has not been run - 0'))} spids: [1780] ) ] spids: [1780] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ROOTFS_DEVICE_PATH) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [(C {(sed)} {(-n)} {(4p)} {(/DietPi/dietpi/.hw_model)})] ) left_token: <Left_CommandSub '$('> spids: [1787 1795] ) } spids: [1786] ) ] spids: [1786] ) (FuncDef name: Update_Space_Used body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ROOT_SPACE_USED_CURRENT) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(df)} {(--block-size)} {(MB)}) (C {(grep)} {(DQ ($ VSub_Name '$ROOTFS_DEVICE_PATH'))}) (C {(awk)} {(SQ <'{ print $3 }'>)}) (C {(tr)} {(-d)} {(SQ <MB>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [1807 1839] ) } spids: [1806] ) ] spids: [1806] ) ] spids: [1802] ) spids: [1799 1802] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:MAX_CLEANERS) op:Equal rhs:{(5)} spids:[1858])] spids: [1858] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:aEnabledCleaners) op: Equal rhs: {(ArrayLiteralPart)} spids: [1862] ) ] spids: [1862] ) (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:{($ VSub_Name '$MAX_CLEANERS')}) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (C {(aEnabledCleaners) (Lit_Other '[') ($ VSub_Name '$i') (Lit_Other ']') (Lit_Other '=') (0)} ) ] spids: [1886 1897] ) ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:INCLUDE_MNT) op:Equal rhs:{(0)} spids:[1901])] spids: [1901] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:DRY_RUN) op:Equal rhs:{(0)} spids:[1905])] spids: [1905] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:INFO_CLEAN_NAME) op:Equal rhs:{(DQ )} spids:[1910])] spids: [1910] ) (FuncDef name: Run_Cleaners body: (BraceGroup children: [ (C {(/DietPi/dietpi/dietpi-services)} {(stop)}) (C {(Update_Space_Used)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ROOT_SPACE_USED_BEFORE) op: Equal rhs: {($ VSub_Name '$ROOT_SPACE_USED_CURRENT')} spids: [1936] ) ] spids: [1936] ) (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:{($ VSub_Name '$MAX_CLEANERS')}) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w: { (BracedVarSub token: <VSub_Name aEnabledCleaners> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name '$i')}) ) spids: [1971 1976] ) } ) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [1969 1983] ) terminator: <Op_Semi ';'> ) ] action: [(C {(Run_Cleaner_) (DQ ($ VSub_Name '$i'))})] spids: [16777215 1986] ) ] spids: [16777215 1995] ) ] spids: [1964 1998] ) ) (C {(Update_Space_Used)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ROOT_SPACE_USED_AFTER) op: Equal rhs: {($ VSub_Name '$ROOT_SPACE_USED_CURRENT')} spids: [2005] ) ] spids: [2005] ) (C {(/DietPi/dietpi/dietpi-services)} {(start)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ROOT_SPACE_FREE_DELTA) op: Equal rhs: { (ArithSubPart anode: (ArithBinary op_id: Arith_Minus left: (ArithWord w:{($ VSub_Name '$ROOT_SPACE_USED_BEFORE')}) right: (ArithWord w:{($ VSub_Name '$ROOT_SPACE_USED_AFTER')}) ) spids: [2025 2034] ) } spids: [2024] ) ] spids: [2024] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:WHIP_QUESTION) op: Equal rhs: { (DQ ('DietPi-Cleaner has finished cleaning RootFS:') (Lit_Other '\\') ('n - ') ($ VSub_Name '$ROOT_SPACE_FREE_DELTA') (' MB of space has been cleared.') ) } spids: [2038] ) ] spids: [2038] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$INPUT')}) right: (ArithWord w:{(Lit_Digits 0)}) ) spids: [2050 2059] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(whiptail)} {(--title)} {(DQ ('DietPi-Cleaner completed.'))} {(--msgbox)} {(DQ ($ VSub_Name '$WHIP_QUESTION'))} {(10)} {(70)} ) ] spids: [16777215 2062] ) (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$INPUT')}) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [2086 2095] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-e)} {(DQ (Lit_Other '\\') (n) ($ VSub_Name '$WHIP_QUESTION') (Lit_Other '\\') (n))} ) ] spids: [2084 2098] ) ] spids: [16777215 2114] ) ] spids: [1919] ) spids: [1916 1919] ) (FuncDef name: Run_Cleaner_0 body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:INFO_CLEAN_NAME) op: Equal rhs: {(DQ ('Dev packages'))} spids: [2133] ) ] spids: [2133] ) (C {(Banner_Cleaning)}) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:string_package_names) op: Equal rhs: {(DQ )} spids: [2145] ) ] spids: [2143] ) (WhileUntil keyword: <KW_While while> cond: [(C {(read)} {(line)})] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:string_package_names) op: PlusEqual rhs: {(DQ ($ VSub_Name '$line') (' '))} spids: [2164] ) ] spids: [2164] ) ] spids: [2157 2172] ) redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(dpkg)} {(-l)}) (C {(grep)} {(SQ <'\\-dev:'>)}) (C {(awk)} {(SQ <'{ print $2 }'>)}) (C {(cut)} {(-f1)} {(-d) (DQ (':'))}) ] negated: F ) ] ) left_token: <Left_ProcSubIn '<('> spids: [2176 2207] ) } ) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:string_package_names) op: PlusEqual rhs: {(DQ ('build-essential git'))} spids: [2215] ) ] spids: [2215] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:Yes_or_Simulate) op: Equal rhs: {(DQ (-y))} spids: [2228] ) ] spids: [2226] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$DRY_RUN')}) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [2236 2245] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:Yes_or_Simulate) op: Equal rhs: {(DQ (-s))} spids: [2251] ) ] spids: [2251] ) ] spids: [16777215 2248] ) ] spids: [16777215 2257] ) (C {(apt-get)} {(purge)} {($ VSub_Name '$string_package_names')} {($ VSub_Name '$Yes_or_Simulate')} ) (C {(apt-get)} {(autoremove)} {(--purge)} {($ VSub_Name '$Yes_or_Simulate')}) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$DRY_RUN')}) right: (ArithWord w:{(Lit_Digits 0)}) ) spids: [2286 2295] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(sed)} {(-i)} {(DQ ('/BUILDESSENTIAL=/c') (Lit_Other '\\') ('BUILDESSENTIAL=0'))} {(/DietPi/dietpi/.installed)} ) (C {(sed)} {(-i)} {(DQ ('/GITCLIENT=/c') (Lit_Other '\\') ('GITCLIENT=0'))} {(/DietPi/dietpi/.installed)} ) ] spids: [16777215 2298] ) ] spids: [16777215 2327] ) ] spids: [2129] ) spids: [2126 2129] ) (FuncDef name: Run_Cleaner_1 body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:INFO_CLEAN_NAME) op: Equal rhs: {(DQ ('Man pages and docs'))} spids: [2346] ) ] spids: [2346] ) (C {(Banner_Cleaning)}) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:Yes_or_Simulate) op: Equal rhs: {(DQ (-y))} spids: [2358] ) ] spids: [2356] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$DRY_RUN')}) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [2366 2375] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:Yes_or_Simulate) op: Equal rhs: {(DQ (-s))} spids: [2381] ) ] spids: [2381] ) ] spids: [16777215 2378] ) ] spids: [16777215 2387] ) (C {(apt-get)} {(purge)} {(man)} {(manpages)} {($ VSub_Name '$Yes_or_Simulate')}) (C {(apt-get)} {(autoremove)} {(--purge)} {($ VSub_Name '$Yes_or_Simulate')}) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$DRY_RUN')}) right: (ArithWord w:{(Lit_Digits 0)}) ) spids: [2418 2427] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(rm)} {(-R)} {(/usr/share/man)}) (C {(rm)} {(-R)} {(/usr/share/doc)}) (C {(rm)} {(-R)} {(/usr/share/doc-base)}) ] spids: [16777215 2430] ) ] spids: [16777215 2454] ) ] spids: [2342] ) spids: [2339 2342] ) (FuncDef name: Run_Cleaner_2 body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:INFO_CLEAN_NAME) op: Equal rhs: {(DQ (Files))} spids: [2473] ) ] spids: [2473] ) (C {(Banner_Cleaning)}) (Pipeline children: [ (C {(cat)} {(DQ ($ VSub_Name '$FILEPATH_CUSTOMFILES'))}) (C {(sed)} {(SQ <'/#/d'>)}) (C {(sed)} {(SQ <'/ /d'>)}) (SimpleCommand words: [{(sed)} {(SQ <'/^$/d'>)}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_Name '$FP_TEMP'))} ) ] ) ] negated: F ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:line_count) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [(C {(cat)} {(DQ ($ VSub_Name '$FP_TEMP'))}) (C {(wc)} {(-l)})] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [2532 2544] ) } spids: [2531] ) ] spids: [2529] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$line_count')}) right: (ArithWord w:{(Lit_Digits 0)}) ) spids: [2549 2558] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-e)} { (DQ (Lit_Other '\\') ( 'nNo files to find. Have you setup the Files options and added filename entries to match?' ) (Lit_Other '\\') (n) ) } ) ] spids: [16777215 2561] ) ] else_action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:aCustomFiles) op: Equal rhs: {(ArrayLiteralPart)} spids: [2588] ) ] spids: [2586] ) (SimpleCommand words: [{(readarray)} {(aCustomFiles)}] redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_Name '$FP_TEMP'))} ) ] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:find_string) op: Equal rhs: {(DQ )} spids: [2611] ) ] spids: [2609] ) (C {(echo)} {(-e)} {(DQ (Lit_Other '\\') ('nSearching for filenames matching:'))}) (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 aCustomFiles> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [2636 2642] ) } ) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (C {(echo)} {(-e)} { (DQ ('- ') (BracedVarSub token: <VSub_Name aCustomFiles> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')})) spids: [2660 2665] ) ) } ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$i')}) right: (ArithWord w:{(Lit_Digits 0)}) ) spids: [2672 2681] ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:find_string) op: Equal rhs: { (DQ ('-name ') (BracedVarSub token: <VSub_Name aCustomFiles> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name '$i')}) ) spids: [2690 2695] ) ) } spids: [2687] ) ] spids: [2687] ) ] spids: [16777215 2684] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:find_string) op: PlusEqual rhs: { (DQ (' -or -name ') (BracedVarSub token: <VSub_Name aCustomFiles> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name '$i')}) ) spids: [2705 2710] ) ) } spids: [2702] ) ] spids: [2702] ) ] spids: [2699 2714] ) ] spids: [2651 2718] ) ) (C {(echo)} {(-e)} {(DQ ('Please wait....'))}) (SimpleCommand words: [{(find)} {(/)} {(-type)} {(f)} {($ VSub_Name '$find_string')}] redirects: [ (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_Name '$FP_TEMP'))} ) ] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$INCLUDE_MNT')}) right: (ArithWord w:{(Lit_Digits 0)}) ) spids: [2760 2769] ) terminator: <Op_Semi ';'> ) ] action: [(C {(sed)} {(-i)} {(SQ <'/\\/mnt/d'>)} {(DQ ($ VSub_Name '$FP_TEMP'))})] spids: [16777215 2772] ) ] spids: [16777215 2788] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:line_count) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(cat)} {(DQ ($ VSub_Name '$FP_TEMP'))}) (C {(wc)} {(-l)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [2793 2805] ) } spids: [2792] ) ] spids: [2792] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$line_count')}) right: (ArithWord w:{(Lit_Digits 0)}) ) spids: [2810 2819] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-e)} { (DQ (Lit_Other '\\') ('nNo matching filenames were found.') (Lit_Other '\\') (n) ) } ) ] spids: [16777215 2822] ) ] else_action: [ (C {(echo)} {(-e)} { (DQ (Lit_Other '\\') ('nFound the following matching files:') (Lit_Other '\\') (n) ) } ) ] spids: [2837 2852] ) (WhileUntil keyword: <KW_While while> cond: [(C {(read)} {(line)})] body: (DoGroup children: [ (C {(echo)} {(-e)} {(DQ ('- Filepath: ') ($ VSub_Name '$line'))}) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$DRY_RUN')}) right: (ArithWord w:{(Lit_Digits 0)}) ) spids: [2882 2891] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-e)} {(DQ (Deleted.) (Lit_Other '\\') (n))}) (C {(rm)} {(DQ ($ VSub_Name '$line'))}) ] spids: [16777215 2894] ) ] spids: [16777215 2915] ) ] spids: [2867 2919] ) redirects: [ (Redir op: <Redir_Less '<'> fd: 16777215 arg_word: {(DQ ($ VSub_Name '$FP_TEMP'))} ) ] ) (C {(unset)} {(aCustomFiles)}) ] spids: [2578 2939] ) (SimpleCommand words: [{(rm)} {(DQ ($ VSub_Name '$FP_TEMP'))}] redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})] ) ] spids: [2469] ) spids: [2466 2469] ) (FuncDef name: Run_Cleaner_3 body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:INFO_CLEAN_NAME) op: Equal rhs: {(DQ ('Log files'))} spids: [2970] ) ] spids: [2970] ) (C {(Banner_Cleaning)}) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$DRY_RUN')}) right: (ArithWord w:{(Lit_Digits 0)}) ) spids: [2982 2991] ) terminator: <Op_Semi ';'> ) ] action: [(C {(/DietPi/dietpi/dietpi-logclear)} {(1)})] spids: [16777215 2994] ) ] spids: [16777215 3002] ) ] spids: [2966] ) spids: [2963 2966] ) (FuncDef name: Run_Cleaner_4 body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:INFO_CLEAN_NAME) op: Equal rhs: {(DQ ('Apt cache and update'))} spids: [3021] ) ] spids: [3021] ) (C {(Banner_Cleaning)}) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$DRY_RUN')}) right: (ArithWord w:{(Lit_Digits 0)}) ) spids: [3033 3042] ) terminator: <Op_Semi ';'> ) ] action: [ (C {(apt-get)} {(clean)}) (C {(rm)} {(/var/lib/apt/lists/) (Lit_Other '*')} {(-vf)}) (C {(G_AGUP)}) ] spids: [16777215 3045] ) ] spids: [16777215 3066] ) ] spids: [3017] ) spids: [3014 3017] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FILEPATH_SETTINGS) op: Equal rhs: {(DQ (/DietPi/dietpi/.dietpi-cleaner))} spids: [3090] ) ] spids: [3090] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FILEPATH_CUSTOMFILES) op: Equal rhs: {(DQ (/DietPi/dietpi/.dietpi-cleaner_custom_files))} spids: [3096] ) ] spids: [3096] ) (FuncDef name: Read_Settings_File body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Name '$FILEPATH_SETTINGS'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:line_count) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(cat)} {(DQ ($ VSub_Name '$FILEPATH_SETTINGS'))}) (C {(wc)} {(-l)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [3134 3146] ) } spids: [3133] ) ] spids: [3131] ) (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:{($ VSub_Name '$line_count')}) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (C {(aEnabledCleaners) (Lit_Other '[') ($ VSub_Name '$i') (Lit_Other ']') (Lit_Other '=') (CommandSubPart command_list: (CommandList children: [ (C {(sed)} {(-n)} { (ArithSubPart anode: (ArithBinary op_id: Arith_Plus left: (ArithWord w:{($ VSub_Name '$i')}) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [3186 3195] ) (p) } {($ VSub_Name '$FILEPATH_SETTINGS')} ) ] ) left_token: <Left_CommandSub '$('> spids: [3181 3199] ) } ) ] spids: [3173 3202] ) ) ] spids: [16777215 3123] ) ] spids: [16777215 3206] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} {(DQ ($ VSub_Name '$FILEPATH_CUSTOMFILES'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(_EOF_)} here_end_span_id: 3265 stdin_parts: [ ( '# ------------------------------------------------------------------\n' ) ( '# Specify filenames or extentions to match during filescan removals.\n' ) ('#\n') ('# One item per line.\n') ('#\n') ('# Examples:\n') ('# *.tmp\n') ('# ThisFileWillBeDeleted.mp3\n') ('# *AnyFilenameContainingThisTextWillBeDeleted*\n') ('#\n') ('# To save and exit:\n') ('# - Press CTRL+X\n') ('# - Press Y\n') ('# - Press Enter\n') ( '# ------------------------------------------------------------------\n' ) ('# Uncomment line below to include temp files during scan.\n') ('#*.tmp\n') ('\n') ( '# Uncomment line below to include Windows Thumbnail cache during scan.\n' ) ('#Thumbs.db\n') ] ) (Redir op: <Redir_Great '>'> fd: 16777215 arg_word: {(DQ ($ VSub_Name '$FILEPATH_CUSTOMFILES'))} ) ] ) ] spids: [16777215 3229] ) ] spids: [16777215 3267] ) ] spids: [3106] ) spids: [3103 3106] ) (FuncDef name: Write_Settings_File body: (BraceGroup children: [ (SimpleCommand words: [{(rm)} {($ VSub_Name '$FILEPATH_SETTINGS')}] redirects: [(Redir op:<Redir_AndGreat '&>'> fd:16777215 arg_word:{(/dev/null)})] ) (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:{($ VSub_Name '$MAX_CLEANERS')}) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (SimpleCommand words: [ {(echo)} {(-e)} { (DQ (BracedVarSub token: <VSub_Name aEnabledCleaners> bracket_op: (ArrayIndex expr:(ArithWord w:{($ VSub_Name '$i')})) spids: [3322 3327] ) ) } ] redirects: [ (Redir op: <Redir_DGreat '>>'> fd: 16777215 arg_word: {($ VSub_Name '$FILEPATH_SETTINGS')} ) ] ) ] spids: [3314 3335] ) ) ] spids: [3278] ) spids: [3275 3278] ) (C {(Read_Settings_File)}) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$INPUT')}) right: (ArithWord w:{(Lit_Digits 0)}) ) spids: [3368 3377] ) terminator: <Op_Semi ';'> ) ] action: [ (WhileUntil keyword: <KW_While 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)})) ) spids: [3390 3400] ) 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)}) ) spids: [3413 3422] ) terminator: <Op_Semi ';'> ) ] action: [(C {(Menu_Main)})] spids: [16777215 3425] ) (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')}) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [3433 3442] ) terminator: <Op_Semi ';'> ) ] action: [(C {(Menu_Cleaners)})] spids: [3431 3445] ) (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')}) right: (ArithWord w:{(Lit_Digits 2)}) ) spids: [3453 3462] ) terminator: <Op_Semi ';'> ) ] action: [(C {(Menu_Options_Files)})] spids: [3451 3465] ) ] spids: [16777215 3471] ) ] spids: [3403 3475] ) ) (C {(Write_Settings_File)}) ] spids: [16777215 3380] ) (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$INPUT')}) right: (ArithWord w:{(Lit_Digits 1)}) ) spids: [3493 3502] ) terminator: <Op_Semi ';'> ) ] action: [(C {(Run_Cleaners)})] spids: [3491 3505] ) (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$INPUT')}) right: (ArithWord w:{(Lit_Digits 2)}) ) spids: [3523 3532] ) terminator: <Op_Semi ';'> ) ] action: [ (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:{($ VSub_Name '$MAX_CLEANERS')}) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (C {(aEnabledCleaners) (Lit_Other '[') ($ VSub_Name '$i') (Lit_Other ']') (Lit_Other '=') (1) } ) ] spids: [3558 3569] ) ) (C {(Run_Cleaners)}) ] spids: [3521 3535] ) ] spids: [16777215 3577] ) (C {(unset)} {(aEnabledCleaners)}) (ControlFlow token:<ControlFlow_Exit exit>) ] spids: [3] )