[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Gnu-arch-users] tla-rsync-mirror
From: |
Jan Hudec |
Subject: |
Re: [Gnu-arch-users] tla-rsync-mirror |
Date: |
Thu, 8 Jan 2004 19:29:54 +0100 |
User-agent: |
Mutt/1.5.5.1+cvs20040105i |
On Wed, Dec 31, 2003 at 20:49:57 +0000, Andrew Suffield wrote:
> I just polished my rsync-based alternative to archive-mirror; in the
It's a great tool, really. Most importantly because it will push cached
revisions, and of course also because it is faster.
However, my archives reside in a directory called {archives} and the URI
package encodes it with %7B. Rsync does not like that. So here is
a small fix to undo such change, should anyone have similar problems:
--- tla-rsync-mirror.orig 2004-01-08 19:19:01.000000000 +0100
+++ tla-rsync-mirror 2004-01-08 19:25:24.000000000 +0100
@@ -46,20 +46,26 @@
die "Couldn't find FROM path" unless $from;
die "Couldn't find TO path" unless $to;
+sub fixup
+ {
+ $path =~ s/%(..)/chr(hex($1))/eg;
+ return $path;
+ }
+
sub process_location
{
my $location = shift;
my $uri = URI->new($location, "file");
if (not defined $uri->scheme or $uri->scheme eq "file")
{
- return $uri->path;
+ return fixup($uri->path);
}
elsif ($uri->scheme eq "sftp")
{
$uri->opaque =~ m,^//([^/]+)/(.*)$, or die "Failed to parse sftp URI:
$uri";
my $host = $1;
my $path = $2;
- return "$1:/$2";
+ return fixup("$1:/$2");
}
die "Don't know how to handle URI scheme " . $uri->scheme;
}
-------------------------------------------------------------------------------
Jan 'Bulb' Hudec
<address@hidden>