summaryrefslogtreecommitdiffstats
path: root/urpm
diff options
context:
space:
mode:
Diffstat (limited to 'urpm')
-rw-r--r--urpm/download.pm5
-rw-r--r--urpm/util.pm12
2 files changed, 14 insertions, 3 deletions
diff --git a/urpm/download.pm b/urpm/download.pm
index 734487d9..f9f4be2d 100644
--- a/urpm/download.pm
+++ b/urpm/download.pm
@@ -160,8 +160,9 @@ sub sync_file {
foreach (@_) {
my ($in) = m!^(?:removable[^:]*:/|file:/)(/.*)!;
propagate_sync_callback($options, 'start', $_);
- system("cp", "-p", "-R", $in || $_, ref($options) ? $options->{dir} : $options)
- and die N("copy failed");
+ require urpm::util;
+ urpm::util::copy($in || $_, ref($options) ? $options->{dir} : $options)
+ or die N("copy failed");
propagate_sync_callback($options, 'end', $_);
}
}
diff --git a/urpm/util.pm b/urpm/util.pm
index eb2fc912..8abb816e 100644
--- a/urpm/util.pm
+++ b/urpm/util.pm
@@ -75,7 +75,17 @@ sub offset_pathname {
sub md5sum {
#- Use an external command to avoid depending on perl
my ($file) = @_;
- return( (split ' ', `md5sum '$file'`)[0] );
+ return((split ' ', `md5sum '$file'`)[0]);
+}
+
+sub copy {
+ my ($file, $dest) = @_;
+ !system("/bin/cp", "-p", "-R", $file, $dest);
+}
+
+sub move {
+ my ($file, $dest) = @_;
+ rename($file, $dest) or !system("/bin/mv", "-f", $file, $dest);
}
1;