3838 help = "Specify the batch size for deleting remote assets." )
3939@option ("-fm" , "--folder-mode" , type = Choice (['fixed' , 'dynamic' ], case_sensitive = False ),
4040 help = "Specify folder mode explicitly. By default uses cloud mode configured in your cloud." , hidden = True )
41+ @option ("-st" , "--status" , type = Choice (['all' , 'active' , 'pending' ], case_sensitive = False ),
42+ help = "Specify asset status. Server default: active." , default = None )
4143@option ("-o" , "--optional_parameter" , multiple = True , nargs = 2 , help = "Pass optional parameters as raw strings." )
4244@option ("-O" , "--optional_parameter_parsed" , multiple = True , nargs = 2 ,
4345 help = "Pass optional parameters as interpreted strings." )
4446@option ("--dry-run" , is_flag = True , help = "Simulate the sync operation without making any changes." )
4547def sync (local_folder , cloudinary_folder , push , pull , include_hidden , concurrent_workers , force , keep_unique ,
46- deletion_batch_size , folder_mode , optional_parameter , optional_parameter_parsed , dry_run ):
48+ deletion_batch_size , folder_mode , status , optional_parameter , optional_parameter_parsed , dry_run ):
4749 if push == pull :
4850 raise UsageError ("Please use either the '--push' OR '--pull' options" )
4951
5052 sync_dir = SyncDir (local_folder , cloudinary_folder , include_hidden , concurrent_workers , force , keep_unique ,
51- deletion_batch_size , folder_mode , optional_parameter , optional_parameter_parsed , dry_run )
53+ deletion_batch_size , folder_mode , status , optional_parameter , optional_parameter_parsed , dry_run )
5254 result = True
5355 if push :
5456 result = sync_dir .push ()
@@ -63,7 +65,7 @@ def sync(local_folder, cloudinary_folder, push, pull, include_hidden, concurrent
6365
6466class SyncDir :
6567 def __init__ (self , local_dir , remote_dir , include_hidden , concurrent_workers , force , keep_deleted ,
66- deletion_batch_size , folder_mode , optional_parameter , optional_parameter_parsed , dry_run ):
68+ deletion_batch_size , folder_mode , status , optional_parameter , optional_parameter_parsed , dry_run ):
6769 self .local_dir = local_dir
6870 self .remote_dir = remote_dir .strip ('/' )
6971 self .user_friendly_remote_dir = self .remote_dir if self .remote_dir else '/'
@@ -100,7 +102,7 @@ def __init__(self, local_dir, remote_dir, include_hidden, concurrent_workers, fo
100102 logger .info (f"Cloudinary folder '{ self .user_friendly_remote_dir } ' does not exist "
101103 f"({ self .folder_mode } folder mode)." )
102104 else :
103- raw_remote_files = query_cld_folder (self .remote_dir , self .folder_mode )
105+ raw_remote_files = query_cld_folder (self .remote_dir , self .folder_mode , status )
104106 if len (raw_remote_files ):
105107 logger .info (
106108 f"Found { len (raw_remote_files )} items in Cloudinary folder '{ self .user_friendly_remote_dir } ' "
0 commit comments