2323@argument ("cloudinary_folder" )
2424@option ("--push" , help = "Push changes from your local folder to your Cloudinary folder." , is_flag = True )
2525@option ("--pull" , help = "Pull changes from your Cloudinary folder to your local folder." , is_flag = True )
26+ @option ("-H" , "--include-hidden" , is_flag = True , help = "Include hidden files in sync." )
2627@option ("-w" , "--concurrent_workers" , type = int , default = _DEFAULT_CONCURRENT_WORKERS ,
2728 help = "Specify the number of concurrent network threads." )
2829@option ("-F" , "--force" , is_flag = True , help = "Skip confirmation when deleting files." )
2930@option ("-K" , "--keep-unique" , is_flag = True , help = "Keep unique files in the destination folder." )
3031@option ("-D" , "--deletion-batch-size" , type = int , default = _DEFAULT_DELETION_BATCH_SIZE ,
3132 help = "Specify the batch size for deleting remote assets." )
32- def sync (local_folder , cloudinary_folder , push , pull , concurrent_workers , force , keep_unique , deletion_batch_size ):
33+ def sync (local_folder , cloudinary_folder , push , pull , include_hidden , concurrent_workers , force , keep_unique ,
34+ deletion_batch_size ):
3335 if push == pull :
3436 raise Exception ("Please use either the '--push' OR '--pull' options" )
3537
36- sync_dir = SyncDir (local_folder , cloudinary_folder , concurrent_workers , force , keep_unique , deletion_batch_size )
38+ sync_dir = SyncDir (local_folder , cloudinary_folder , include_hidden , concurrent_workers , force , keep_unique ,
39+ deletion_batch_size )
3740
3841 if push :
3942 sync_dir .push ()
@@ -44,17 +47,19 @@ def sync(local_folder, cloudinary_folder, push, pull, concurrent_workers, force,
4447
4548
4649class SyncDir :
47- def __init__ (self , local_dir , remote_dir , concurrent_workers , force , keep_deleted , deletion_batch_size ):
50+ def __init__ (self , local_dir , remote_dir , include_hidden , concurrent_workers , force , keep_deleted ,
51+ deletion_batch_size ):
4852 self .local_dir = local_dir
4953 self .remote_dir = remote_dir
54+ self .include_hidden = include_hidden
5055 self .concurrent_workers = concurrent_workers
5156 self .force = force
5257 self .keep_unique = keep_deleted
5358 self .deletion_batch_size = deletion_batch_size
5459
5560 self .verbose = logger .getEffectiveLevel () < logging .INFO
5661
57- self .local_files = walk_dir (abspath (self .local_dir ))
62+ self .local_files = walk_dir (abspath (self .local_dir ), include_hidden )
5863 logger .info (f"Found { len (self .local_files )} items in local folder '{ local_dir } '" )
5964
6065 self .remote_files = query_cld_folder (self .remote_dir )
0 commit comments