38
38
help = "Specify the batch size for deleting remote assets." )
39
39
@option ("-fm" , "--folder-mode" , type = Choice (['fixed' , 'dynamic' ], case_sensitive = False ),
40
40
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 )
41
43
@option ("-o" , "--optional_parameter" , multiple = True , nargs = 2 , help = "Pass optional parameters as raw strings." )
42
44
@option ("-O" , "--optional_parameter_parsed" , multiple = True , nargs = 2 ,
43
45
help = "Pass optional parameters as interpreted strings." )
44
46
@option ("--dry-run" , is_flag = True , help = "Simulate the sync operation without making any changes." )
45
47
def 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 ):
47
49
if push == pull :
48
50
raise UsageError ("Please use either the '--push' OR '--pull' options" )
49
51
50
52
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 )
52
54
result = True
53
55
if push :
54
56
result = sync_dir .push ()
@@ -63,7 +65,7 @@ def sync(local_folder, cloudinary_folder, push, pull, include_hidden, concurrent
63
65
64
66
class SyncDir :
65
67
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 ):
67
69
self .local_dir = local_dir
68
70
self .remote_dir = remote_dir .strip ('/' )
69
71
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
100
102
logger .info (f"Cloudinary folder '{ self .user_friendly_remote_dir } ' does not exist "
101
103
f"({ self .folder_mode } folder mode)." )
102
104
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 )
104
106
if len (raw_remote_files ):
105
107
logger .info (
106
108
f"Found { len (raw_remote_files )} items in Cloudinary folder '{ self .user_friendly_remote_dir } ' "
0 commit comments