#!/usr/bin/env perl
use 5.01;
use strict;
use warnings;
use version; our $VERSION = qv( '0.4' );
use English qw( -no_match_vars );
my $message_file = $ARGV[ 0 ]; my $change_file = 'Changes';
if (-f $change_file) {
open my $in, '<', $message_file
or die "Path ${message_file} cannot open: ${OS_ERROR}";
my $message; { local $RS = undef; $message = <$in> }; close $in;
open $in, '<', $change_file
or die "File ${change_file} cannot open: ${OS_ERROR}";
my $changes; { local $RS = undef; $changes = <$in> }; close $in;
my ($ver) = $changes =~ m{ ^ v? ([0-9]+[.][0-9]+) }mx; $ver ||= '0.1';
my ($entry) = $changes =~ m{ [\n][\n] (.*?) [\n][\n] }msx;
$entry = join q( ), map { s{ \A [ \t]+ }{}mx; $_ }
grep { m{ \A [ \t] }mx }
split m{ [\n] }mx, ($entry || ' - Updated');
$entry =~ s{ \A [\-] \s* }{}mx;
$entry = (split m{ [\-] }mx, $entry)[ 0 ];
$message = length $message > 1 ? "${ver} ${message}" : "${ver} ${entry}";
$message = substr $message, 0, 53;
open my $out, '>', $message_file
or die "Path ${message_file} cannot open: ${OS_ERROR}";
print {$out} $message; close $out;
}
exit 0;