@@ -70,6 +70,9 @@ def absolute(self):
7070 def instance (scope , entries ):
7171 if isinstance (entries , list ):
7272 return [CorePath (scope , e ) for e in entries ]
73+ if isinstance (entries , tuple ):
74+ source , destination = entries
75+ return (CorePath (scope , source ), CorePath (scope , destination ))
7376 return CorePath (scope , entries )
7477
7578
@@ -237,11 +240,16 @@ def recover(*paths):
237240
238241def _copy_or_move (paths , destination , * , message = None ):
239242 param = ActionResourcesParam .instance ()
240- paths = [paths ] if not isinstance (paths , list ) else paths
241243 for path in paths :
242- param .add (SrcDstParam .instance (src = path .absolute_encode , dest = destination .join (path .name ).absolute_encode ))
243- if message :
244- logger .info ('%s from: %s to: %s' , message , path .reference .as_posix (), destination .join (path .name ).reference .as_posix ())
244+ src , dest = path , destination
245+ if isinstance (path , tuple ):
246+ src , dest = path
247+ else :
248+ if not dest .reference .name :
249+ raise ValueError (f'Error: No destination specified for: { src } ' )
250+ dest = dest .join (src .name )
251+ param .add (SrcDstParam .instance (src = src .absolute_encode , dest = dest .absolute_encode ))
252+ logger .info ('%s from: %s to: %s' , message , src .reference .as_posix (), dest .reference .as_posix ())
245253 yield param
246254
247255
0 commit comments