@@ -61,48 +61,54 @@ def fs_recursive_listdir(self):
6161 dirs [item [0 ]] = item [2 ]
6262 return dirs , files
6363
64- def fs_verbose_get (self , src , dest , chunk_size = 1024 ):
64+ def fs_verbose_get (self , src , dest , chunk_size = 1024 , dry : bool = False ):
6565 def print_prog (written , total ):
6666 utils .print_progress_bar (
6767 iteration = written , total = total , decimals = 0 ,
6868 prefix = f"{ Fore .LIGHTCYAN_EX } ↓ Getting { src } " .ljust (60 ),
6969 suffix = "Complete" , length = 15 )
7070
71- self .fs_get (src , dest , chunk_size = chunk_size , progress_callback = print_prog )
71+ if not dry :
72+ self .fs_get (src , dest , chunk_size = chunk_size , progress_callback = print_prog )
7273 print_prog (1 , 1 )
7374 utils .reset_term_color (new_line = True )
7475
75- def fs_verbose_put (self , src , dest , chunk_size = 1024 ):
76+ def fs_verbose_put (self , src , dest , chunk_size = 1024 , dry : bool = False ):
7677 def print_prog (written , total ):
7778 utils .print_progress_bar (
7879 iteration = written , total = total , decimals = 0 ,
7980 prefix = f"{ Fore .LIGHTYELLOW_EX } ↑ Putting { dest } " .ljust (60 ),
8081 suffix = "Complete" , length = 15 )
8182
82- self .fs_put (src , dest , chunk_size = chunk_size , progress_callback = print_prog )
83+ if not dry :
84+ self .fs_put (src , dest , chunk_size = chunk_size , progress_callback = print_prog )
8385 print_prog (1 , 1 )
8486 utils .reset_term_color (new_line = True )
8587
86- def fs_verbose_rename (self , src , dest ):
87- buf , consumer = generate_buffer ()
88- self .exec_ (f'from os import rename; rename("{ src } ", "{ dest } ")' ,
89- data_consumer = consumer )
88+ def fs_verbose_rename (self , src , dest , dry : bool = False ):
89+ if not dry :
90+ buf , consumer = generate_buffer ()
91+ self .exec_ (f'from os import rename; rename("{ src } ", "{ dest } ")' ,
92+ data_consumer = consumer )
9093 print (Fore .LIGHTBLUE_EX , "O Rename" , src , "→" , dest )
9194 utils .reset_term_color ()
9295
93- def fs_verbose_mkdir (self , dir_path ):
94- self .fs_mkdir (dir_path )
96+ def fs_verbose_mkdir (self , dir_path , dry : bool = False ):
97+ if not dry :
98+ self .fs_mkdir (dir_path )
9599 print (Fore .LIGHTGREEN_EX , "* Created" , dir_path )
96100 utils .reset_term_color ()
97101
98- def fs_verbose_rm (self , src ):
99- self .fs_rm (src )
102+ def fs_verbose_rm (self , src , dry : bool = False ):
103+ if not dry :
104+ self .fs_rm (src )
100105 print (Fore .LIGHTRED_EX , "✕ Removed" , src )
101106 utils .reset_term_color ()
102107
103- def fs_verbose_rmdir (self , dir_path ):
108+ def fs_verbose_rmdir (self , dir_path , dry : bool = False ):
104109 try :
105- self .fs_rmdir (dir_path )
110+ if not dry :
111+ self .fs_rmdir (dir_path )
106112 except PyboardError :
107113 print (Fore .RED , "E Cannot remove directory" , dir_path , "as it might be mounted" )
108114 else :
@@ -118,46 +124,47 @@ def copy_all(self, dest_dir_path):
118124 print (Fore .LIGHTGREEN_EX , "✓ Copied all files successfully" )
119125 utils .reset_term_color ()
120126
121- def sync_with_dir (self , dir_path ):
127+ def sync_with_dir (self , dir_path , dry : bool = False ):
122128 print (Fore .YELLOW , "- Syncing" )
123129 self .exec_raw_no_follow (SHA1_FUNC )
124130 dir_path = utils .replace_backslashes (dir_path )
125131 rdirs , rfiles = self .fs_recursive_listdir ()
126132 ldirs , lfiles = utils .recursive_list_dir (dir_path )
127133 ignore = IgnoreStorage (dir_path = dir_path )
128- for rdir in rdirs .keys ():
129- if rdir not in ldirs and not ignore .match_dir (rdir ):
130- os .makedirs (dir_path + rdir , exist_ok = True )
134+ if not dry :
135+ for rdir in rdirs .keys ():
136+ if rdir not in ldirs and not ignore .match_dir (rdir ):
137+ os .makedirs (dir_path + rdir , exist_ok = True )
131138 for ldir in ldirs .keys ():
132139 if ldir not in rdirs and not ignore .match_dir (ldir ):
133- self .fs_verbose_mkdir (ldir )
140+ self .fs_verbose_mkdir (ldir , dry = dry )
134141 for lfile_rel , lfiles_abs in lfiles .items ():
135142 if ignore .match_file (lfile_rel ):
136143 continue
137144 if rfiles .get (lfile_rel , None ) == os .path .getsize (lfiles_abs ):
138145 if self .get_sha1 (lfile_rel ) == utils .get_file_sha1 (lfiles_abs ):
139146 continue
140- self .fs_verbose_put (lfiles_abs , lfile_rel , chunk_size = 256 )
147+ self .fs_verbose_put (lfiles_abs , lfile_rel , chunk_size = 256 , dry = dry )
141148 for rfile , rsize in rfiles .items ():
142149 if ignore .match_file (rfile ):
143150 continue
144151 if rfile not in lfiles :
145- self .fs_verbose_get (rfile , dir_path + rfile , chunk_size = 256 )
152+ self .fs_verbose_get (rfile , dir_path + rfile , chunk_size = 256 , dry = dry )
146153 print (Fore .LIGHTGREEN_EX , "✓ Files synced successfully" )
147154
148- def delete_absent_items (self , dir_path ):
155+ def delete_absent_items (self , dir_path , dry : bool = False ):
149156 dir_path = utils .replace_backslashes (dir_path )
150157 rdirs , rfiles = self .fs_recursive_listdir ()
151158 ldirs , lfiles = utils .recursive_list_dir (dir_path )
152159 ignore = IgnoreStorage (dir_path = dir_path )
153160 for rfile , rsize in rfiles .items ():
154161 if not ignore .match_file (rfile ) and rfile not in lfiles :
155- self .fs_verbose_rm (rfile )
162+ self .fs_verbose_rm (rfile , dry = dry )
156163 for rdir in rdirs .keys ():
157164 if not ignore .match_dir (rdir ) and rdir not in ldirs :
158165 # There might be ignored files in folders
159166 with suppress (Exception ):
160- self .fs_verbose_rmdir (rdir )
167+ self .fs_verbose_rmdir (rdir , dry = dry )
161168
162169 def clear_all (self ):
163170 print (Fore .YELLOW , "- Deleting all files from MicroPython board" )
0 commit comments