33 lines
1.1 KiB
Perl
33 lines
1.1 KiB
Perl
|
#!/usr/bin/perl
|
||
|
#
|
||
|
# This script must be ran from svn checkout and will produce the list of all
|
||
|
# files using native svn:eol-style on output. It's used as a helper for
|
||
|
# distribution creation as this is also the list of files which need to have
|
||
|
# their line endings converted for the use on the platform other than the
|
||
|
# current one.
|
||
|
#
|
||
|
# Notice that the script requires Perl 5.10 (which could be easily avoided but
|
||
|
# as this is for my personal use mostly so far, I didn't bother) and Perl svn
|
||
|
# bindings.
|
||
|
use 5.10.0;
|
||
|
use strict;
|
||
|
use warnings;
|
||
|
use SVN::Client;
|
||
|
|
||
|
my $ctx = SVN::Client->new
|
||
|
or die "Failed to create svn context, do you have svn auth stored?\n";
|
||
|
|
||
|
# For testing purposes a single parameter may be specified to restrict the list
|
||
|
# of files with native EOLs to just this directory (recursively) or even a
|
||
|
# single file. In normal use no parameters should be given.
|
||
|
my $path = $ARGV[0] // '';
|
||
|
my $props = $ctx->proplist($path, undef, 1)
|
||
|
or die "Failed to list properties for $path.\n";
|
||
|
|
||
|
foreach my $prop (@$props) {
|
||
|
my $eol = ${$prop->prop_hash()}{'svn:eol-style'};
|
||
|
if ( defined $eol && ($eol eq 'native') ) {
|
||
|
say $prop->node_name();
|
||
|
}
|
||
|
}
|