about summary refs log tree commit diff stats
path: root/ranger/actions.py
diff options
context:
space:
mode:
authorhut <hut@lavabit.com>2010-02-14 21:59:46 +0100
committerhut <hut@lavabit.com>2010-02-14 22:17:00 +0100
commita986e2bda5ad96d1e9cf53dddabb71405e45e8c1 (patch)
tree9a648474b0bbdf3004f9028272a328ae3e007033 /ranger/actions.py
parent865ae865be6cc8a6621df0fb3db5c68d75e5b647 (diff)
downloadranger-a986e2bda5ad96d1e9cf53dddabb71405e45e8c1.tar.gz
actions: improved copying/moving
Diffstat (limited to 'ranger/actions.py')
-rw-r--r--ranger/actions.py24
1 files changed, 15 insertions, 9 deletions
diff --git a/ranger/actions.py b/ranger/actions.py
index bf6b5894..085bc36e 100644
--- a/ranger/actions.py
+++ b/ranger/actions.py
@@ -423,7 +423,7 @@ class Actions(EnvironmentAware, SettingsAware):
 			except Exception as x:
 				self.notify(x)
 
-	def paste(self):
+	def paste(self, overwrite=False):
 		"""Paste the selected items into the current directory"""
 		from os.path import join, isdir
 		from ranger.ext import shutil_generatorized as shutil_g
@@ -448,7 +448,9 @@ class Actions(EnvironmentAware, SettingsAware):
 				descr = "moving files from: " + one_file.dirname
 			def generate():
 				for f in copied_files:
-					for _ in shutil_g.move(f.path, original_path):
+					for _ in shutil_g.move(src=f.path,
+							dst=original_path,
+							overwrite=overwrite):
 						yield
 				pwd = self.env.get_directory(original_path)
 				pwd.load_content()
@@ -460,11 +462,15 @@ class Actions(EnvironmentAware, SettingsAware):
 			def generate():
 				for f in self.env.copy:
 					if isdir(f.path):
-						for _ in shutil_g.copytree(f.path,
-								join(self.env.pwd.path, f.basename)):
+						for _ in shutil_g.copytree(src=f.path,
+								dst=join(self.env.pwd.path, f.basename),
+								symlinks=True,
+								overwrite=overwrite):
 							yield
 					else:
-						for _ in shutil_g.copy2(f.path, original_path):
+						for _ in shutil_g.copy2(f.path, original_path,
+								symlinks=True,
+								overwrite=overwrite):
 							yield
 				pwd = self.env.get_directory(original_path)
 				pwd.load_content()
@@ -481,18 +487,18 @@ class Actions(EnvironmentAware, SettingsAware):
 					try:
 						shutil.rmtree(f.path)
 					except OSError as err:
-						self.notify(str(err), bad=True)
+						self.notify(err)
 				else:
 					try:
 						os.remove(f.path)
 					except OSError as err:
-						self.notify(str(err), bad=True)
+						self.notify(err)
 
 	def mkdir(self, name):
 		try:
 			os.mkdir(os.path.join(self.env.pwd.path, name))
 		except OSError as err:
-			self.notify(str(err), bad=True)
+			self.notify(err)
 
 
 	def rename(self, src, dest):
@@ -502,4 +508,4 @@ class Actions(EnvironmentAware, SettingsAware):
 		try:
 			os.rename(src, dest)
 		except OSError as err:
-			self.notify(str(err), bad=True)
+			self.notify(err)