[Reproducible-commits] [strip-nondeterminism] 01/01: Strip timestamp from Java version.properties files
Andrew Ayer
agwa at andrewayer.name
Tue Feb 10 05:19:13 UTC 2015
This is an automated email from the git hooks/post-receive script.
agwa-guest pushed a commit to branch master
in repository strip-nondeterminism.
commit 98c4cf32038792ba882b25036c875017c49baa6b
Author: Andrew Ayer <agwa at andrewayer.name>
Date: Mon Feb 9 21:08:47 2015 -0800
Strip timestamp from Java version.properties files
version.properties files are very similar in format to pom.properties
files, so I've renamed the pomproperties handler to javaproperties and
added support for version.properties to it.
---
lib/File/StripNondeterminism.pm | 10 ++---
lib/File/StripNondeterminism/handlers/jar.pm | 8 ++--
.../{pomproperties.pm => javaproperties.pm} | 8 ++--
t/{pomproperties.t => javaproperties.t} | 51 ++++++++++++++++++----
4 files changed, 55 insertions(+), 22 deletions(-)
diff --git a/lib/File/StripNondeterminism.pm b/lib/File/StripNondeterminism.pm
index aab3071..8f4d4b7 100644
--- a/lib/File/StripNondeterminism.pm
+++ b/lib/File/StripNondeterminism.pm
@@ -27,7 +27,7 @@ use File::StripNondeterminism::handlers::jar;
use File::StripNondeterminism::handlers::javadoc;
use File::StripNondeterminism::handlers::pe;
use File::StripNondeterminism::handlers::pearregistry;
-use File::StripNondeterminism::handlers::pomproperties;
+use File::StripNondeterminism::handlers::javaproperties;
use File::StripNondeterminism::handlers::zip;
our($VERSION, $canonical_time);
@@ -73,9 +73,9 @@ sub get_normalizer_for_file {
if (m/\.(exe|dll|cpl|ocx|sys|scr|drv|efi|fon)/ && _get_file_type($_) =~ m/PE32.? executable/) {
return \&File::StripNondeterminism::handlers::pe::normalize;
}
- # pomproperties
- if (m/pom\.properties$/ && File::StripNondeterminism::handlers::pomproperties::is_pom_properties_file($_)) {
- return \&File::StripNondeterminism::handlers::pomproperties::normalize;
+ # pom.properties, version.properties
+ if (m/(pom|version)\.properties$/ && File::StripNondeterminism::handlers::javaproperties::is_java_properties_file($_)) {
+ return \&File::StripNondeterminism::handlers::javaproperties::normalize;
}
# zip
if (m/\.(zip|pk3|whl|xpi)$/ && _get_file_type($_) =~ m/Zip archive data/) {
@@ -92,7 +92,7 @@ sub get_normalizer_by_name {
return \&File::StripNondeterminism::handlers::javadoc::normalize if $_ eq 'javadoc';
return \&File::StripNondeterminism::handlers::pe::normalize if $_ eq 'pe';
return \&File::StripNondeterminism::handlers::pearregistry::normalize if $_ eq 'pearregistry';
- return \&File::StripNondeterminism::handlers::pomproperties::normalize if $_ eq 'pomproperties';
+ return \&File::StripNondeterminism::handlers::javaproperties::normalize if $_ eq 'javaproperties';
return \&File::StripNondeterminism::handlers::zip::normalize if $_ eq 'zip';
return undef;
}
diff --git a/lib/File/StripNondeterminism/handlers/jar.pm b/lib/File/StripNondeterminism/handlers/jar.pm
index e136395..4121d29 100644
--- a/lib/File/StripNondeterminism/handlers/jar.pm
+++ b/lib/File/StripNondeterminism/handlers/jar.pm
@@ -25,7 +25,7 @@ use Archive::Zip;
use File::Basename;
use File::StripNondeterminism::handlers::zip;
use File::StripNondeterminism::handlers::javadoc;
-use File::StripNondeterminism::handlers::pomproperties;
+use File::StripNondeterminism::handlers::javaproperties;
sub _jar_filename_cmp ($$) {
my ($a, $b) = @_;
@@ -77,11 +77,11 @@ sub _jar_normalize_member {
} elsif ($member->fileName() eq 'META-INF/MANIFEST.MF') {
File::StripNondeterminism::handlers::zip::normalize_member($member,
\&_jar_normalize_manifest);
- } elsif ($member->fileName() =~ /pom\.properties$/ &&
- File::StripNondeterminism::handlers::zip::peek_member($member, 1024) =~ /#Generated by Maven/) {
+ } elsif ($member->fileName() =~ /(pom|version)\.properties$/ &&
+ File::StripNondeterminism::handlers::zip::peek_member($member, 1024) =~ /#Generated by Maven|#Build Number for ANT/) {
# maven header should be within first 1kb of file
File::StripNondeterminism::handlers::zip::normalize_member($member,
- \&File::StripNondeterminism::handlers::pomproperties::normalize);
+ \&File::StripNondeterminism::handlers::javaproperties::normalize);
}
}
diff --git a/lib/File/StripNondeterminism/handlers/pomproperties.pm b/lib/File/StripNondeterminism/handlers/javaproperties.pm
similarity index 88%
rename from lib/File/StripNondeterminism/handlers/pomproperties.pm
rename to lib/File/StripNondeterminism/handlers/javaproperties.pm
index 785f5e6..36d45af 100644
--- a/lib/File/StripNondeterminism/handlers/pomproperties.pm
+++ b/lib/File/StripNondeterminism/handlers/javaproperties.pm
@@ -16,7 +16,7 @@
# You should have received a copy of the GNU General Public License
# along with strip-nondeterminism. If not, see <http://www.gnu.org/licenses/>.
#
-package File::StripNondeterminism::handlers::pomproperties;
+package File::StripNondeterminism::handlers::javaproperties;
use strict;
use warnings;
@@ -24,13 +24,13 @@ use warnings;
use File::Temp;
use File::Basename;
-sub is_pom_properties_file {
+sub is_java_properties_file {
my ($filename) = @_;
- # If this is a pom.properties file, '#Generated by Maven' should appear in first 1kb
+ # If this is a java properties file, '#Generated by Maven' or '#Build Number for ANT' should appear in first 1kb
my $fh;
my $str;
- return open($fh, '<', $filename) && read($fh, $str, 1024) && $str =~ /#Generated by Maven/;
+ return open($fh, '<', $filename) && read($fh, $str, 1024) && $str =~ /#Generated by Maven|#Build Number for ANT/;
}
sub normalize {
diff --git a/t/pomproperties.t b/t/javaproperties.t
similarity index 55%
rename from t/pomproperties.t
rename to t/javaproperties.t
index 6982deb..d9d4e8e 100644
--- a/t/pomproperties.t
+++ b/t/javaproperties.t
@@ -2,6 +2,7 @@
#
# Copyright 2014 Chris West (Faux)
+# Copyright 2015 Andrew Ayer
#
# This file is part of strip-nondeterminism.
#
@@ -20,12 +21,22 @@
#
use File::Temp 'tempdir';
-use Test::More tests => 2;
+use Test::More tests => 4;
use File::StripNondeterminism;
+use strict;
+use warnings;
+
+my $dir = tempdir( CLEANUP => 1 );
+my $path;
+my $fh;
+my $normalizer;
+
+#
+# pom.properties
+#
-$dir = tempdir( CLEANUP => 1 );
$path = "$dir/pom.properties";
-open(my $fh, '>', $path) or die("error opening $path");
+open($fh, '>', $path) or die("error opening $path");
# note that the line has a load of random trailing whitespace (?!)
print $fh <<'ORIGINAL';
@@ -33,18 +44,40 @@ print $fh <<'ORIGINAL';
#Mon Oct 27 09:12:51 UTC 2014
version=2.4
ORIGINAL
-
-close $fh;
+close($fh);
$normalizer = File::StripNondeterminism::get_normalizer_for_file($path);
isnt(undef, $normalizer);
$normalizer->($path);
-open FILE,$path or die("error opening $path");
-binmode FILE;
-local $/ = undef;
-is(<FILE>, <<'EXPECTED');
+open($fh, '<', $path) or die("error opening $path");
+is(do { local $/; <$fh> }, <<'EXPECTED');
#Generated by Maven
version=2.4
EXPECTED
+close($fh);
+#
+# version.properties
+#
+$path = "$dir/version.properties";
+open($fh, '>', $path) or die("error opening $path");
+
+# note that the line has a load of random trailing whitespace (?!)
+print $fh <<'ORIGINAL';
+#Build Number for ANT. Do not edit!
+#Wed Feb 04 03:46:03 UTC 2015
+build.number=125
+ORIGINAL
+close($fh);
+
+$normalizer = File::StripNondeterminism::get_normalizer_for_file($path);
+isnt(undef, $normalizer);
+$normalizer->($path);
+
+open($fh, '<', $path) or die("error opening $path");
+is(do { local $/; <$fh> }, <<'EXPECTED');
+#Build Number for ANT. Do not edit!
+build.number=125
+EXPECTED
+close($fh);
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/strip-nondeterminism.git
More information about the Reproducible-commits
mailing list