This perl script automates the conversion of a list of pathnames

to a set of includes/excludes needed for rsync to copy just the
listed files.
This commit is contained in:
Wayne Davison committed 2006-01-30 21:52:17 +00:00
1 parent 50fd4832c2
commit b587adda1f
1 file changed
+27
+27
View File
@@ -0,0 +1,27 @@
#!/usr/bin/perl
# This script takes an input of filenames and outputs a set of
# include/exclude directives that can be used by rsync to copy
# just the indicated files using an --exclude-from=FILE option.
use strict;
my %hash;
while (<>) {
chomp;
s#^/+##;
my $path = '/';
while (m#([^/]+/)/*#g) {
$path .= $1;
print "+ $path\n" unless $hash{$path}++;
}
if (m#([^/]+)$#) {
print "+ $path$1\n";
} else {
delete $hash{$path};
}
}
foreach (sort keys %hash) {
print "- $_*\n";
}
print "- /*\n";