X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/50fd4832c244422436fc657b95c94139e89602af..b587adda1fba778ffd9a68a00798dea787ba1dc5:/support/files-to-excludes diff --git a/support/files-to-excludes b/support/files-to-excludes new file mode 100755 index 00000000..5fb13b08 --- /dev/null +++ b/support/files-to-excludes @@ -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";