From: Wayne Davison Date: Mon, 30 Jan 2006 21:52:17 +0000 (+0000) Subject: This perl script automates the conversion of a list of pathnames X-Git-Tag: v2.6.7pre1~113 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b587adda1fba778ffd9a68a00798dea787ba1dc5;p=thirdparty%2Frsync.git 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. --- 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";