(CommandList children: [ (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:INPUT) op:Equal rhs:{(0)} spids:[95])] spids: [95] ) (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: [122] ) ] spids: [122] ) ] spids: [16777215 119] ) ] spids: [16777215 126] ) (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-Backup>)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:WHIP_BACKTITLE) op: Equal rhs: {(SQ <DietPi-Backup>)} spids: [170] ) ] spids: [170] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:WHIP_TITLE) op:Equal rhs:{(SQ )} spids:[176])] spids: [176] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:MENU_LASTITEM) op:Equal rhs:{(SQ )} spids:[181])] spids: [181] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:CHOICE) op:Equal rhs:{(0)} spids:[186])] spids: [186] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:OPTION) op:Equal rhs:{(0)} spids:[190])] spids: [190] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:TARGETMENUID) op:Equal rhs:{(0)} spids:[194])] spids: [194] ) (FuncDef name: Menu_Main body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:backup_last_completed_system) op: Equal rhs: {(SQ <'System backup not found. Create one.'>)} spids: [212] ) ] spids: [210] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} { (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) ($ VSub_Name '$BACKUP_STATS_FILENAME_SYSTEM') ) } {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:backup_last_completed_system) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(grep)} {(SQ <Completed>)} { (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) ($ VSub_Name '$BACKUP_STATS_FILENAME_SYSTEM') ) } ) (C {(tail)} {(-1)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [238 256] ) } spids: [237] ) ] spids: [237] ) ] spids: [16777215 233] ) ] spids: [16777215 260] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:backup_last_completed_userdata) op: Equal rhs: {(SQ <'User data backup not found (requires "Full" backup mode)'>)} spids: [266] ) ] spids: [264] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} { (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) ($ VSub_Name '$BACKUP_STATS_FILENAME_USERDATA') ) } {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:backup_last_completed_userdata) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(grep)} {(SQ <Completed>)} { (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) ($ VSub_Name '$BACKUP_STATS_FILENAME_USERDATA') ) } ) (C {(tail)} {(-1)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [292 310] ) } spids: [291] ) ] spids: [291] ) ] spids: [16777215 287] ) ] spids: [16777215 314] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:text_backup_mode) op: Equal rhs: {(SQ <'System only'>)} spids: [320] ) ] spids: [318] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:text_start_mode_desc) op: Equal rhs: {(SQ <system>)} spids: [328] ) ] spids: [326] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$BACKUP_MODE')}) right: (ArithWord w:{(Lit_Digits 1)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:text_backup_mode) op: Equal rhs: {(SQ <Full>)} spids: [352] ) ] spids: [352] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:text_start_mode_desc) op: Equal rhs: {(SQ <'system and user data'>)} spids: [358] ) ] spids: [358] ) ] spids: [16777215 348] ) ] spids: [16777215 365] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:WHIP_TITLE) op: Equal rhs: {(SQ <DietPi-Backup>)} spids: [369] ) ] spids: [369] ) (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'))} {(--menu)} { (DQ ('Current backup and restore location:') (Lit_Other '\\') ('n - ') ($ VSub_Name '$FP_TARGET_BACKUP') (Lit_Other '\\') ('n - ') ($ VSub_Name '$backup_last_completed_system') (Lit_Other '\\') ('n - ') ($ VSub_Name '$backup_last_completed_userdata') ) } {(--cancel-button)} {(DQ (Exit))} {(--default-item)} {(DQ ($ VSub_Name '$MENU_LASTITEM'))} {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(16)} {(80)} {(5)} {(DQ (Help))} {(DQ ('What does DietPi-Backup do?'))} {(DQ (Location))} { (DQ ( 'Change where your backup will be saved and restored from.' ) ) } {(DQ ('Backup mode'))} {(DQ (': ') ($ VSub_Name '$text_backup_mode'))} {(DQ (Backup))} {(DQ ('Create (or update) a backup of this system.'))} {(DQ (Restore))} {(DQ ('Restore this system from a previous backup.'))} ] redirects: [ (Redir op_id: Redir_GreatAnd fd: 3 arg_word: {(1)} spids: [475] ) (Redir op_id: Redir_GreatAnd fd: 1 arg_word: {(2)} spids: [478] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(3)} spids: [481] ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [376 483] ) } spids: [375] ) ] spids: [375] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CHOICE) op: Equal rhs: {($ VSub_QMark '$?')} spids: [487] ) ] spids: [487] ) (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:MENU_LASTITEM) op: Equal rhs: {(DQ ($ VSub_Name '$OPTION'))} spids: [509] ) ] spids: [509] ) (Case to_match: {(DQ ($ VSub_Name '$OPTION'))} arms: [ (case_arm pat_list: [{(Location)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TARGETMENUID) op: Equal rhs: {(1)} spids: [531] ) ] spids: [531] ) ] spids: [526 527 536 16777215] ) (case_arm pat_list: [{(DQ ('Backup mode'))}] action: [ (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'))} {(--menu)} { (DQ ('Please select a backup mode:') (Lit_Other '\\') (n) (Lit_Other '\\') ('n - System only') (Lit_Other '\\') ( 'nOnly the system is backed up and restored, this does not include your DietPi user data (' ) ($ VSub_Name '$G_FP_DIETPI_USERDATA') (').') (Lit_Other '\\') (n) (Lit_Other '\\') ('n - Full:') (Lit_Other '\\') ('nSystem and user data (') ($ VSub_Name '$G_FP_DIETPI_USERDATA') (') is backed up and restored.') (Lit_Other '\\') (n) (Lit_Other '\\') ('nMore information on what DietPi user data is:') (Lit_Other '\\') ( 'nhttp://dietpi.com/phpbb/viewtopic.php?f=8&t=478#p2087' ) ) } {(--cancel-button)} {(DQ (Exit))} {(--default-item)} {(DQ ($ VSub_Name '$BACKUP_MODE'))} {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(20)} {(80)} {(2)} {(DQ (0))} {(DQ ('System only'))} {(DQ (1))} {(DQ ('Full (includes user data)'))} ] redirects: [ (Redir op_id: Redir_GreatAnd fd: 3 arg_word: {(1)} spids: [629] ) (Redir op_id: Redir_GreatAnd fd: 1 arg_word: {(2)} spids: [632] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(3)} spids: [635] ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [548 637] ) } spids: [547] ) ] spids: [547] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CHOICE) op: Equal rhs: {($ VSub_QMark '$?')} spids: [640] ) ] spids: [640] ) (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:BACKUP_MODE) op: Equal rhs: {($ VSub_Name '$OPTION')} spids: [662] ) ] spids: [662] ) ] spids: [16777215 658] ) ] spids: [16777215 667] ) ] spids: [541 543 671 16777215] ) (case_arm pat_list: [{(Help)}] action: [ (C {(whiptail)} {(--title)} {(DQ ('DietPi-Backup Help'))} {(--msgbox)} { (DQ ( 'DietPi-Backup is a program that allows you to Backup and Restore your DietPi system.' ) (Lit_Other '\\') (n) (Lit_Other '\\') ( 'nIf you have broken your system, or want to reset your system to an earlier date, this can all be done with DietPi-Backup.' ) (Lit_Other '\\') (n) (Lit_Other '\\') ( 'nSimply choose a location where you want to save and restore your backups from, then, select Backup or Restore.' ) (Lit_Other '\\') (n) (Lit_Other '\\') ('nMore information:') (Lit_Other '\\') ( 'n - http://dietpi.com/phpbb/viewtopic.php?f=8&t=5&p=256#p255' ) ) } {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(20)} {(75)} ) ] spids: [675 676 720 16777215] ) (case_arm pat_list: [{(Backup)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:WHIP_TITLE) op: Equal rhs: {(SQ <' Start backup? '>)} spids: [729] ) ] spids: [729] ) (C {(whiptail)} {(--title)} {(DQ ($ VSub_Name '$WHIP_TITLE'))} {(--yesno)} { (DQ ('Your ') ($ VSub_Name '$text_start_mode_desc') (' will be backed up to:') (Lit_Other '\\') (n) ($ VSub_Name '$FP_TARGET_BACKUP') (Lit_Other '\\') (n) (Lit_Other '\\') ('nDo you wish to continue?') ) } {(--yes-button)} {(DQ (Ok))} {(--no-button)} {(DQ (Back))} {(--defaultno)} {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(11)} {(65)} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CHOICE) op: Equal rhs: {($ VSub_QMark '$?')} spids: [783] ) ] spids: [783] ) (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_Backup)})] spids: [16777215 801] ) ] spids: [16777215 809] ) ] spids: [724 725 813 16777215] ) (case_arm pat_list: [{(Restore)}] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:WHIP_TITLE) op: Equal rhs: {(SQ <' Start restore? '>)} spids: [822] ) ] spids: [822] ) (C {(whiptail)} {(--title)} {(DQ ($ VSub_Name '$WHIP_TITLE'))} {(--yesno)} { (DQ ('Your ') ($ VSub_Name '$text_start_mode_desc') (' will be restored from:') (Lit_Other '\\') (n) ($ VSub_Name '$FP_TARGET_BACKUP') (Lit_Other '\\') (n) (Lit_Other '\\') ('nDo you wish to continue?') ) } {(--yes-button)} {(DQ (Ok))} {(--no-button)} {(DQ (Back))} {(--defaultno)} {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(11)} {(65)} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CHOICE) op: Equal rhs: {($ VSub_QMark '$?')} spids: [876] ) ] spids: [876] ) (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_Restore)})] spids: [16777215 894] ) ] spids: [16777215 902] ) ] spids: [817 818 906 16777215] ) ] spids: [516 522 910] ) ] spids: [16777215 505] ) ] else_action: [(C {(Menu_Exit)})] spids: [914 922] ) ] spids: [206] ) spids: [203 206] ) (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-Backup? '>)} spids: [937] ) ] spids: [937] ) (C {(whiptail)} {(--title)} {(DQ ($ VSub_Name '$WHIP_TITLE'))} {(--yesno)} {(DQ ($ VSub_Name '$WHIP_TITLE'))} {(--yes-button)} {(DQ (Ok))} {(--no-button)} {(DQ (Back))} {(--defaultno)} {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(10)} {(50)} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CHOICE) op: Equal rhs: {($ VSub_QMark '$?')} spids: [982] ) ] spids: [982] ) (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: [1009] ) ] spids: [1009] ) ] spids: [16777215 1005] ) ] spids: [16777215 1014] ) ] spids: [933] ) spids: [930 933] ) (FuncDef name: Menu_Set_Directory body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:current_directory) op: Equal rhs: {(DQ ($ VSub_Name '$FP_TARGET_BACKUP'))} spids: [1035] ) ] spids: [1033] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:WHIP_TITLE) op: Equal rhs: {(SQ <'Select your backup and restore location'>)} spids: [1042] ) ] spids: [1042] ) (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'))} {(--menu)} { (DQ ( 'Please select the location where your system backup will be saved, and restored from.' ) (Lit_Other '\\') (n) (Lit_Other '\\') ('nYour current location:') (Lit_Other '\\') (n) ($ VSub_Name '$FP_TARGET_BACKUP') ) } {(--cancel-button)} {(DQ (Back))} {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(15)} {(75)} {(3)} {(DQ (Search))} {(DQ ('Find previous backups in /mnt/*'))} {(DQ (List))} {(DQ ('Select from a list of available mounts/drives'))} {(DQ (Manual))} {(DQ ('Manually type a directory to use.'))} ] redirects: [ (Redir op_id: Redir_GreatAnd fd: 3 arg_word: {(1)} spids: [1119] ) (Redir op_id: Redir_GreatAnd fd: 1 arg_word: {(2)} spids: [1122] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(3)} spids: [1125] ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [1049 1127] ) } spids: [1048] ) ] spids: [1048] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CHOICE) op: Equal rhs: {($ VSub_QMark '$?')} spids: [1130] ) ] spids: [1130] ) (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: [{(Search)}] action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:fp_search_results) op: Equal rhs: {(DQ (/tmp/.dietpi-backup_search_results))} spids: [1170] ) ] spids: [1168] ) (C {(echo)} {(-e)} { (DQ (Lit_Other '\\') (n) (Lit_Other '\\') ('nSearching /mnt/* for previous backups, please wait... ') (Lit_Other '\\') ('n ') (Lit_Other '\\') (n) ) } ) (SimpleCommand words: [ {(find)} {(/mnt)} {(-type)} {(f)} {(-name)} {(DQ ($ VSub_Name '$BACKUP_STATS_FILENAME_SYSTEM'))} ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ ($ VSub_Name '$fp_search_results'))} spids: [1206] ) ] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_Great left: (ArithWord w: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(cat)} { (DQ ($ VSub_Name '$fp_search_results' ) ) } ) (C {(wc)} {(-l)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [1222 1234] ) } ) right: (ArithWord w:{(Lit_Digits 0)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(readarray)} {(search_results_list)}] redirects: [ (Redir op_id: Redir_Less fd: 16777215 arg_word: {(DQ ($ VSub_Name '$fp_search_results'))} spids: [1252] ) ] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:search_results_whiptail) op: Equal rhs: {(ArrayLiteralPart)} spids: [1265] ) ] spids: [1263] ) (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 search_results_list> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [1280 1286] ) } ) ) update: (UnaryAssign op_id: Node_PostDPlus child: (LhsName name:i) ) body: (DoGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:last_backup_date) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(grep)} {(SQ <Completed>)} { (BracedVarSub token: <VSub_Name search_results_list > bracket_op: (ArrayIndex expr: (ArithWord w: { ($ VSub_Name '$i' ) } ) ) spids: [1310 1315] ) } ) (C {(tail)} {(-1)}) (C {(sed)} {(SQ <'s/.*: //'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [1302 1331] ) } spids: [1301] ) ] spids: [1299] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:backup_directory) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(echo)} {(-e)} { (BracedVarSub token: <VSub_Name search_results_list > bracket_op: (ArrayIndex expr: (ArithWord w: { ($ VSub_Name '$i' ) } ) ) spids: [1346 1351] ) } ) (C {(sed)} {(SQ <'s/\\/'>) (DQ ($ VSub_Name '$BACKUP_STATS_FILENAME_SYSTEM' ) ) (SQ <//g>) } ) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [1340 1367] ) } spids: [1339] ) ] spids: [1337] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:search_results_whiptail) op: PlusEqual rhs: { (ArrayLiteralPart words: [ { (DQ ($ VSub_Name '$backup_directory')) } { (DQ (': ') ($ VSub_Name '$last_backup_date') ) } ] ) } spids: [1373] ) ] spids: [1373] ) ] spids: [1295 1387] ) ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OPTION) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [ {(whiptail)} {(--title)} {(DQ ('Backups found.'))} {(--menu)} { (DQ ( 'Please select a previous backup to use:' ) ) } {(--cancel-button)} {(DQ (Back))} {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(12)} {(70)} {(3)} { (DQ (BracedVarSub token: <VSub_Name search_results_whiptail > bracket_op: (WholeArray op_id: Lit_At ) spids: [1426 1431] ) ) } ] redirects: [ (Redir op_id: Redir_GreatAnd fd: 3 arg_word: {(1)} spids: [1434] ) (Redir op_id: Redir_GreatAnd fd: 1 arg_word: {(2)} spids: [1437] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(3)} spids: [1440] ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [1392 1442] ) } spids: [1391] ) ] spids: [1391] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CHOICE) op: Equal rhs: {($ VSub_QMark '$?')} spids: [1445] ) ] spids: [1445] ) (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:FP_TARGET_BACKUP) op: Equal rhs: {(DQ ($ VSub_Name '$OPTION'))} spids: [1467] ) ] spids: [1467] ) ] spids: [16777215 1463] ) ] spids: [16777215 1474] ) (C {(unset)} {(search_results_list)}) (C {(unset)} {(search_results_whiptail)}) (Sentence child: (C {(rm)} {(DQ ($ VSub_Name '$fp_search_results'))}) terminator: <Op_Amp '&'> ) (SimpleCommand redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(/dev/null)} spids: [1499] ) ] ) ] spids: [16777215 1244] ) ] else_action: [ (C {(whiptail)} {(--title)} {(DQ ('No results'))} {(--msgbox)} {(DQ ('No previous backups were found in /mnt/*'))} {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(10)} {(60)} ) ] spids: [1505 1535] ) ] spids: [1163 1164 1539 16777215] ) (case_arm pat_list: [{(Manual)}] action: [(C {(Input_User_Directory)})] spids: [1543 1544 1552 16777215] ) (case_arm pat_list: [{(List)}] action: [ (C {(/DietPi/dietpi/dietpi-drive_manager)} {(1)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FP_TARGET_BACKUP) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(cat)} {(/tmp/dietpi-drive_manager_selmnt)}) ] ) left_token: <Left_CommandSub '$('> spids: [1568 1572] ) ) } spids: [1566] ) ] spids: [1566] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$FP_TARGET_BACKUP'))} {(Lit_Other '=')} {(DQ (/))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FP_TARGET_BACKUP) op: Equal rhs: {(SQ </mnt>)} spids: [1597] ) ] spids: [1597] ) ] spids: [16777215 1593] ) ] spids: [16777215 1604] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FP_TARGET_BACKUP) op: PlusEqual rhs: {(SQ </dietpi-backup>)} spids: [1608] ) ] spids: [1608] ) ] spids: [1556 1557 1615 16777215] ) ] spids: [1153 1159 1619] ) ] spids: [16777215 1149] ) ] else_action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TARGETMENUID) op: Equal rhs: {(0)} spids: [1631] ) ] spids: [1631] ) ] spids: [1623 1636] ) (C {(Check_Supported_Directory_Location)}) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$TARGET_DIRECTORY_SUPPORTED')}) right: (ArithWord w:{(Lit_Digits 0)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FP_TARGET_BACKUP) op: Equal rhs: {(DQ ($ VSub_Name '$current_directory'))} spids: [1665] ) ] spids: [1665] ) ] spids: [16777215 1661] ) ] spids: [16777215 1672] ) ] spids: [1029] ) spids: [1026 1029] ) (FuncDef name: Input_User_Directory body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:OPTION) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [ {(whiptail)} {(--inputbox)} { (DQ ('Please enter the filepath to your directory. ') (Lit_Other '\\') ('neg: /mnt/dietpi-backup') (Lit_Other '\\') ('n - Must be located inside /mnt/* ') (Lit_Other '\\') ('n - Must be symlink compatible filesystem (ext2/3/4)') ) } {(10)} {(70)} {(DQ ($ VSub_Name '$FP_TARGET_BACKUP'))} {(--title)} {(DQ ('Manual backup directory'))} {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} ] redirects: [ (Redir op_id: Redir_GreatAnd fd: 3 arg_word: {(1)} spids: [1723] ) (Redir op_id: Redir_GreatAnd fd: 1 arg_word: {(2)} spids: [1726] ) (Redir op_id: Redir_GreatAnd fd: 2 arg_word: {(3)} spids: [1729] ) ] ) ] ) left_token: <Left_CommandSub '$('> spids: [1688 1731] ) } spids: [1687] ) ] spids: [1687] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:CHOICE) op: Equal rhs: {($ VSub_QMark '$?')} spids: [1734] ) ] spids: [1734] ) (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:FP_TARGET_BACKUP) op: Equal rhs: {(DQ ($ VSub_Name '$OPTION'))} spids: [1756] ) ] spids: [1756] ) ] spids: [16777215 1752] ) ] spids: [16777215 1763] ) ] spids: [1683] ) spids: [1680 1683] ) (FuncDef name: Error_Filesystem_Not_Supported body: (BraceGroup children: [ (C {(G_DIETPI-NOTIFY)} {(1)} {(DQ ('Filesystem not supported in ') ($ VSub_Name '$FP_TARGET_BACKUP'))} ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child:(ArithWord w:{($ VSub_Name '$G_USER_INPUTS')})) terminator: <Op_Semi ';'> ) ] action: [ (C {(whiptail)} {(--title)} {(DQ (Error))} {(--msgbox)} { (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (' Has a filesystem of: ') ($ VSub_Name '$TARGET_FILESYSTEM_TYPE') (', and is not supported.') (Lit_Other '\\') (n) (Lit_Other '\\') ('nThe filesystem must be EXT2/3/4 for symlink compatibility.') ) } {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(11)} {(70)} ) ] spids: [16777215 1811] ) ] spids: [16777215 1848] ) ] spids: [1786] ) spids: [1783 1786] ) (FuncDef name: Error_Not_Mnt_Directory body: (BraceGroup children: [ (C {(G_DIETPI-NOTIFY)} {(1)} { (DQ ('Target directory is not inside /mnt (') ($ VSub_Name '$FP_TARGET_BACKUP') (')') ) } ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child:(ArithWord w:{($ VSub_Name '$G_USER_INPUTS')})) terminator: <Op_Semi ';'> ) ] action: [ (C {(whiptail)} {(--title)} {(DQ ('Directory not supported'))} {(--msgbox)} { (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (Lit_Other '\\') (n) (Lit_Other '\\') ('nYour current location is not supported.') (Lit_Other '\\') ('nThe location must be inside the /mnt/* directory.') (Lit_Other '\\') ('n - eg: /mnt/dietpi-backup') ) } {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(11)} {(70)} ) ] spids: [16777215 1885] ) ] spids: [16777215 1923] ) ] spids: [1859] ) spids: [1856 1859] ) (FuncDef name: Error_DietpiUserdata_Directory body: (BraceGroup children: [ (C {(G_DIETPI-NOTIFY)} {(1)} { (DQ ('Target directory can not be contained within DietPi user data location (') ($ VSub_Name '$FP_TARGET_BACKUP') (')') ) } ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child:(ArithWord w:{($ VSub_Name '$G_USER_INPUTS')})) terminator: <Op_Semi ';'> ) ] action: [ (C {(whiptail)} {(--title)} {(DQ ('Directory not supported'))} {(--msgbox)} { (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (Lit_Other '\\') (n) (Lit_Other '\\') ('nYour current location is not supported.') (Lit_Other '\\') ('nTarget directory can not be contained within DietPi user data location (') ($ VSub_Name '$G_FP_DIETPI_USERDATA') (')') ) } {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(13)} {(70)} ) ] spids: [16777215 1960] ) ] spids: [16777215 1998] ) ] spids: [1934] ) spids: [1931 1934] ) (FuncDef name: Error_Rsync_Already_Running body: (BraceGroup children: [ (C {(G_DIETPI-NOTIFY)} {(1)} {(DQ ('Another Rsync process is already running.'))}) (SimpleCommand words: [ {(echo)} {(-e)} { (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' failed: ') (CommandSubPart command_list: (CommandList children: [(C {(date)} {(Lit_Other '+') (DQ ('%d-%m-%Y_%H%M'))})] ) left_token: <Left_CommandSub '$('> spids: [2030 2037] ) ('. Rsync is already running.') ) } ] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: { (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) ($ VSub_Name '$BACKUP_STATS_FILENAME_SYSTEM') ) } spids: [2041] ) ] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child:(ArithWord w:{($ VSub_Name '$G_USER_INPUTS')})) terminator: <Op_Semi ';'> ) ] action: [ (C {(whiptail)} {(--title)} {(DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' Error'))} {(--msgbox)} {(DQ ('A ') ($ VSub_Name '$RSYNC_MODE_TEXT') (' could not be started as rsync is already running.'))} {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(13)} {(60)} ) ] spids: [16777215 2065] ) ] spids: [16777215 2098] ) ] spids: [2009] ) spids: [2006 2009] ) (FuncDef name: Error_Rsync_Failed body: (BraceGroup children: [ (C {(G_DIETPI-NOTIFY)} {(1)} {(DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' failed.'))}) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child:(ArithWord w:{($ VSub_Name '$G_USER_INPUTS')})) terminator: <Op_Semi ';'> ) ] action: [ (C {(whiptail)} {(--title)} {(DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' failed'))} {(--msgbox)} { (DQ ('Your ') ($ VSub_Name '$RSYNC_MODE_TEXT') (' has failed. Please see the Log file for more information:') (Lit_Other '\\') (n) (Lit_Other '\\') (n) ($ VSub_Name '$LOGFILE') ) } {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(12)} {(60)} ) ] spids: [16777215 2138] ) ] spids: [16777215 2176] ) ] spids: [2109] ) spids: [2106 2109] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:RSYNC_MODE_TEXT) op:Equal rhs:{(0)} spids:[2196])] spids: [2196] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:BACKUP_MODE) op:Equal rhs:{(1)} spids:[2200])] spids: [2200] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:LOGFILE) op: Equal rhs: {(SQ </var/log/dietpi-backup.log>)} spids: [2212] ) ] spids: [2212] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FP_SOURCE_SYSTEM) op: Equal rhs: {(SQ </>)} spids: [2223] ) ] spids: [2223] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FP_TARGET_BACKUP) op: Equal rhs: {(SQ </mnt/dietpi-backup>)} spids: [2229] ) ] spids: [2229] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:G_FP_DIETPI_USERDATA_ACTUAL) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [(C {(readlink)} {(-f)} {(/mnt/dietpi_userdata)})] ) left_token: <Left_CommandSub '$('> spids: [2237 2243] ) ) } spids: [2235] ) ] spids: [2235] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BACKUP_STATS_FILENAME_SYSTEM) op: Equal rhs: {(SQ <.dietpi-backup_system_stats>)} spids: [2252] ) ] spids: [2252] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BACKUP_STATS_FILENAME_USERDATA) op: Equal rhs: {(SQ <.dietpi-backup_userdata_stats>)} spids: [2258] ) ] spids: [2258] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FP_FILTER_INCLUDE_EXCLUDE_SYSTEM_BACKUP) op: Equal rhs: {(SQ </tmp/.dietpi-backup_filter_inc_exc>)} spids: [2269] ) ] spids: [2269] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FP_EXCLUDE_USER) op: Equal rhs: {(SQ </DietPi/dietpi/.dietpi-backup_exclude>)} spids: [2275] ) ] spids: [2275] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FP_INCLUDE_USER) op: Equal rhs: {(SQ </DietPi/dietpi/.dietpi-backup_include>)} spids: [2281] ) ] spids: [2281] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TARGET_FILESYSTEM_TYPE) op: Equal rhs: {(0)} spids: [2292] ) ] spids: [2292] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TARGET_DIRECTORY_SUPPORTED) op: Equal rhs: {(0)} spids: [2296] ) ] spids: [2296] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:aSUPPORTED_FILESYSTEMS) op: Equal rhs: { (ArrayLiteralPart words: [ {(SQ <ext4>)} {(SQ <ext3>)} {(SQ <ext2>)} {(SQ <nfs>)} {(SQ <nfs4>)} {(SQ <btrfs>)} ] ) } spids: [2300] ) ] spids: [2300] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RSYNC_RUN_OPTIONS_SYSTEM_BACKUP) op: Equal rhs: { (DQ ('-alHpvP --delete --log-file=') ($ VSub_Name '$LOGFILE') (' --include-from=') ($ VSub_Name '$FP_FILTER_INCLUDE_EXCLUDE_SYSTEM_BACKUP') ) } spids: [2342] ) ] spids: [2342] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RSYNC_RUN_OPTIONS_USERDATA_BACKUP) op: Equal rhs: {(DQ ('-alHpvP --delete --log-file=') ($ VSub_Name '$LOGFILE'))} spids: [2351] ) ] spids: [2351] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BACKUP_RESTORE_FAILED) op: Equal rhs: {(0)} spids: [2363] ) ] spids: [2363] ) (FuncDef name: Print_Date body: (BraceGroup children: [ (C {(echo)} {(-e)} { (DQ (CommandSubPart command_list: (CommandList children: [(C {(date)} {(Lit_Other '+') (DQ ('%d-%m-%Y %H:%M'))})] ) left_token: <Left_CommandSub '$('> spids: [2384 2391] ) ) } ) ] spids: [2375] ) spids: [2372 2375] ) (FuncDef name: Create_Filter_Include_Exclude body: (BraceGroup children: [ (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: {(DQ ('#INCLUDE\n') ('#Global - Folders\n') ('#+ /example/\n'))} do_expansion: True here_end: _EOF_ was_filled: T spids: [2413] ) (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ ($ VSub_Name '$FP_FILTER_INCLUDE_EXCLUDE_SYSTEM_BACKUP'))} spids: [2417] ) ] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Name '$FP_INCLUDE_USER'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(echo)} {(-e)} {(DQ (Lit_Other '\\') ('n#User include file'))}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {(DQ ($ VSub_Name '$FP_FILTER_INCLUDE_EXCLUDE_SYSTEM_BACKUP'))} spids: [2459] ) ] ) (While cond: [(C {(read)} {(-r)} {(line)})] body: (DoGroup children: [ (SimpleCommand words: [{(echo)} {(-e)} {(DQ ('+ ') ($ VSub_Name '$line'))}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: { (DQ ($ VSub_Name '$FP_FILTER_INCLUDE_EXCLUDE_SYSTEM_BACKUP') ) } spids: [2489] ) ] ) ] spids: [2476 2497] ) redirects: [ (Redir op_id: Redir_Less fd: 16777215 arg_word: {(DQ ($ VSub_Name '$FP_INCLUDE_USER'))} spids: [2499] ) ] ) ] spids: [16777215 2446] ) ] spids: [16777215 2507] ) (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: { (DQ ('\n') ('#EXCLUDE\n') ('#Global - Folders\n') ('- ') ($ VSub_Name '$FP_TARGET_BACKUP') ('/\n') ('- /mnt/\n') ('- /media/\n') ('- /dev/\n') ('- /proc/\n') ('- /sys/\n') ('- /tmp/\n') ('- /run/\n') ('\n') ('#Apt package cache (.deb)\n') ('- /var/cache/apt/archives/\n') ('\n') ('#Manpages / Docs\n') ('- /usr/share/man/\n') ('- /usr/share/doc/\n') ('\n') ('#Global - Files\n') ('- ') ($ VSub_Name '$LOGFILE') ('\n') ('- ') ($ VSub_Name '$FP_DIETPIBACKUP_SETTINGS') ('\n') ('- ') ($ VSub_Name '$BACKUP_STATS_FILENAME_SYSTEM') ('\n') ('- ') ($ VSub_Name '$BACKUP_STATS_FILENAME_USERDATA') ('\n') ('- /var/swap\n') ('- fake-hwclock.data\n') ('- *.tmp\n') ('\n') ('#MS Windows specific\n') ('- Thumbs.db\n') ('- desktop.ini\n') ) } do_expansion: True here_end: _EOF_ was_filled: T spids: [2517] ) (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {(DQ ($ VSub_Name '$FP_FILTER_INCLUDE_EXCLUDE_SYSTEM_BACKUP'))} spids: [2521] ) ] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Name '$FP_EXCLUDE_USER'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (SimpleCommand words: [{(echo)} {(-e)} {(DQ (Lit_Other '\\') ('n#User exclude file'))}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: {(DQ ($ VSub_Name '$FP_FILTER_INCLUDE_EXCLUDE_SYSTEM_BACKUP'))} spids: [2601] ) ] ) (While cond: [(C {(read)} {(-r)} {(line)})] body: (DoGroup children: [ (SimpleCommand words: [{(echo)} {(-e)} {(DQ ('- ') ($ VSub_Name '$line'))}] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: { (DQ ($ VSub_Name '$FP_FILTER_INCLUDE_EXCLUDE_SYSTEM_BACKUP') ) } spids: [2630] ) ] ) ] spids: [2617 2638] ) redirects: [ (Redir op_id: Redir_Less fd: 16777215 arg_word: {(DQ ($ VSub_Name '$FP_EXCLUDE_USER'))} spids: [2640] ) ] ) ] spids: [16777215 2588] ) ] spids: [16777215 2648] ) (C {(cp)} {(DQ ($ VSub_Name '$FP_FILTER_INCLUDE_EXCLUDE_SYSTEM_BACKUP'))} {(/tmp/.dietpi-backup_inc_exc_list)} ) ] spids: [2403] ) spids: [2400 2403] ) (FuncDef name: Services_Stop body: (BraceGroup children:[(C {(/DietPi/dietpi/dietpi-services)} {(stop)})] spids:[2673]) spids: [2670 2673] ) (FuncDef name: Services_Start body: (BraceGroup children:[(C {(/DietPi/dietpi/dietpi-services)} {(start)})] spids:[2688]) spids: [2685 2688] ) (FuncDef name: Run_Backup body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RSYNC_MODE_TEXT) op: Equal rhs: {(DQ (Backup))} spids: [2707] ) ] spids: [2707] ) (C {(G_DIETPI-NOTIFY)} {(3)} {(DietPi-Backup)} {(DQ ($ VSub_Name '$RSYNC_MODE_TEXT'))}) (C {(Check_Supported_Directory_Location)}) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$TARGET_DIRECTORY_SUPPORTED')}) right: (ArithWord w:{(Lit_Digits 1)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name '$FP_TARGET_BACKUP'))}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} {(DQ ($ VSub_Name '$FP_TARGET_BACKUP'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithWord w:{($ VSub_Name '$G_USER_INPUTS')}) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(whiptail)} {(--title)} {(DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' failed.'))} {(--msgbox)} {(DQ ('Unable to create ') ($ VSub_Name '$FP_TARGET_BACKUP'))} {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(10)} {(60)} ) ] spids: [16777215 2803] ) ] spids: [16777215 2835] ) ] spids: [16777215 2789] ) (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(ps)} {(aux)}) (C {(grep)} {(-ci)} {(-m1)} {(DQ ('[r]sync'))} ) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [2847 2863] ) } ) right: (ArithWord w:{(Lit_Digits 1)}) ) ) terminator: <Op_Semi ';'> ) ] action: [(C {(Error_Rsync_Already_Running)})] spids: [2843 2873] ) ] else_action: [ (SimpleCommand words: [ {(echo)} {(-e)} { (DQ ('DietPi-Backup Log File. ') (CommandSubPart command_list: (CommandList children: [ (C {(date)} {(Lit_Other '+') (DQ ('%d-%m-%Y_%H%M'))}) ] ) left_token: <Left_CommandSub '$('> spids: [2896 2903] ) (Lit_Other '\\') (n) (Lit_Other '\\') (n) ) } ] redirects: [ (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ ($ VSub_Name '$LOGFILE'))} spids: [2910] ) ] ) (C {(Create_Filter_Include_Exclude)}) (C {(Services_Stop)}) (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Backing up to: ') ($ VSub_Name '$FP_TARGET_BACKUP'))} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BACKUP_RESTORE_FAILED) op: Equal rhs: {(0)} spids: [2941] ) ] spids: [2941] ) (While cond: [(C {(true)})] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RSYNC_MODE_TEXT) op: Equal rhs: {(SQ <'Backup (system)'>)} spids: [2959] ) ] spids: [2959] ) (C {(rsync)} {($ VSub_Name '$RSYNC_RUN_OPTIONS_SYSTEM_BACKUP')} {(DQ ($ VSub_Name '$FP_SOURCE_SYSTEM'))} {(DQ ($ VSub_Name '$FP_TARGET_BACKUP')) (/dietpi-backup_system/)} ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_QMark '$?')}) right: (ArithWord w:{(Lit_Digits 0)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(G_DIETPI-NOTIFY)} {(0)} { (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' Completed.') (Lit_Other '\\') (n) ) } ) (SimpleCommand words: [ {(echo)} {(-e)} { (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' Completed : ') (CommandSubPart command_list: (CommandList children: [(C {(Print_Date)})] ) left_token: <Left_CommandSub '$('> spids: [3018 3020] ) ) } ] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: { (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) ($ VSub_Name '$BACKUP_STATS_FILENAME_SYSTEM') ) } spids: [3023] ) ] ) ] spids: [16777215 2994] ) ] else_action: [ (C {(G_DIETPI-NOTIFY)} {(1)} { (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' FAILED.') (Lit_Other '\\') (n) ) } ) (SimpleCommand words: [ {(echo)} {(-e)} { (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' FAILED : ') (CommandSubPart command_list: (CommandList children: [(C {(Print_Date)})] ) left_token: <Left_CommandSub '$('> spids: [3056 3058] ) ) } ] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: { (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) ($ VSub_Name '$BACKUP_STATS_FILENAME_SYSTEM') ) } spids: [3061] ) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BACKUP_RESTORE_FAILED) op: Equal rhs: {(1)} spids: [3070] ) ] spids: [3070] ) (ControlFlow token: <ControlFlow_Break break> ) ] spids: [3033 3078] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RSYNC_MODE_TEXT) op: Equal rhs: {(SQ <'Backup (user data)'>)} spids: [3086] ) ] spids: [3086] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w: {($ VSub_Name '$BACKUP_MODE')} ) right: (ArithWord w:{(Lit_Digits 1)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(rsync)} {($ VSub_Name '$RSYNC_RUN_OPTIONS_USERDATA_BACKUP')} {(DQ ($ VSub_Name '$G_FP_DIETPI_USERDATA_ACTUAL')) (/)} {(DQ ($ VSub_Name '$FP_TARGET_BACKUP')) (/dietpi-backup_userdata/) } ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_QMark '$?')}) right: (ArithWord w:{(Lit_Digits 0)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(G_DIETPI-NOTIFY)} {(0)} { (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' Completed.') (Lit_Other '\\') (n) ) } ) (SimpleCommand words: [ {(echo)} {(-e)} { (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' Completed : ') (CommandSubPart command_list: (CommandList children: [(C {(Print_Date)})] ) left_token: <Left_CommandSub '$('> spids: [3164 3166] ) ) } ] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: { (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) ($ VSub_Name '$BACKUP_STATS_FILENAME_USERDATA') ) } spids: [3169] ) ] ) ] spids: [16777215 3140] ) ] else_action: [ (C {(G_DIETPI-NOTIFY)} {(1)} { (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' FAILED.') (Lit_Other '\\') (n) ) } ) (SimpleCommand words: [ {(echo)} {(-e)} { (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' FAILED : ') (CommandSubPart command_list: (CommandList children: [(C {(Print_Date)})] ) left_token: <Left_CommandSub '$('> spids: [3202 3204] ) ) } ] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: { (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) ($ VSub_Name '$BACKUP_STATS_FILENAME_USERDATA' ) ) } spids: [3207] ) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BACKUP_RESTORE_FAILED) op: Equal rhs: {(1)} spids: [3216] ) ] spids: [3216] ) (ControlFlow token: <ControlFlow_Break break> ) ] spids: [3179 3224] ) ] spids: [16777215 3107] ) ] spids: [16777215 3228] ) (ControlFlow token: <ControlFlow_Break break> ) ] spids: [2951 3240] ) ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithWord w:{($ VSub_Name '$BACKUP_RESTORE_FAILED')}) ) terminator: <Op_Semi ';'> ) ] action: [(C {(Error_Rsync_Failed)})] spids: [16777215 3254] ) ] else_action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithWord w:{($ VSub_Name '$G_USER_INPUTS')}) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RSYNC_MODE_TEXT) op: Equal rhs: {(SQ <Backup>)} spids: [3280] ) ] spids: [3280] ) (C {(whiptail)} {(--title)} {(DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' completed'))} {(--msgbox)} { (DQ ('Your ') ($ VSub_Name '$RSYNC_MODE_TEXT') (' was saved to:') (Lit_Other '\\') (n) ($ VSub_Name '$FP_TARGET_BACKUP') (Lit_Other '\\') (n) (Lit_Other '\\') ('nLog file: ') ($ VSub_Name '$LOGFILE') ) } {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(11)} {(60)} ) ] spids: [16777215 3276] ) ] spids: [16777215 3323] ) ] spids: [3262 3327] ) (C {(Services_Start)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TARGETMENUID) op: Equal rhs: {(0)} spids: [3339] ) ] spids: [3339] ) ] spids: [2881 3344] ) ] spids: [16777215 2752] ) ] spids: [16777215 3347] ) ] spids: [2703] ) spids: [2700 2703] ) (FuncDef name: Run_Restore body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RSYNC_MODE_TEXT) op: Equal rhs: {(DQ (Restore))} spids: [3362] ) ] spids: [3362] ) (C {(G_DIETPI-NOTIFY)} {(3)} {(DietPi-Backup)} {(DQ ($ VSub_Name '$RSYNC_MODE_TEXT'))}) (C {(Check_Supported_Directory_Location)}) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$TARGET_DIRECTORY_SUPPORTED')}) right: (ArithWord w:{(Lit_Digits 1)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-f)} { (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) ($ VSub_Name '$BACKUP_STATS_FILENAME_SYSTEM') ) } {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(G_DIETPI-NOTIFY)} {(2)} { (DQ ('No Backup was found in ') ($ VSub_Name '$FP_TARGET_BACKUP')) } ) (C {(G_DIETPI-NOTIFY)} {(1)} { (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' Failed.') (Lit_Other '\\') (n) ) } ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithWord w:{($ VSub_Name '$G_USER_INPUTS')}) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(whiptail)} {(--title)} {(DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' failed'))} {(--msgbox)} { (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) ($ VSub_Name '$BACKUP_STATS_FILENAME_SYSTEM') (' does not exist') (Lit_Other '\\') (n) (Lit_Other '\\') ('nHave you created a backup?') ) } {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(11)} {(70)} ) ] spids: [16777215 3468] ) ] spids: [16777215 3506] ) ] spids: [16777215 3432] ) (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w: { (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(ps)} {(aux)}) (C {(grep)} {(-ci)} {(-m1)} {(DQ ('[r]sync'))} ) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [3518 3534] ) } ) right: (ArithWord w:{(Lit_Digits 1)}) ) ) terminator: <Op_Semi ';'> ) ] action: [(C {(Error_Rsync_Already_Running)})] spids: [3514 3544] ) ] else_action: [ (C {(Create_Filter_Include_Exclude)}) (C {(Services_Stop)}) (C {(G_DIETPI-NOTIFY)} {(2)} {(DQ ('Restoring from: ') ($ VSub_Name '$FP_TARGET_BACKUP'))} ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BACKUP_RESTORE_FAILED) op: Equal rhs: {(0)} spids: [3583] ) ] spids: [3583] ) (While cond: [(C {(true)})] body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RSYNC_MODE_TEXT) op: Equal rhs: {(SQ <'Restore (system)'>)} spids: [3601] ) ] spids: [3601] ) (C {(rsync)} {($ VSub_Name '$RSYNC_RUN_OPTIONS_SYSTEM_BACKUP')} {(DQ ($ VSub_Name '$FP_TARGET_BACKUP')) (/dietpi-backup_system/) } {(DQ ($ VSub_Name '$FP_SOURCE_SYSTEM'))} ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_QMark '$?')}) right: (ArithWord w:{(Lit_Digits 0)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(G_DIETPI-NOTIFY)} {(0)} { (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' Completed.') (Lit_Other '\\') (n) ) } ) (SimpleCommand words: [ {(echo)} {(-e)} { (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' Completed : ') (CommandSubPart command_list: (CommandList children: [(C {(Print_Date)})] ) left_token: <Left_CommandSub '$('> spids: [3659 3661] ) ) } ] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: { (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) ($ VSub_Name '$BACKUP_STATS_FILENAME_SYSTEM') ) } spids: [3664] ) ] ) ] spids: [16777215 3636] ) ] else_action: [ (C {(G_DIETPI-NOTIFY)} {(1)} { (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' FAILED.') (Lit_Other '\\') (n) ) } ) (SimpleCommand words: [ {(echo)} {(-e)} { (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' FAILED : ') (CommandSubPart command_list: (CommandList children: [(C {(Print_Date)})] ) left_token: <Left_CommandSub '$('> spids: [3697 3699] ) ) } ] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: { (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) ($ VSub_Name '$BACKUP_STATS_FILENAME_SYSTEM') ) } spids: [3702] ) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BACKUP_RESTORE_FAILED) op: Equal rhs: {(1)} spids: [3711] ) ] spids: [3711] ) (ControlFlow token: <ControlFlow_Break break> ) ] spids: [3674 3719] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RSYNC_MODE_TEXT) op: Equal rhs: {(SQ <'Restore (user data)'>)} spids: [3727] ) ] spids: [3727] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w: {($ VSub_Name '$BACKUP_MODE')} ) right: (ArithWord w:{(Lit_Digits 1)}) ) ) terminator: <Op_Semi ';'> ) ] action: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} { (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) ($ VSub_Name '$BACKUP_STATS_FILENAME_USERDATA' ) ) } {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(rsync)} { ($ VSub_Name '$RSYNC_RUN_OPTIONS_USERDATA_BACKUP' ) } {(DQ ($ VSub_Name '$FP_TARGET_BACKUP')) (/dietpi-backup_userdata/)} { (DQ ($ VSub_Name '$G_FP_DIETPI_USERDATA_ACTUAL') ) (/) } ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w: {($ VSub_QMark '$?')} ) right: (ArithWord w: {(Lit_Digits 0)} ) ) ) terminator: <Op_Semi ';'> ) ] action: [ (C {(G_DIETPI-NOTIFY)} {(0)} { (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' Completed.') (Lit_Other '\\') (n) ) } ) (SimpleCommand words: [ {(echo)} {(-e)} { (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' Completed : ') (CommandSubPart command_list: (CommandList children: [(C {(Print_Date)})] ) left_token: <Left_CommandSub '$('> spids: [3827 3829] ) ) } ] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: { (DQ ($ VSub_Name '$FP_TARGET_BACKUP' ) (/) ($ VSub_Name '$BACKUP_STATS_FILENAME_USERDATA') ) } spids: [3832] ) ] ) ] spids: [16777215 3804] ) ] else_action: [ (C {(G_DIETPI-NOTIFY)} {(1)} { (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' FAILED.') (Lit_Other '\\') (n) ) } ) (SimpleCommand words: [ {(echo)} {(-e)} { (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' FAILED : ') (CommandSubPart command_list: (CommandList children: [(C {(Print_Date)})] ) left_token: <Left_CommandSub '$('> spids: [3865 3867] ) ) } ] redirects: [ (Redir op_id: Redir_DGreat fd: 16777215 arg_word: { (DQ ($ VSub_Name '$FP_TARGET_BACKUP') (/) ($ VSub_Name '$BACKUP_STATS_FILENAME_USERDATA') ) } spids: [3870] ) ] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name: BACKUP_RESTORE_FAILED ) op: Equal rhs: {(1)} spids: [3879] ) ] spids: [3879] ) (ControlFlow token: <ControlFlow_Break break> ) ] spids: [3842 3887] ) ] spids: [16777215 3771] ) ] else_action: [ (C {(G_DIETPI-NOTIFY)} {(2)} { (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (': No backup exists, skipping...') (Lit_Other '\\') (n) ) } ) ] spids: [3891 3908] ) ] spids: [16777215 3748] ) ] spids: [16777215 3912] ) (ControlFlow token: <ControlFlow_Break break> ) ] spids: [3593 3924] ) ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithWord w:{($ VSub_Name '$BACKUP_RESTORE_FAILED')}) ) terminator: <Op_Semi ';'> ) ] action: [(C {(Error_Rsync_Failed)})] spids: [16777215 3938] ) ] else_action: [ (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithWord w:{($ VSub_Name '$G_USER_INPUTS')}) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:RSYNC_MODE_TEXT) op: Equal rhs: {(SQ <Restore>)} spids: [3964] ) ] spids: [3964] ) (C {(whiptail)} {(--title)} {(DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' completed'))} {(--msgbox)} { (DQ ($ VSub_Name '$RSYNC_MODE_TEXT') (' completed from:') (Lit_Other '\\') (n) ($ VSub_Name '$FP_TARGET_BACKUP') (Lit_Other '\\') (n) (Lit_Other '\\') ('nLog file: ') ($ VSub_Name '$LOGFILE') (Lit_Other '\\') (n) (Lit_Other '\\') ('nA Reboot is required.') ) } {(--backtitle)} {(DQ ($ VSub_Name '$WHIP_BACKTITLE'))} {(13)} {(60)} ) ] spids: [16777215 3960] ) ] spids: [16777215 4010] ) ] spids: [3946 4014] ) (C {(Services_Start)}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TARGETMENUID) op: Equal rhs: {(0)} spids: [4026] ) ] spids: [4026] ) ] spids: [3556 4031] ) ] spids: [16777215 3407] ) ] spids: [16777215 4035] ) ] spids: [3358] ) spids: [3355 3358] ) (FuncDef name: Check_Install_PreReqs body: (BraceGroup children:[(C {(G_AG_CHECK_INSTALL_PREREQ)} {(rsync)})] spids:[4046]) spids: [4043 4046] ) (FuncDef name: Check_Supported_Directory_Location body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TARGET_DIRECTORY_SUPPORTED) op: Equal rhs: {(0)} spids: [4067] ) ] spids: [4067] ) (If arms: [ (if_arm cond: [ (Sentence child: (AndOr ops: [Op_DPipe] children: [ (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name '$FP_TARGET_BACKUP'))} right: {(DQ ($ VSub_Name '$G_FP_DIETPI_USERDATA')) (Lit_Other '*')} ) ) (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name '$FP_TARGET_BACKUP'))} right: {(DQ ($ VSub_Name '$G_FP_DIETPI_USERDATA_ACTUAL')) (Lit_Other '*') } ) ) ] ) terminator: <Op_Semi ';'> ) ] action: [(C {(Error_DietpiUserdata_Directory)})] spids: [16777215 4112] ) (if_arm cond: [ (Sentence child: (DBracket expr: (BoolBinary op_id: BoolBinary_GlobDEqual left: {(DQ ($ VSub_Name '$FP_TARGET_BACKUP'))} right: {(DQ (/mnt/)) (Lit_Other '*')} ) ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:directory_generated) op: Equal rhs: {(0)} spids: [4152] ) ] spids: [4150] ) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(KW_Bang '!')} {(-d)} {(DQ ($ VSub_Name '$FP_TARGET_BACKUP'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name '$FP_TARGET_BACKUP'))}) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:directory_generated) op: Equal rhs: {(1)} spids: [4184] ) ] spids: [4184] ) ] spids: [16777215 4171] ) ] spids: [16777215 4189] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TARGET_FILESYSTEM_TYPE) op: Equal rhs: { (DQ (CommandSubPart command_list: (CommandList children: [ (Pipeline children: [ (C {(df)} {(-T)} {($ VSub_Name '$FP_TARGET_BACKUP')}) (C {(sed)} {(-n)} {(SQ <2p>)}) (C {(awk)} {(SQ <'{print $2}'>)}) ] negated: F ) ] ) left_token: <Left_CommandSub '$('> spids: [4195 4220] ) ) } spids: [4193] ) ] spids: [4193] ) (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 aSUPPORTED_FILESYSTEMS> prefix_op: VSub_Pound bracket_op: (WholeArray op_id:Lit_At) spids: [4234 4240] ) } ) ) update: (UnaryAssign op_id:Node_PostDPlus child:(LhsName name:i)) body: (DoGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(DQ ($ VSub_Name '$TARGET_FILESYSTEM_TYPE'))} {(Lit_Other '=')} { (DQ (BracedVarSub token: <VSub_Name aSUPPORTED_FILESYSTEMS> bracket_op: (ArrayIndex expr: (ArithWord w:{($ VSub_Name '$i')}) ) spids: [4264 4269] ) ) } {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:TARGET_DIRECTORY_SUPPORTED) op: Equal rhs: {(1)} spids: [4279] ) ] spids: [4279] ) (ControlFlow token: <ControlFlow_Break break> ) ] spids: [16777215 4275] ) ] spids: [16777215 4287] ) ] spids: [4249 4291] ) ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$directory_generated')}) right: (ArithWord w:{(Lit_Digits 1)}) ) ) terminator: <Op_Semi ';'> ) ] action: [(C {(rm)} {(-R)} {(DQ ($ VSub_Name '$FP_TARGET_BACKUP'))})] spids: [16777215 4313] ) ] spids: [16777215 4327] ) (If arms: [ (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w: {($ VSub_Name '$TARGET_DIRECTORY_SUPPORTED')} ) right: (ArithWord w:{(Lit_Digits 0)}) ) ) terminator: <Op_Semi ';'> ) ] action: [(C {(Error_Filesystem_Not_Supported)})] spids: [16777215 4349] ) ] spids: [16777215 4357] ) ] spids: [4124 4142] ) ] else_action: [(C {(Error_Not_Mnt_Directory)})] spids: [4365 4373] ) ] spids: [4063] ) spids: [4060 4063] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FP_DIETPIBACKUP_SETTINGS) op: Equal rhs: {(DQ (/DietPi/dietpi/.dietpi-backup_settings))} spids: [4397] ) ] spids: [4397] ) (FuncDef name: Write_Settings_File body: (BraceGroup children: [ (SimpleCommand words: [{(cat)}] redirects: [ (HereDoc op_id: Redir_DLess fd: 16777215 body: { (DQ ('FP_TARGET_BACKUP=') ($ VSub_Name '$FP_TARGET_BACKUP') ('\n') ('BACKUP_MODE=') ($ VSub_Name '$BACKUP_MODE') ('\n') ) } do_expansion: True here_end: _EOF_ was_filled: T spids: [4413] ) (Redir op_id: Redir_Great fd: 16777215 arg_word: {(DQ ($ VSub_Name '$FP_DIETPIBACKUP_SETTINGS'))} spids: [4417] ) ] ) ] spids: [4407] ) spids: [4404 4407] ) (FuncDef name: Read_Settings_File body: (BraceGroup children: [ (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-f)} {(DQ ($ VSub_Name '$FP_DIETPIBACKUP_SETTINGS'))} {(Lit_Other ']')} ) terminator: <Op_Semi ';'> ) ] action: [(C {(.)} {(DQ ($ VSub_Name '$FP_DIETPIBACKUP_SETTINGS'))})] spids: [16777215 4456] ) ] spids: [16777215 4468] ) ] spids: [4439] ) spids: [4436 4439] ) (C {(Check_Install_PreReqs)}) (C {(Read_Settings_File)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other '[')} {(-n)} {(DQ ($ VSub_Number '$2'))} {(Lit_Other ']')}) terminator: <Op_Semi ';'> ) ] action: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:FP_TARGET_BACKUP) op: Equal rhs: {($ VSub_Number '$2')} spids: [4526] ) ] spids: [4526] ) ] spids: [16777215 4522] ) ] spids: [16777215 4531] ) (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 1)}) ) ) terminator: <Op_Semi ';'> ) ] action: [(C {(Run_Backup)})] spids: [16777215 4557] ) (if_arm cond: [ (Sentence child: (DParen child: (ArithBinary op_id: Arith_DEqual left: (ArithWord w:{($ VSub_Name '$INPUT')}) right: (ArithUnary op_id:Node_UnaryMinus child:(ArithWord w:{(Lit_Digits 1)})) ) ) terminator: <Op_Semi ';'> ) ] action: [(C {(Run_Restore)})] spids: [4569 4584] ) (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 4655] ) (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_Set_Directory)})] spids: [4663 4677] ) ] spids: [16777215 4685] ) ] spids: [4633 4689] ) ) (C {(Write_Settings_File)}) ] spids: [4600 4614] ) ] spids: [16777215 4700] ) (Sentence child: (C {(rm)} {(DQ ($ VSub_Name '$FP_FILTER_INCLUDE_EXCLUDE_SYSTEM_BACKUP'))}) terminator: <Op_Amp '&'> ) (SimpleCommand redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(/dev/null)} spids:[4719])] ) (C {(unset)} {(aSUPPORTED_FILESYSTEMS)}) (ControlFlow token:<ControlFlow_Exit exit> arg_word:{(0)}) ] spids: [3] ) ] )