(CommandList children: [ (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)}) ) ) 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_id: Redir_GreatAnd fd: 3 arg_word: {(1)} spids: [486] ) (Redir op_id: Redir_GreatAnd fd: 1 arg_word: {(2)} spids: [489] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(3)} spids: [492] ) ] ) ] ) 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)}) ) ) 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: [573 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)}) ) ) 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)}) ) ) 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)}) ) ) 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)}) ) ) 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)}) ) ) 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)}) ) ) 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)}) ) ) 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)}) ) ) 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)}) ) ) 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)}) ) ) 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)}) ) ) 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)}) ) ) 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_id: Redir_Great fd: 2 arg_word: {(DQ ($ VSub_Name '$FP_TEMP'))} spids: [1348] ) ] ) (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)}) ) ) 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)}) ) ) 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] ) (Sentence child: (C {(rm)} {(DQ ($ VSub_Name '$FP_TEMP'))}) terminator: <Op_Amp '&'> ) (SimpleCommand redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/dev/null)} spids: [1475] ) ] ) (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: [1510] ) ] spids: [1510] ) (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: [1517] ) ] spids: [1515] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:include_mnt_status) op: Equal rhs: {(DQ (Disabled))} spids: [1525] ) ] spids: [1523] ) (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)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:include_mnt_status) op: Equal rhs: {(DQ (Enabled))} spids: [1548] ) ] spids: [1548] ) ] spids: [16777215 1545] ) ] spids: [16777215 1554] ) (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: [1560] ) ] spids: [1558] ) (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: [1567] ) ] spids: [1567] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:WHIP_TITLE) op: Equal rhs: {(SQ <'- Files: Cleaner options -'>)} spids: [1575] ) ] spids: [1575] ) (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_id: Redir_GreatAnd fd: 3 arg_word: {(1)} spids: [1636] ) (Redir op_id: Redir_GreatAnd fd: 1 arg_word: {(2)} spids: [1639] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(3)} spids: [1642] ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [1583 1644] ) } spids: [1582] ) ] spids: [1582] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CHOICE) op: Equal rhs: {($ VSub_QMark '$?')} spids: [1648] ) ] spids: [1648] ) (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: [ (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)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:INCLUDE_MNT) op: Equal rhs: {(0)} spids: [1701] ) ] spids: [1701] ) ] spids: [16777215 1698] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:INCLUDE_MNT) op: Equal rhs: {(1)} spids: [1708] ) ] spids: [1708] ) ] spids: [1705 1712] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TARGETMENUID) op: Equal rhs: {(2)} spids: [1715] ) ] spids: [1715] ) ] spids: [1679 1681 1719 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: [1735] ) ] spids: [1735] ) ] spids: [1723 1725 1739 16777215] ) ] spids: [1669 1675 1742] ) ] spids: [16777215 1666] ) ] spids: [16777215 1745] ) ] spids: [1502] ) spids: [1499 1502] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ROOT_SPACE_USED_BEFORE) op: Equal rhs: {(0)} spids: [1769] ) ] spids: [1769] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ROOT_SPACE_USED_AFTER) op: Equal rhs: {(0)} spids: [1773] ) ] spids: [1773] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:ROOT_SPACE_USED_CURRENT) op: Equal rhs: {(0)} spids: [1777] ) ] spids: [1777] ) (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: [1781] ) ] spids: [1781] ) (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: [1788 1796] ) } spids: [1787] ) ] spids: [1787] ) (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: [1808 1840] ) } spids: [1807] ) ] spids: [1807] ) ] spids: [1803] ) spids: [1800 1803] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:MAX_CLEANERS) op:Equal rhs:{(5)} spids:[1859])] spids: [1859] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:aEnabledCleaners) op: Equal rhs: {(ArrayLiteralPart)} spids: [1863] ) ] spids: [1863] ) (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: [1887 1898] ) ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:INCLUDE_MNT) op:Equal rhs:{(0)} spids:[1902])] spids: [1902] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:DRY_RUN) op:Equal rhs:{(0)} spids:[1906])] spids: [1906] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:INFO_CLEAN_NAME) op:Equal rhs:{(DQ )} spids:[1911])] spids: [1911] ) (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: [1937] ) ] spids: [1937] ) (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: [1972 1977] ) } ) right: (ArithWord w:{(Lit_Digits 1)}) ) ) terminator: <Op_Semi ';'> ) ] action: [(C {(Run_Cleaner_) (DQ ($ VSub_Name '$i'))})] spids: [16777215 1987] ) ] spids: [16777215 1996] ) ] spids: [1965 1999] ) ) (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: [2006] ) ] spids: [2006] ) (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: [2026 2035] ) } spids: [2025] ) ] spids: [2025] ) (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: [2039] ) ] spids: [2039] ) (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)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(whiptail)} {(--title)} {(DQ ('DietPi-Cleaner completed.'))} {(--msgbox)} {(DQ ($ VSub_Name '$WHIP_QUESTION'))} {(10)} {(70)} ) ] spids: [16777215 2063] ) (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$INPUT')}) right: (ArithWord w:{(Lit_Digits 1)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-e)} { (DQ (Lit_Other '\\') (n) ($ VSub_Name '$WHIP_QUESTION') (Lit_Other '\\') (n)) } ) ] spids: [2085 2099] ) ] spids: [16777215 2115] ) ] spids: [1920] ) spids: [1917 1920] ) (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: [2134] ) ] spids: [2134] ) (C {(Banner_Cleaning)}) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:string_package_names) op: Equal rhs: {(DQ )} spids: [2146] ) ] spids: [2144] ) (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: [2165] ) ] spids: [2165] ) ] spids: [2158 2173] ) redirects: [ (Redir op_id: 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: [2177 2208] ) } spids: [2175] ) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:string_package_names) op: PlusEqual rhs: {(DQ ('build-essential git'))} spids: [2216] ) ] spids: [2216] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:Yes_or_Simulate) op: Equal rhs: {(DQ (-y))} spids: [2229] ) ] spids: [2227] ) (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)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:Yes_or_Simulate) op: Equal rhs: {(DQ (-s))} spids: [2252] ) ] spids: [2252] ) ] spids: [16777215 2249] ) ] spids: [16777215 2258] ) (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)}) ) ) 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 2299] ) ] spids: [16777215 2328] ) ] spids: [2130] ) spids: [2127 2130] ) (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: [2347] ) ] spids: [2347] ) (C {(Banner_Cleaning)}) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:Yes_or_Simulate) op: Equal rhs: {(DQ (-y))} spids: [2359] ) ] spids: [2357] ) (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)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:Yes_or_Simulate) op: Equal rhs: {(DQ (-s))} spids: [2382] ) ] spids: [2382] ) ] spids: [16777215 2379] ) ] spids: [16777215 2388] ) (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)}) ) ) 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 2431] ) ] spids: [16777215 2455] ) ] spids: [2343] ) spids: [2340 2343] ) (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: [2474] ) ] spids: [2474] ) (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_id: Redir_Great fd: 16777215 arg_word: {(DQ ($ VSub_Name '$FP_TEMP'))} spids: [2518] ) ] ) ] 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: [2533 2545] ) } spids: [2532] ) ] spids: [2530] ) (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)}) ) ) 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 2562] ) ] else_action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:aCustomFiles) op: Equal rhs: {(ArrayLiteralPart)} spids: [2589] ) ] spids: [2587] ) (SimpleCommand words: [{(readarray)} {(aCustomFiles)}] redirects: [ (Redir op_id: Redir_Less fd: 16777215 arg_word: {(DQ ($ VSub_Name '$FP_TEMP'))} spids: [2598] ) ] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:find_string) op: Equal rhs: {(DQ )} spids: [2612] ) ] spids: [2610] ) (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: [2637 2643] ) } ) ) 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: [2661 2666] ) ) } ) (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)}) ) ) 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: [2691 2696] ) ) } spids: [2688] ) ] spids: [2688] ) ] spids: [16777215 2685] ) ] 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: [2706 2711] ) ) } spids: [2703] ) ] spids: [2703] ) ] spids: [2700 2715] ) ] spids: [2652 2719] ) ) (C {(echo)} {(-e)} {(DQ ('Please wait....'))}) (SimpleCommand words: [{(find)} {(/)} {(-type)} {(f)} {($ VSub_Name '$find_string')}] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ ($ VSub_Name '$FP_TEMP'))} spids: [2747] ) ] ) (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)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(sed)} {(-i)} {(SQ <'/\\/mnt/d'>)} {(DQ ($ VSub_Name '$FP_TEMP'))}) ] spids: [16777215 2773] ) ] spids: [16777215 2789] ) (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: [2794 2806] ) } spids: [2793] ) ] spids: [2793] ) (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)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-e)} { (DQ (Lit_Other '\\') ('nNo matching filenames were found.') (Lit_Other '\\') (n) ) } ) ] spids: [16777215 2823] ) ] else_action: [ (C {(echo)} {(-e)} { (DQ (Lit_Other '\\') ('nFound the following matching files:') (Lit_Other '\\') (n) ) } ) ] spids: [2838 2853] ) (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)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(echo)} {(-e)} {(DQ (Deleted.) (Lit_Other '\\') (n))}) (C {(rm)} {(DQ ($ VSub_Name '$line'))}) ] spids: [16777215 2895] ) ] spids: [16777215 2916] ) ] spids: [2868 2920] ) redirects: [ (Redir op_id: Redir_Less fd: 16777215 arg_word: {(DQ ($ VSub_Name '$FP_TEMP'))} spids: [2922] ) ] ) (C {(unset)} {(aCustomFiles)}) ] spids: [2579 2940] ) (Sentence child: (C {(rm)} {(DQ ($ VSub_Name '$FP_TEMP'))}) terminator: <Op_Amp '&'> ) (SimpleCommand redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/dev/null)} spids: [2951] ) ] ) ] spids: [2470] ) spids: [2467 2470] ) (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: [2972] ) ] spids: [2972] ) (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)}) ) ) terminator: <Op_Semi ';'> ) ] action: [(C {(/DietPi/dietpi/dietpi-logclear)} {(1)})] spids: [16777215 2996] ) ] spids: [16777215 3004] ) ] spids: [2968] ) spids: [2965 2968] ) (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: [3023] ) ] spids: [3023] ) (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)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(apt-get)} {(clean)}) (C {(rm)} {(/var/lib/apt/lists/) (Lit_Other '*')} {(-vf)}) (C {(G_AGUP)}) ] spids: [16777215 3047] ) ] spids: [16777215 3068] ) ] spids: [3019] ) spids: [3016 3019] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FILEPATH_SETTINGS) op: Equal rhs: {(DQ (/DietPi/dietpi/.dietpi-cleaner))} spids: [3092] ) ] spids: [3092] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FILEPATH_CUSTOMFILES) op: Equal rhs: {(DQ (/DietPi/dietpi/.dietpi-cleaner_custom_files))} spids: [3098] ) ] spids: [3098] ) (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: [3136 3148] ) } spids: [3135] ) ] spids: [3133] ) (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: [3188 3197] ) (p) } {($ VSub_Name '$FILEPATH_SETTINGS')} ) ] ) left_token: <Left_CommandSub '$('> spids: [3183 3201] ) } ) ] spids: [3175 3204] ) ) ] spids: [16777215 3125] ) ] spids: [16777215 3208] ) (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_id: Redir_DLess fd: 16777215 body: { (DQ ( '# ------------------------------------------------------------------\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') ) } do_expansion: True here_end: _EOF_ was_filled: T spids: [3236] ) (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ ($ VSub_Name '$FILEPATH_CUSTOMFILES'))} spids: [3240] ) ] ) ] spids: [16777215 3231] ) ] spids: [16777215 3268] ) ] spids: [3108] ) spids: [3105 3108] ) (FuncDef name: Write_Settings_File body: (BraceGroup children: [ (Sentence child: (C {(rm)} {($ VSub_Name '$FILEPATH_SETTINGS')}) terminator: <Op_Amp '&'> ) (SimpleCommand redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/dev/null)} spids: [3292] ) ] ) (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: [3324 3329] ) ) } ] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {($ VSub_Name '$FILEPATH_SETTINGS')} spids: [3332] ) ] ) ] spids: [3316 3337] ) ) ] spids: [3279] ) spids: [3276 3279] ) (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)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (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 3427] ) (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')}) right: (ArithWord w:{(Lit_Digits 1)}) ) ) terminator: <Op_Semi ';'> ) ] action: [(C {(Menu_Cleaners)})] spids: [3433 3447] ) (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$TARGETMENUID')}) right: (ArithWord w:{(Lit_Digits 2)}) ) ) terminator: <Op_Semi ';'> ) ] action: [(C {(Menu_Options_Files)})] spids: [3453 3467] ) ] spids: [16777215 3473] ) ] spids: [3405 3477] ) ) (C {(Write_Settings_File)}) ] spids: [16777215 3382] ) (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$INPUT')}) right: (ArithWord w:{(Lit_Digits 1)}) ) ) terminator: <Op_Semi ';'> ) ] action: [(C {(Run_Cleaners)})] spids: [3493 3507] ) (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$INPUT')}) right: (ArithWord w:{(Lit_Digits 2)}) ) ) 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: [3560 3571] ) ) (C {(Run_Cleaners)}) ] spids: [3523 3537] ) ] spids: [16777215 3579] ) (C {(unset)} {(aEnabledCleaners)}) (ControlFlow token:<ControlFlow_Exit exit>) ] spids: [3] ) ] )