From 286533e74efd2c9a05c1681113c30e0a9bee3e0e Mon Sep 17 00:00:00 2001 From: Daniele Rondina Date: Wed, 3 Apr 2019 18:16:43 +0200 Subject: [PATCH] builder: Use rsync instead of cp on copy git portage --- builder | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/builder b/builder index b6927bd..51906c9 100755 --- a/builder +++ b/builder @@ -350,7 +350,7 @@ sub compile_packs { sub fetch_portage_from_git { - my ($url, $srv, $branch ) = @_; + my ( $url, $srv, $branch ) = @_; $url = substr($url, 0, length($url)-1) unless substr($url, -1) cmp "/"; my $uri = URI->new($url); @@ -369,7 +369,14 @@ sub fetch_portage_from_git { # Avoid to remove /usr/portage for use case where I have already # files under /usr/portage/distfiles or /usr/portage/packages to use. - _system( "cp -arf /tmp/portage/$base-$branch/* /usr/portage/" ); + my @excluded_dirs = ( + "'distfiles'", + "'packages'" + ); + my $rsync_opts = "-a --delete --delete-during --recursive -d -A -H"; + $rsync_opts .= " --exclude $_" foreach @excluded_dirs; + + _system( "rsync $rsync_opts /tmp/portage/$base-$branch/ /usr/portage/" ); _system( "rm -rf /tmp/portage " ); }