summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOlivier Blin <oblin@mandriva.com>2007-05-16 20:18:15 +0000
committerOlivier Blin <oblin@mandriva.com>2007-05-16 20:18:15 +0000
commitda381f63e51554a17932c37ff0406abd9650a239 (patch)
tree94dc8b76a99067b1f8a838bb069dfd57dec76026
parent63b1b7c168bf0838982905bf38431dba4a1ede21 (diff)
downloaddraklive-da381f63e51554a17932c37ff0406abd9650a239.tar
draklive-da381f63e51554a17932c37ff0406abd9650a239.tar.gz
draklive-da381f63e51554a17932c37ff0406abd9650a239.tar.bz2
draklive-da381f63e51554a17932c37ff0406abd9650a239.tar.xz
draklive-da381f63e51554a17932c37ff0406abd9650a239.zip
add hardlink_filtered function to hardlink recursively file list to a directory (using rsync --files-from --link-dest)
-rwxr-xr-xdraklive14
1 files changed, 14 insertions, 0 deletions
diff --git a/draklive b/draklive
index bb1c7aa..d96f120 100755
--- a/draklive
+++ b/draklive
@@ -752,6 +752,20 @@ sub expand_file_list {
} @files;
}
+#- hardlink recursively file list to a directory
+sub hardlink_filtered {
+ my ($src, $dest, $files) = @_;
+ mkdir_p($dest);
+ my $pwd = $ENV{PWD};
+ chdir($src);
+ my $list_file = tmpnam();
+ output_p($list_file, map { "$_\n" } grep { -e $src . $_ } @$files);
+ #- cpio -pldm won't copy recursively, use rsync -r instead
+ system('rsync', '-ar', '--files-from=' . $list_file, '--link-dest=' . $src, $src, $dest);
+ unlink $list_file;
+ chdir($pwd);
+}
+
sub create_loopback_files {
my ($live) = @_;
# umount filesystem in the live before creating the loopback